From 0838f432ca598394bb648e89a68eaaa6c5a1231d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 29 Jun 2015 09:02:07 +0200 Subject: [PATCH] refactor(influxdb series handling): performance and refactoring of PR #2179, also switched to InfluxDB epoch json format --- .../plugins/datasource/influxdb/datasource.js | 2 +- .../datasource/influxdb/influxSeries.js | 36 ++++++++----------- public/test/specs/influxSeries-specs.js | 6 ++-- 3 files changed, 19 insertions(+), 25 deletions(-) diff --git a/public/app/plugins/datasource/influxdb/datasource.js b/public/app/plugins/datasource/influxdb/datasource.js index dd6dde89e02..cc2e798f70b 100644 --- a/public/app/plugins/datasource/influxdb/datasource.js +++ b/public/app/plugins/datasource/influxdb/datasource.js @@ -130,7 +130,7 @@ function (angular, _, kbn, InfluxSeries, InfluxQueryBuilder) { } InfluxDatasource.prototype._seriesQuery = function(query) { - return this._influxRequest('GET', '/query', {q: query}); + return this._influxRequest('GET', '/query', {q: query, epoch: 'ms'}); }; InfluxDatasource.prototype.testDatasource = function() { diff --git a/public/app/plugins/datasource/influxdb/influxSeries.js b/public/app/plugins/datasource/influxdb/influxSeries.js index 874cd4746d2..f911d758a78 100644 --- a/public/app/plugins/datasource/influxdb/influxSeries.js +++ b/public/app/plugins/datasource/influxdb/influxSeries.js @@ -15,43 +15,37 @@ function (_) { p.getTimeSeries = function() { var output = []; var self = this; + var i, j; if (self.series.length === 0) { return output; } - var field_datapoints = function(datapoints, column_index) { - return _.map(datapoints, function(datapoint) { - return [datapoint[column_index - 1], _.last(datapoint)]; - }); - }; - _.each(self.series, function(series) { - var datapoints = []; var columns = series.columns.length; - for (var i = 0; i < series.values.length; i++) { - datapoints[i] = series.values[i].slice(1); - datapoints[i].push(new Date(series.values[i][0]).getTime()); - } + var tags = _.map(series.tags, function(value, key) { + return key + ': ' + value; + }); - for (var j = 1; j < columns; j++) { + for (j = 1; j < columns; j++) { var seriesName = series.name; var columnName = series.columns[j]; + if (columnName !== 'value') { + seriesName = seriesName + '.' + columnName; + } if (self.alias) { seriesName = self._getSeriesName(series); } else if (series.tags) { - var tags = _.map(series.tags, function(value, key) { - return key + ': ' + value; - }); - if (columnName === 'value') { - seriesName = seriesName + ' {' + tags.join(', ') + '}'; - } else { - seriesName = seriesName + '.' + columnName + ' {' + tags.join(', ') + '}'; - } + seriesName = seriesName + ' {' + tags.join(', ') + '}'; } - output.push({ target: seriesName, datapoints: field_datapoints(datapoints, j)}); + var datapoints = []; + for (i = 0; i < series.values.length; i++) { + datapoints[i] = [series.values[i][j], series.values[i][0]]; + } + + output.push({ target: seriesName, datapoints: datapoints}); } }); diff --git a/public/test/specs/influxSeries-specs.js b/public/test/specs/influxSeries-specs.js index 4cff47d5385..fddb873ea35 100644 --- a/public/test/specs/influxSeries-specs.js +++ b/public/test/specs/influxSeries-specs.js @@ -11,7 +11,7 @@ define([ name: 'cpu', tags: {app: 'test', server: 'server1'}, columns: ['time', 'mean', 'max', 'min'], - values: [["2015-05-18T10:57:05Z", 10, 11, 9], ["2015-05-18T10:57:06Z", 20, 21, 19]] + values: [[1431946625000, 10, 11, 9], [1431946626000, 20, 21, 19]] } ]}; describe('and no alias', function() { @@ -101,13 +101,13 @@ define([ name: 'cpu', tags: {app: 'test', server: 'server1'}, columns: ['time', 'mean'], - values: [["2015-05-18T10:57:05Z", 10], ["2015-05-18T10:57:06Z", 12]] + values: [[1431946625000, 10], [1431946626000, 12]] }, { name: 'cpu', tags: {app: 'test2', server: 'server2'}, columns: ['time', 'mean'], - values: [["2015-05-18T10:57:05Z", 15], ["2015-05-18T10:57:06Z", 16]] + values: [[1431946625000, 15], [1431946626000, 16]] } ]};