mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 08:05:43 -06:00
converted influx-series to TS, converted test to jest
This commit is contained in:
parent
b1de1e6f26
commit
59cebca4b2
@ -1,2 +0,0 @@
|
||||
declare var test: any;
|
||||
export default test;
|
@ -1,28 +1,27 @@
|
||||
define([
|
||||
'lodash',
|
||||
'app/core/table_model',
|
||||
],
|
||||
function (_, TableModel) {
|
||||
'use strict';
|
||||
import _ from 'lodash';
|
||||
import TableModel from 'app/core/table_model';
|
||||
|
||||
function InfluxSeries(options) {
|
||||
export default class InfluxSeries {
|
||||
|
||||
series: any;
|
||||
alias: any;
|
||||
annotation: any;
|
||||
|
||||
constructor(options) {
|
||||
this.series = options.series;
|
||||
this.alias = options.alias;
|
||||
this.annotation = options.annotation;
|
||||
}
|
||||
|
||||
var p = InfluxSeries.prototype;
|
||||
|
||||
p.getTimeSeries = function() {
|
||||
getTimeSeries() {
|
||||
var output = [];
|
||||
var self = this;
|
||||
var i, j;
|
||||
|
||||
if (self.series.length === 0) {
|
||||
if (this.series.length === 0) {
|
||||
return output;
|
||||
}
|
||||
|
||||
_.each(self.series, function(series) {
|
||||
_.each(this.series, (series) => {
|
||||
var columns = series.columns.length;
|
||||
var tags = _.map(series.tags, function(value, key) {
|
||||
return key + ': ' + value;
|
||||
@ -35,8 +34,8 @@ function (_, TableModel) {
|
||||
seriesName = seriesName + '.' + columnName;
|
||||
}
|
||||
|
||||
if (self.alias) {
|
||||
seriesName = self._getSeriesName(series, j);
|
||||
if (this.alias) {
|
||||
seriesName = this._getSeriesName(series, j);
|
||||
} else if (series.tags) {
|
||||
seriesName = seriesName + ' {' + tags.join(', ') + '}';
|
||||
}
|
||||
@ -53,9 +52,9 @@ function (_, TableModel) {
|
||||
});
|
||||
|
||||
return output;
|
||||
};
|
||||
}
|
||||
|
||||
p._getSeriesName = function(series, index) {
|
||||
_getSeriesName(series, index) {
|
||||
var regex = /\$(\w+)|\[\[([\s\S]+?)\]\]/g;
|
||||
var segments = series.name.split('.');
|
||||
|
||||
@ -72,30 +71,29 @@ function (_, TableModel) {
|
||||
if (!series.tags) { return match; }
|
||||
return series.tags[tag];
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
p.getAnnotations = function () {
|
||||
getAnnotations() {
|
||||
var list = [];
|
||||
var self = this;
|
||||
|
||||
_.each(this.series, function (series) {
|
||||
_.each(this.series, (series) => {
|
||||
var titleCol = null;
|
||||
var timeCol = null;
|
||||
var tagsCol = [];
|
||||
var textCol = null;
|
||||
|
||||
_.each(series.columns, function(column, index) {
|
||||
_.each(series.columns, (column, index) => {
|
||||
if (column === 'time') { timeCol = index; return; }
|
||||
if (column === 'sequence_number') { return; }
|
||||
if (!titleCol) { titleCol = index; }
|
||||
if (column === self.annotation.titleColumn) { titleCol = index; return; }
|
||||
if (_.includes((self.annotation.tagsColumn || '').replace(' ', '').split(","), column)) { tagsCol.push(index); return; }
|
||||
if (column === self.annotation.textColumn) { textCol = index; return; }
|
||||
if (column === this.annotation.titleColumn) { titleCol = index; return; }
|
||||
if (_.includes((this.annotation.tagsColumn || '').replace(' ', '').split(","), column)) { tagsCol.push(index); return; }
|
||||
if (column === this.annotation.textColumn) { textCol = index; return; }
|
||||
});
|
||||
|
||||
_.each(series.values, function (value) {
|
||||
_.each(series.values, (value) => {
|
||||
var data = {
|
||||
annotation: self.annotation,
|
||||
annotation: this.annotation,
|
||||
time: + new Date(value[timeCol]),
|
||||
title: value[titleCol],
|
||||
// Remove empty values, then split in different tags for comma separated values
|
||||
@ -108,18 +106,17 @@ function (_, TableModel) {
|
||||
});
|
||||
|
||||
return list;
|
||||
};
|
||||
}
|
||||
|
||||
p.getTable = function() {
|
||||
var table = new TableModel.default();
|
||||
var self = this;
|
||||
getTable() {
|
||||
var table = new TableModel();
|
||||
var i, j;
|
||||
|
||||
if (self.series.length === 0) {
|
||||
if (this.series.length === 0) {
|
||||
return table;
|
||||
}
|
||||
|
||||
_.each(self.series, function(series, seriesIndex) {
|
||||
_.each(this.series, (series, seriesIndex) => {
|
||||
|
||||
if (seriesIndex === 0) {
|
||||
table.columns.push({text: 'Time', type: 'time'});
|
||||
@ -151,7 +148,11 @@ function (_, TableModel) {
|
||||
});
|
||||
|
||||
return table;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return InfluxSeries;
|
||||
});
|
@ -1,4 +1,3 @@
|
||||
import {describe, it, expect} from 'test/lib/common';
|
||||
import InfluxSeries from '../influx_series';
|
||||
|
||||
describe('when generating timeseries from influxdb response', function() {
|
||||
@ -19,24 +18,24 @@ describe('when generating timeseries from influxdb response', function() {
|
||||
var series = new InfluxSeries(options);
|
||||
var result = series.getTimeSeries();
|
||||
|
||||
expect(result.length).to.be(3);
|
||||
expect(result[0].target).to.be('cpu.mean {app: test, server: server1}');
|
||||
expect(result[0].datapoints[0][0]).to.be(10);
|
||||
expect(result[0].datapoints[0][1]).to.be(1431946625000);
|
||||
expect(result[0].datapoints[1][0]).to.be(20);
|
||||
expect(result[0].datapoints[1][1]).to.be(1431946626000);
|
||||
expect(result.length).toBe(3);
|
||||
expect(result[0].target).toBe('cpu.mean {app: test, server: server1}');
|
||||
expect(result[0].datapoints[0][0]).toBe(10);
|
||||
expect(result[0].datapoints[0][1]).toBe(1431946625000);
|
||||
expect(result[0].datapoints[1][0]).toBe(20);
|
||||
expect(result[0].datapoints[1][1]).toBe(1431946626000);
|
||||
|
||||
expect(result[1].target).to.be('cpu.max {app: test, server: server1}');
|
||||
expect(result[1].datapoints[0][0]).to.be(11);
|
||||
expect(result[1].datapoints[0][1]).to.be(1431946625000);
|
||||
expect(result[1].datapoints[1][0]).to.be(21);
|
||||
expect(result[1].datapoints[1][1]).to.be(1431946626000);
|
||||
expect(result[1].target).toBe('cpu.max {app: test, server: server1}');
|
||||
expect(result[1].datapoints[0][0]).toBe(11);
|
||||
expect(result[1].datapoints[0][1]).toBe(1431946625000);
|
||||
expect(result[1].datapoints[1][0]).toBe(21);
|
||||
expect(result[1].datapoints[1][1]).toBe(1431946626000);
|
||||
|
||||
expect(result[2].target).to.be('cpu.min {app: test, server: server1}');
|
||||
expect(result[2].datapoints[0][0]).to.be(9);
|
||||
expect(result[2].datapoints[0][1]).to.be(1431946625000);
|
||||
expect(result[2].datapoints[1][0]).to.be(19);
|
||||
expect(result[2].datapoints[1][1]).to.be(1431946626000);
|
||||
expect(result[2].target).toBe('cpu.min {app: test, server: server1}');
|
||||
expect(result[2].datapoints[0][0]).toBe(9);
|
||||
expect(result[2].datapoints[0][1]).toBe(1431946625000);
|
||||
expect(result[2].datapoints[1][0]).toBe(19);
|
||||
expect(result[2].datapoints[1][1]).toBe(1431946626000);
|
||||
|
||||
});
|
||||
});
|
||||
@ -47,9 +46,9 @@ describe('when generating timeseries from influxdb response', function() {
|
||||
var series = new InfluxSeries(options);
|
||||
var result = series.getTimeSeries();
|
||||
|
||||
expect(result[0].target).to.be('new series');
|
||||
expect(result[1].target).to.be('new series');
|
||||
expect(result[2].target).to.be('new series');
|
||||
expect(result[0].target).toBe('new series');
|
||||
expect(result[1].target).toBe('new series');
|
||||
expect(result[2].target).toBe('new series');
|
||||
});
|
||||
|
||||
});
|
||||
@ -60,9 +59,9 @@ describe('when generating timeseries from influxdb response', function() {
|
||||
var series = new InfluxSeries(options);
|
||||
var result = series.getTimeSeries();
|
||||
|
||||
expect(result[0].target).to.be('alias: cpu -> server1 (cpu)');
|
||||
expect(result[1].target).to.be('alias: cpu -> server1 (cpu)');
|
||||
expect(result[2].target).to.be('alias: cpu -> server1 (cpu)');
|
||||
expect(result[0].target).toBe('alias: cpu -> server1 (cpu)');
|
||||
expect(result[1].target).toBe('alias: cpu -> server1 (cpu)');
|
||||
expect(result[2].target).toBe('alias: cpu -> server1 (cpu)');
|
||||
});
|
||||
|
||||
});
|
||||
@ -90,8 +89,8 @@ describe('when generating timeseries from influxdb response', function() {
|
||||
var series = new InfluxSeries(options);
|
||||
var result = series.getTimeSeries();
|
||||
|
||||
expect(result[0].target).to.be('cpu {app: test, server: server1}');
|
||||
expect(result[1].target).to.be('cpu {app: test2, server: server2}');
|
||||
expect(result[0].target).toBe('cpu {app: test, server: server1}');
|
||||
expect(result[1].target).toBe('cpu {app: test2, server: server2}');
|
||||
});
|
||||
});
|
||||
|
||||
@ -122,18 +121,18 @@ describe('when generating timeseries from influxdb response', function() {
|
||||
var series = new InfluxSeries(options);
|
||||
var result = series.getTimeSeries();
|
||||
|
||||
expect(result.length).to.be(2);
|
||||
expect(result[0].target).to.be('cpu.mean {app: test, server: server1}');
|
||||
expect(result[0].datapoints[0][0]).to.be(10);
|
||||
expect(result[0].datapoints[0][1]).to.be(1431946625000);
|
||||
expect(result[0].datapoints[1][0]).to.be(12);
|
||||
expect(result[0].datapoints[1][1]).to.be(1431946626000);
|
||||
expect(result.length).toBe(2);
|
||||
expect(result[0].target).toBe('cpu.mean {app: test, server: server1}');
|
||||
expect(result[0].datapoints[0][0]).toBe(10);
|
||||
expect(result[0].datapoints[0][1]).toBe(1431946625000);
|
||||
expect(result[0].datapoints[1][0]).toBe(12);
|
||||
expect(result[0].datapoints[1][1]).toBe(1431946626000);
|
||||
|
||||
expect(result[1].target).to.be('cpu.mean {app: test2, server: server2}');
|
||||
expect(result[1].datapoints[0][0]).to.be(15);
|
||||
expect(result[1].datapoints[0][1]).to.be(1431946625000);
|
||||
expect(result[1].datapoints[1][0]).to.be(16);
|
||||
expect(result[1].datapoints[1][1]).to.be(1431946626000);
|
||||
expect(result[1].target).toBe('cpu.mean {app: test2, server: server2}');
|
||||
expect(result[1].datapoints[0][0]).toBe(15);
|
||||
expect(result[1].datapoints[0][1]).toBe(1431946625000);
|
||||
expect(result[1].datapoints[1][0]).toBe(16);
|
||||
expect(result[1].datapoints[1][1]).toBe(1431946626000);
|
||||
});
|
||||
});
|
||||
|
||||
@ -143,7 +142,7 @@ describe('when generating timeseries from influxdb response', function() {
|
||||
var series = new InfluxSeries(options);
|
||||
var result = series.getTimeSeries();
|
||||
|
||||
expect(result[0].target).to.be('new series');
|
||||
expect(result[0].target).toBe('new series');
|
||||
});
|
||||
|
||||
});
|
||||
@ -154,8 +153,8 @@ describe('when generating timeseries from influxdb response', function() {
|
||||
var series = new InfluxSeries(options);
|
||||
var result = series.getTimeSeries();
|
||||
|
||||
expect(result[0].target).to.be('alias: cpu -> server1 (cpu)');
|
||||
expect(result[1].target).to.be('alias: cpu -> server2 (cpu)');
|
||||
expect(result[0].target).toBe('alias: cpu -> server1 (cpu)');
|
||||
expect(result[1].target).toBe('alias: cpu -> server2 (cpu)');
|
||||
});
|
||||
|
||||
});
|
||||
@ -180,7 +179,7 @@ describe('when generating timeseries from influxdb response', function() {
|
||||
var series = new InfluxSeries(options);
|
||||
var result = series.getTimeSeries();
|
||||
|
||||
expect(result[0].target).to.be('alias: prod -> count');
|
||||
expect(result[0].target).toBe('alias: prod -> count');
|
||||
});
|
||||
});
|
||||
|
||||
@ -201,9 +200,9 @@ describe('when generating timeseries from influxdb response', function() {
|
||||
var series = new InfluxSeries(options);
|
||||
var table = series.getTable();
|
||||
|
||||
expect(table.type).to.be('table');
|
||||
expect(table.columns.length).to.be(5);
|
||||
expect(table.rows[0]).to.eql([1431946625000, 'Africa', 'server2', 23, 10]);
|
||||
expect(table.type).toBe('table');
|
||||
expect(table.columns.length).toBe(5);
|
||||
expect(table.rows[0]).toEqual([1431946625000, 'Africa', 'server2', 23, 10]);
|
||||
});
|
||||
});
|
||||
|
||||
@ -228,7 +227,7 @@ describe('when generating timeseries from influxdb response', function() {
|
||||
var series = new InfluxSeries(options);
|
||||
var annotations = series.getAnnotations();
|
||||
|
||||
expect(annotations[0].tags.length).to.be(0);
|
||||
expect(annotations[0].tags.length).toBe(0);
|
||||
});
|
||||
});
|
||||
|
||||
@ -254,9 +253,9 @@ describe('when generating timeseries from influxdb response', function() {
|
||||
var series = new InfluxSeries(options);
|
||||
var annotations = series.getAnnotations();
|
||||
|
||||
expect(annotations[0].tags.length).to.be(2);
|
||||
expect(annotations[0].tags[0]).to.be('America');
|
||||
expect(annotations[0].tags[1]).to.be('backend');
|
||||
expect(annotations[0].tags.length).toBe(2);
|
||||
expect(annotations[0].tags[0]).toBe('America');
|
||||
expect(annotations[0].tags[1]).toBe('backend');
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user