JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://axibase.com/atsd/atsdClient.bundle.js"></script>
<div id="chart_div"></div>
JavaScript
google.charts.load('visualization', {
'packages': ['corechart']
});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var startTime = Date.now() - 24 * 3600 * 1000,
endTime = Date.now();
var postData = [{
startTime: startTime,
endTime: endTime,
entity: "nurswgvml007",
metric: "cpu_busy",
aggregate: {
types: ["MIN", "LAST", "MAX"],
period: {
count: 1,
unit: "HOUR"
}
}
}];
var client = axibase.atsdClient("https://axibase.com");
client.series.queries(postData)
.then(function(response) {
return response.reduce(function(previousValue, currentValue, index, array) {
if (currentValue.aggregate.type === "MAX") {
previousValue["max"] = currentValue.data;
} else if (currentValue.aggregate.type === "MIN") {
previousValue["min"] = currentValue.data;
} else if (currentValue.aggregate.type === "LAST") {
previousValue["last"] = currentValue.data;
}
return previousValue;
}, {});
})
.then(function(seriesMap) {
var min = seriesMap["min"];
var max = seriesMap["max"];
var last = seriesMap["last"];
var rows = [];
for (var i = 1; i < last.length; ++i) {
var open = last[i - 1].v;
rows.push([new Date(last[i].d), min[i].v, open, last[i].v, max[i].v]);
}
var data = new google.visualization.DataTable();
data.addColumn("datetime");
data.addColumn("number");
data.addColumn("number");
data.addColumn("number");
data.addColumn("number");
data.addRows(rows);
var options = {
title: "nurswgvml007",
legend: "none",
...