in source/web_site/js/dash.js [384:495]
var getLatestRecord = function(){
console.log('Getting latest records from DynamoDB');
var params = retrieveParams("ConnectedDevicesCount", totalCallCurrentTime);
var PerDeviceMaxTempParams = retrieveParams("PerDeviceMaxTemp", maxTempPerDeviceQueryTime);
var PerDeviceAvgTempParams = retrieveParams("PerDeviceAvgTemp", avgTempPerDeviceQueryTime);
var PerDeviceMinTempParams = retrieveParams("PerDeviceMinTemp", minTempPerDeviceQueryTime);
var AvgTempParams = retrieveParams("AvgTempValue", AvgTempValueQueryTime);
var MinTempParams = retrieveParams("MinTempValue", MinTempValueQueryTime);
var MaxTempParams = retrieveParams("MaxTempValue", MaxTempValueQueryTime);
var AvgConnTimeParams = retrieveParams("AvgConnTime", AvgConnTimeQueryTime);
var AvgDisConnTimeParams = retrieveParams("AvgDisconnTime", AvgDisConnTimeQueryTime);
var anomalyParams = retrieveParams("DeviceTempAnomalyScore", anomalyScoreCurrentTime);
var docClient = new AWS.DynamoDB.DocumentClient();
docClient.query(PerDeviceMaxTempParams, function(err, data) {
if (err) console.log(err);
else {
maxTempPerDeviceQueryTime = updateHorizontalBarChart(data, 20, maxTempPerDeviceChart, maxTempPerDeviceQueryTime, splitFunc);
}
});
docClient.query(PerDeviceMinTempParams, function(err, data) {
if (err) console.log(err);
else {
minTempPerDeviceQueryTime = updateHorizontalBarChart(data, 20, minTempPerDeviceChart, minTempPerDeviceQueryTime, splitFunc);
}
});
docClient.query(PerDeviceAvgTempParams, function(err, data) {
if (err) console.log(err);
else {
avgTempPerDeviceQueryTime = updateHorizontalBarChart(data, 20, avgTempPerDeviceChart, avgTempPerDeviceQueryTime, splitFunc);
}
});
docClient.query(AvgConnTimeParams, function(err, data) {
if (err) console.log(err);
else {
AvgConnTimeQueryTime = updateLineChart(data, AvgConnTimeCallLabels, AvgConnTimeMap, AvgConnTimeCallChart, AvgConnTimeQueryTime, splitFunc) ;
}
});
docClient.query(AvgDisConnTimeParams, function(err, data) {
if (err) console.log(err);
else {
AvgDisConnTimeQueryTime = updateLineChart(data, AvgDisConnTimeCallLabels, AvgDisConnTimeMap, AvgDisConnTimeCallChart, AvgDisConnTimeQueryTime, splitFunc) ;
}
});
docClient.query(AvgTempParams, function(err, data) {
if (err) console.log(err);
else {
AvgTempValueQueryTime = updateLineChart(data, AvgTempCallLabels, AvgTempCallMap, AvgTempCallChart, AvgTempValueQueryTime, splitFunc) ;
}
});
docClient.query(MinTempParams, function(err, data) {
if (err) console.log(err);
else {
MinTempValueQueryTime = updateLineChart(data, MinTempCallLabels, MinTempCallMap, MinTempCallChart, MinTempValueQueryTime, splitFunc) ;
}
});
docClient.query(MaxTempParams, function(err, data) {
if (err) console.log(err);
else {
MaxTempValueQueryTime = updateLineChart(data, MaxTempCallLabels, MaxTempCallMap, MaxTempCallChart, MaxTempValueQueryTime, splitFunc) ;
}
});
docClient.query(anomalyParams, function(err, data) {
if (err) console.log(err);
else {
var items = data.Items;
console.log(`anomalyScore data: ${data}`)
for (let i = 0; i < items.length; i++) {
console.log(`anomalyscore item: ${items[i]}`);
anomalyCallLabels.push(splitLabel(items[i].EventTime));
ddbItem = JSON.parse(items[i].Data);
anomaly_score_value = Object.values(ddbItem);
var sum = anomaly_score_value.reduce((previous, current) => current += previous);
var avg = sum / anomaly_score_value.length;
anomalyCallMap["Average Anomaly Score"].push(parseFloat(avg));
}
if (items.length>0) {
anomalyScoreCurrentTime = items[items.length-1].EventTime;
updateData(anomalyChart, anomalyCallLabels, Object.values(anomalyCallMap), Object.keys(anomalyCallMap), true);
}
}
});
docClient.query(params, function(err, data) {
if (err) console.log(err);
else {
var items = data.Items;
for (var i = 0; i < items.length; i++) {
totalConnectedDevices = parseInt((items[i].Data).split(':')[1]);
}
var callTime;
if (items.length > 0) callTime = items[items.length-1].EventTime;
else callTime = new Date(new Date().getTime() - 200).toISOString().replace('T',' ').replace('Z','');
totalCallCtx.innerHTML = "<h3>CountConnectedDevices: " + totalConnectedDevices + "</h3>";
totalCallTimeCtx.innerHTML = "<h4>Last Updated: " + callTime.split(' ')[1] + "</h4>";
}
});
setTimeout( function() {
getLatestRecord();
}, 15000);
}