From fd8561ac55bc168fc3add5f732748b5c8c5eb80b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Tue, 1 Jul 2014 20:01:56 +0200 Subject: [PATCH] added missing file from last commit --- src/app/services/influxdb/influxSeries.js | 69 +++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/app/services/influxdb/influxSeries.js diff --git a/src/app/services/influxdb/influxSeries.js b/src/app/services/influxdb/influxSeries.js new file mode 100644 index 00000000000..ce8475fccbf --- /dev/null +++ b/src/app/services/influxdb/influxSeries.js @@ -0,0 +1,69 @@ +define([ + 'underscore', +], +function (_) { + 'use strict'; + + function InfluxSeries(options) { + this.seriesList = options.seriesList; + this.alias = options.alias; + this.groupByField = options.groupByField; + } + + var p = InfluxSeries.prototype; + + p.getTimeSeries = function() { + var output = []; + var self = this; + + _.each(self.seriesList, function(series) { + var seriesName; + var timeCol = series.columns.indexOf('time'); + var valueCol = 1; + var groupByCol = -1; + + if (self.groupByField) { + groupByCol = series.columns.indexOf(self.groupByField); + } + + // find value column + _.each(series.columns, function(column, index) { + if (column !== 'time' && column !== 'sequence_number' && column !== self.groupByField) { + valueCol = index; + } + }); + + var groups = {}; + + if (self.groupByField) { + groups = _.groupBy(series.points, function (point) { + return point[groupByCol]; + }); + } + else { + groups[series.columns[valueCol]] = series.points; + } + + _.each(groups, function(groupPoints, key) { + var datapoints = []; + for (var i = 0; i < groupPoints.length; i++) { + var metricValue = isNaN(groupPoints[i][valueCol]) ? null : groupPoints[i][valueCol]; + datapoints[i] = [metricValue, groupPoints[i][timeCol]]; + } + + seriesName = self.alias ? self.alias : (series.name + '.' + key); + + // if mulitple groups append key to alias + if (self.alias && self.groupByField) { + seriesName += key; + } + + output.push({ target: seriesName, datapoints: datapoints }); + }); + }); + + return output; + }; + + return InfluxSeries; +}); \ No newline at end of file