Skip to content

Commit

Permalink
Use 'revert' for current Measurement queries , without pageSize param…
Browse files Browse the repository at this point in the history
…; this is an attempt to avoid missing data points; works better than before, but still missing points sometimes
  • Loading branch information
rtvuser1 committed Jul 8, 2018
1 parent 279491d commit 6293edb
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions RTView-Cumulocity-Node/cumulocity_connector.js
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,8 @@ var getMeasurements = function(tableName, res, query, result, callback) {
var series = getValue(fmap,'series','');
delete fmap['id']; delete fmap['name']; delete fmap['series']; // tell cacheproxy we've handled these filters

var tr = Number(getValue(query,'tr',10))*1000;
// define a time range for the query; default 300 secs, but for current cache, we'll do 'revert' to get last point
var tr = Number(getValue(query,'tr',300))*1000;
var dateTo = Number(getValue(query, 'te', (new Date()).getTime()));
var dateFrom = Number(getValue(query, 'tb', dateTo - tr));

Expand All @@ -315,16 +316,17 @@ var getMeasurements = function(tableName, res, query, result, callback) {
//console.log('... measurement interval ' + dateFrom + ' to '+ dateTo + " - tr " + tr);

// if series name provided as filter, include in query
// DEVNOTE: in either case, for current do NOT use pageSize, since we will be using 'revert' below
if (series) {
seriesPath = name + '.' + series;
//console.log('***** seriesPath = ' + seriesPath);
url += (tableName == 'current' ? '?pageSize=100' : ('/series?series='+seriesPath));
url += (tableName == 'current' ? '?pageSizeX=100' : ('/series?series='+seriesPath));

// DEVNOTE: the below fails:
// if no series name provided, TRY to make a query that works ... but it doesn't !!
} else {
//console.log('***** fragment = ' + name);
url += (tableName == 'current' ? '?pageSize=100' : ('/series?fragmentType='+name));
url += (tableName == 'current' ? '?pageSizeX=100' : ('/series?fragmentType='+name));
}

if (id != '' && id != '*') {
Expand All @@ -350,8 +352,15 @@ var getMeasurements = function(tableName, res, query, result, callback) {
if(dateFrom >= dateTo) {
console.log("Error: bad date/time range: "+url);
console.log('... ' + JSON.stringify(query)+'\n');
return;
return;
}

// for current table, query measurements in reverse order to get last value, independent of query interval
// note: 'revert' must be the last argument of the query for it to work correctly
if (tableName == "current") {
url += '&revert=true';
}

// create object to hold info related to this request
urlInfo = { res:res, result:result, tableName:tableName, query:query, url:url, dateFrom:dateFrom, dateTo:dateTo, id:id, name:name, series:series }

Expand Down

0 comments on commit 6293edb

Please sign in to comment.