mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
add test for prometheus fill null
This commit is contained in:
@@ -49,6 +49,73 @@ describe('PrometheusDatasource', function() {
|
||||
expect(results.data[0].target).to.be('test{job="testjob"}');
|
||||
});
|
||||
});
|
||||
describe('When querying prometheus with one target which return multiple series', function() {
|
||||
var results;
|
||||
var start = 1443438675;
|
||||
var end = 1443460275;
|
||||
var step = 60;
|
||||
var urlExpected = 'proxied/api/v1/query_range?query=' +
|
||||
encodeURIComponent('test{job="testjob"}') +
|
||||
'&start=' + start + '&end=' + end + '&step=' + step;
|
||||
var query = {
|
||||
range: { from: moment(1443438674760), to: moment(1443460274760) },
|
||||
targets: [{ expr: 'test{job="testjob"}' }],
|
||||
interval: '60s'
|
||||
};
|
||||
var response = {
|
||||
status: "success",
|
||||
data: {
|
||||
resultType: "matrix",
|
||||
result: [
|
||||
{
|
||||
metric: {"__name__": "test", job: "testjob", series: 'series 1'},
|
||||
values: [
|
||||
[start + step * 1, "3846"],
|
||||
[start + step * 3, "3847"],
|
||||
[end - step * 1, "3848"],
|
||||
]
|
||||
},
|
||||
{
|
||||
metric: {"__name__": "test", job: "testjob", series: 'series 2'},
|
||||
values: [
|
||||
[start + step * 2, "4846"]
|
||||
]
|
||||
},
|
||||
]
|
||||
}
|
||||
};
|
||||
beforeEach(function() {
|
||||
ctx.$httpBackend.expect('GET', urlExpected).respond(response);
|
||||
ctx.ds.query(query).then(function(data) { results = data; });
|
||||
ctx.$httpBackend.flush();
|
||||
});
|
||||
it('should be same length', function() {
|
||||
expect(results.data.length).to.be(2);
|
||||
expect(results.data[0].datapoints.length).to.be((end - start) / step + 1);
|
||||
expect(results.data[1].datapoints.length).to.be((end - start) / step + 1);
|
||||
});
|
||||
it('should fill null until first datapoint in response', function() {
|
||||
expect(results.data[0].datapoints[0][1]).to.be(start * 1000);
|
||||
expect(results.data[0].datapoints[0][0]).to.be(null);
|
||||
expect(results.data[0].datapoints[1][1]).to.be((start + step * 1) * 1000);
|
||||
expect(results.data[0].datapoints[1][0]).to.be(3846);
|
||||
});
|
||||
it('should fill null after last datapoint in response', function() {
|
||||
var length = (end - start) / step + 1;
|
||||
expect(results.data[0].datapoints[length-2][1]).to.be((end - step * 1) * 1000);
|
||||
expect(results.data[0].datapoints[length-2][0]).to.be(3848);
|
||||
expect(results.data[0].datapoints[length-1][1]).to.be(end * 1000);
|
||||
expect(results.data[0].datapoints[length-1][0]).to.be(null);
|
||||
});
|
||||
it('should fill null at gap between series', function() {
|
||||
expect(results.data[0].datapoints[2][1]).to.be((start + step * 2) * 1000);
|
||||
expect(results.data[0].datapoints[2][0]).to.be(null);
|
||||
expect(results.data[1].datapoints[1][1]).to.be((start + step * 1) * 1000);
|
||||
expect(results.data[1].datapoints[1][0]).to.be(null);
|
||||
expect(results.data[1].datapoints[3][1]).to.be((start + step * 3) * 1000);
|
||||
expect(results.data[1].datapoints[3][0]).to.be(null);
|
||||
});
|
||||
});
|
||||
describe('When performing metricFindQuery', function() {
|
||||
var results;
|
||||
var response;
|
||||
|
||||
Reference in New Issue
Block a user