Просмотр исходного кода

added missing file from last commit

Torkel Ödegaard 11 лет назад
Родитель
Сommit
fd8561ac55
1 измененных файлов с 69 добавлено и 0 удалено
  1. 69 0
      src/app/services/influxdb/influxSeries.js

+ 69 - 0
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;
+});