Skip to content

Commit 7d2646f

Browse files
committed
refactor: moved influxdb specs to plugins folder
1 parent 1a8bc1d commit 7d2646f

File tree

10 files changed

+568
-559
lines changed

10 files changed

+568
-559
lines changed

public/app/plugins/datasource/influxdb/datasource.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ define([
22
'angular',
33
'lodash',
44
'app/core/utils/datemath',
5-
'./influxSeries',
6-
'./queryBuilder',
5+
'./influx_series',
6+
'./query_builder',
77
'./directives',
8-
'./queryCtrl',
8+
'./query_ctrl',
99
],
1010
function (angular, _, dateMath, InfluxSeries, InfluxQueryBuilder) {
1111
'use strict';

public/app/plugins/datasource/influxdb/queryCtrl.js renamed to public/app/plugins/datasource/influxdb/query_ctrl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
define([
22
'angular',
33
'lodash',
4-
'./queryBuilder',
4+
'./query_builder',
55
],
66
function (angular, _, InfluxQueryBuilder) {
77
'use strict';
Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
///<amd-dependency path="app/plugins/datasource/influxdb/influx_series" name="InfluxSeries"/>
2+
3+
import {describe, beforeEach, it, sinon, expect} from 'test/lib/common';
4+
5+
declare var InfluxSeries: any;
6+
7+
describe('when generating timeseries from influxdb response', function() {
8+
9+
describe('given multiple fields for series', function() {
10+
var options = {
11+
alias: '',
12+
series: [
13+
{
14+
name: 'cpu',
15+
tags: {app: 'test', server: 'server1'},
16+
columns: ['time', 'mean', 'max', 'min'],
17+
values: [[1431946625000, 10, 11, 9], [1431946626000, 20, 21, 19]]
18+
}
19+
]
20+
};
21+
describe('and no alias', function() {
22+
it('should generate multiple datapoints for each column', function() {
23+
var series = new InfluxSeries(options);
24+
var result = series.getTimeSeries();
25+
26+
expect(result.length).to.be(3);
27+
expect(result[0].target).to.be('cpu.mean {app: test, server: server1}');
28+
expect(result[0].datapoints[0][0]).to.be(10);
29+
expect(result[0].datapoints[0][1]).to.be(1431946625000);
30+
expect(result[0].datapoints[1][0]).to.be(20);
31+
expect(result[0].datapoints[1][1]).to.be(1431946626000);
32+
33+
expect(result[1].target).to.be('cpu.max {app: test, server: server1}');
34+
expect(result[1].datapoints[0][0]).to.be(11);
35+
expect(result[1].datapoints[0][1]).to.be(1431946625000);
36+
expect(result[1].datapoints[1][0]).to.be(21);
37+
expect(result[1].datapoints[1][1]).to.be(1431946626000);
38+
39+
expect(result[2].target).to.be('cpu.min {app: test, server: server1}');
40+
expect(result[2].datapoints[0][0]).to.be(9);
41+
expect(result[2].datapoints[0][1]).to.be(1431946625000);
42+
expect(result[2].datapoints[1][0]).to.be(19);
43+
expect(result[2].datapoints[1][1]).to.be(1431946626000);
44+
45+
});
46+
});
47+
48+
describe('and simple alias', function() {
49+
it('should use alias', function() {
50+
options.alias = 'new series';
51+
var series = new InfluxSeries(options);
52+
var result = series.getTimeSeries();
53+
54+
expect(result[0].target).to.be('new series');
55+
expect(result[1].target).to.be('new series');
56+
expect(result[2].target).to.be('new series');
57+
});
58+
59+
});
60+
61+
describe('and alias patterns', function() {
62+
it('should replace patterns', function() {
63+
options.alias = 'alias: $m -> $tag_server ([[measurement]])';
64+
var series = new InfluxSeries(options);
65+
var result = series.getTimeSeries();
66+
67+
expect(result[0].target).to.be('alias: cpu -> server1 (cpu)');
68+
expect(result[1].target).to.be('alias: cpu -> server1 (cpu)');
69+
expect(result[2].target).to.be('alias: cpu -> server1 (cpu)');
70+
});
71+
72+
});
73+
});
74+
describe('given measurement with default fieldname', function() {
75+
var options = { series: [
76+
{
77+
name: 'cpu',
78+
tags: {app: 'test', server: 'server1'},
79+
columns: ['time', 'value'],
80+
values: [["2015-05-18T10:57:05Z", 10], ["2015-05-18T10:57:06Z", 12]]
81+
},
82+
{
83+
name: 'cpu',
84+
tags: {app: 'test2', server: 'server2'},
85+
columns: ['time', 'value'],
86+
values: [["2015-05-18T10:57:05Z", 15], ["2015-05-18T10:57:06Z", 16]]
87+
}
88+
]};
89+
90+
describe('and no alias', function() {
91+
92+
it('should generate label with no field', function() {
93+
var series = new InfluxSeries(options);
94+
var result = series.getTimeSeries();
95+
96+
expect(result[0].target).to.be('cpu {app: test, server: server1}');
97+
expect(result[1].target).to.be('cpu {app: test2, server: server2}');
98+
});
99+
});
100+
101+
});
102+
describe('given two series', function() {
103+
var options = {
104+
alias: '',
105+
series: [
106+
{
107+
name: 'cpu',
108+
tags: {app: 'test', server: 'server1'},
109+
columns: ['time', 'mean'],
110+
values: [[1431946625000, 10], [1431946626000, 12]]
111+
},
112+
{
113+
name: 'cpu',
114+
tags: {app: 'test2', server: 'server2'},
115+
columns: ['time', 'mean'],
116+
values: [[1431946625000, 15], [1431946626000, 16]]
117+
}
118+
]
119+
};
120+
121+
describe('and no alias', function() {
122+
123+
it('should generate two time series', function() {
124+
var series = new InfluxSeries(options);
125+
var result = series.getTimeSeries();
126+
127+
expect(result.length).to.be(2);
128+
expect(result[0].target).to.be('cpu.mean {app: test, server: server1}');
129+
expect(result[0].datapoints[0][0]).to.be(10);
130+
expect(result[0].datapoints[0][1]).to.be(1431946625000);
131+
expect(result[0].datapoints[1][0]).to.be(12);
132+
expect(result[0].datapoints[1][1]).to.be(1431946626000);
133+
134+
expect(result[1].target).to.be('cpu.mean {app: test2, server: server2}');
135+
expect(result[1].datapoints[0][0]).to.be(15);
136+
expect(result[1].datapoints[0][1]).to.be(1431946625000);
137+
expect(result[1].datapoints[1][0]).to.be(16);
138+
expect(result[1].datapoints[1][1]).to.be(1431946626000);
139+
});
140+
});
141+
142+
describe('and simple alias', function() {
143+
it('should use alias', function() {
144+
options.alias = 'new series';
145+
var series = new InfluxSeries(options);
146+
var result = series.getTimeSeries();
147+
148+
expect(result[0].target).to.be('new series');
149+
});
150+
151+
});
152+
153+
describe('and alias patterns', function() {
154+
it('should replace patterns', function() {
155+
options.alias = 'alias: $m -> $tag_server ([[measurement]])';
156+
var series = new InfluxSeries(options);
157+
var result = series.getTimeSeries();
158+
159+
expect(result[0].target).to.be('alias: cpu -> server1 (cpu)');
160+
expect(result[1].target).to.be('alias: cpu -> server2 (cpu)');
161+
});
162+
163+
});
164+
165+
});
166+
167+
describe('given measurement with dots', function() {
168+
var options = {
169+
alias: '',
170+
series: [
171+
{
172+
name: 'app.prod.server1.count',
173+
tags: {},
174+
columns: ['time', 'mean'],
175+
values: [[1431946625000, 10], [1431946626000, 12]]
176+
}
177+
]
178+
};
179+
180+
it('should replace patterns', function() {
181+
options.alias = 'alias: $1 -> [[3]]';
182+
var series = new InfluxSeries(options);
183+
var result = series.getTimeSeries();
184+
185+
expect(result[0].target).to.be('alias: prod -> count');
186+
});
187+
});
188+
189+
});
190+

0 commit comments

Comments
 (0)