mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Convert prometheus specs to typescript
This commit is contained in:
parent
67f253830f
commit
b90e4057ba
@ -0,0 +1,93 @@
|
|||||||
|
///<amd-dependency path="app/plugins/datasource/prometheus/datasource" />
|
||||||
|
///<amd-dependency path="test/specs/helpers" name="helpers" />
|
||||||
|
|
||||||
|
import {describe, beforeEach, it, sinon, expect, angularMocks} from 'test/lib/common';
|
||||||
|
import moment = require('moment');
|
||||||
|
declare var helpers: any;
|
||||||
|
|
||||||
|
describe('PrometheusDatasource', function() {
|
||||||
|
var ctx = new helpers.ServiceTestContext();
|
||||||
|
beforeEach(angularMocks.module('grafana.services'));
|
||||||
|
beforeEach(ctx.createService('PrometheusDatasource'));
|
||||||
|
beforeEach(function() {
|
||||||
|
ctx.ds = new ctx.service({ url: '', user: 'test', password: 'mupp' });
|
||||||
|
});
|
||||||
|
describe('When querying prometheus with one target using query editor target spec', function() {
|
||||||
|
var results;
|
||||||
|
var urlExpected = '/api/v1/query_range?query=' +
|
||||||
|
encodeURIComponent('test{job="testjob"}') +
|
||||||
|
'&start=1443438675&end=1443460275&step=60s';
|
||||||
|
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"},
|
||||||
|
values: [[1443454528, "3846"]]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
beforeEach(function() {
|
||||||
|
ctx.$httpBackend.expect('GET', urlExpected).respond(response);
|
||||||
|
ctx.ds.query(query).then(function(data) { results = data; });
|
||||||
|
ctx.$httpBackend.flush();
|
||||||
|
});
|
||||||
|
it('should generate the correct query', function() {
|
||||||
|
ctx.$httpBackend.verifyNoOutstandingExpectation();
|
||||||
|
});
|
||||||
|
it('should return series list', function() {
|
||||||
|
expect(results.data.length).to.be(1);
|
||||||
|
expect(results.data[0].target).to.be('test{job="testjob"}');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
describe('When performing metricFindQuery', function() {
|
||||||
|
var results;
|
||||||
|
var response;
|
||||||
|
it('label_values(resource) should generate label search query', function() {
|
||||||
|
response = {
|
||||||
|
status: "success",
|
||||||
|
data: ["value1", "value2", "value3"]
|
||||||
|
};
|
||||||
|
ctx.$httpBackend.expect('GET', '/api/v1/label/resource/values').respond(response);
|
||||||
|
ctx.ds.metricFindQuery('label_values(resource)').then(function(data) { results = data; });
|
||||||
|
ctx.$httpBackend.flush();
|
||||||
|
ctx.$rootScope.$apply();
|
||||||
|
expect(results.length).to.be(3);
|
||||||
|
});
|
||||||
|
it('label_values(metric, resource) should generate count metric query', function() {
|
||||||
|
response = {
|
||||||
|
status: "success",
|
||||||
|
data: {
|
||||||
|
resultType: "vector",
|
||||||
|
result: [
|
||||||
|
{metric: {resource: "value1"}, value: []},
|
||||||
|
{metric: {resource: "value2"}, value: []},
|
||||||
|
{metric: {resource: "value3"}, value: []}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ctx.$httpBackend.expect('GET', /\/api\/v1\/query\?query=count\(metric\)%20by%20\(resource\)&time=.*/).respond(response);
|
||||||
|
ctx.ds.metricFindQuery('label_values(metric, resource)').then(function(data) { results = data; });
|
||||||
|
ctx.$httpBackend.flush();
|
||||||
|
ctx.$rootScope.$apply();
|
||||||
|
expect(results.length).to.be(3);
|
||||||
|
});
|
||||||
|
it('metrics(metric.*) should generate metric name query', function() {
|
||||||
|
response = {
|
||||||
|
status: "success",
|
||||||
|
data: ["metric1","metric2","metric3","nomatch"]
|
||||||
|
};
|
||||||
|
ctx.$httpBackend.expect('GET', '/api/v1/label/__name__/values').respond(response);
|
||||||
|
ctx.ds.metricFindQuery('metrics(metric.*)').then(function(data) { results = data; });
|
||||||
|
ctx.$httpBackend.flush();
|
||||||
|
ctx.$rootScope.$apply();
|
||||||
|
expect(results.length).to.be(3);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -1,106 +0,0 @@
|
|||||||
define([
|
|
||||||
'./helpers',
|
|
||||||
'moment',
|
|
||||||
'app/plugins/datasource/prometheus/datasource'
|
|
||||||
], function(helpers, moment) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
describe('PrometheusDatasource', function() {
|
|
||||||
var ctx = new helpers.ServiceTestContext();
|
|
||||||
|
|
||||||
beforeEach(module('grafana.services'));
|
|
||||||
beforeEach(ctx.createService('PrometheusDatasource'));
|
|
||||||
beforeEach(function() {
|
|
||||||
ctx.ds = new ctx.service({ url: '', user: 'test', password: 'mupp' });
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('When querying prometheus with one target using query editor target spec', function() {
|
|
||||||
var results;
|
|
||||||
var urlExpected = '/api/v1/query_range?query=' +
|
|
||||||
encodeURIComponent('test{job="testjob"}') +
|
|
||||||
'&start=1443438675&end=1443460275&step=60s';
|
|
||||||
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"},
|
|
||||||
"values":[[1443454528,"3846"]]
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
beforeEach(function() {
|
|
||||||
ctx.$httpBackend.expect('GET', urlExpected).respond(response);
|
|
||||||
ctx.ds.query(query).then(function(data) { results = data; });
|
|
||||||
ctx.$httpBackend.flush();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should generate the correct query', function() {
|
|
||||||
ctx.$httpBackend.verifyNoOutstandingExpectation();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should return series list', function() {
|
|
||||||
expect(results.data.length).to.be(1);
|
|
||||||
expect(results.data[0].target).to.be('test{job="testjob"}');
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('When performing metricFindQuery', function() {
|
|
||||||
var results;
|
|
||||||
var response;
|
|
||||||
|
|
||||||
it('label_values(resource) should generate label search query', function() {
|
|
||||||
response = {
|
|
||||||
status: "success",
|
|
||||||
data: ["value1", "value2", "value3"]
|
|
||||||
};
|
|
||||||
ctx.$httpBackend.expect('GET', '/api/v1/label/resource/values').respond(response);
|
|
||||||
ctx.ds.metricFindQuery('label_values(resource)').then(function(data) { results = data; });
|
|
||||||
ctx.$httpBackend.flush();
|
|
||||||
ctx.$rootScope.$apply();
|
|
||||||
expect(results.length).to.be(3);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('label_values(metric, resource) should generate count metric query', function() {
|
|
||||||
response = {
|
|
||||||
status: "success",
|
|
||||||
data:{
|
|
||||||
resultType: "vector",
|
|
||||||
result:[
|
|
||||||
{metric:{resource:"value1"},value:[]},
|
|
||||||
{metric:{resource:"value2"},value:[]},
|
|
||||||
{metric:{resource:"value3"},value:[]}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
ctx.$httpBackend.expect('GET', /\/api\/v1\/query\?query=count\(metric\)%20by%20\(resource\)&time=.*/).respond(response);
|
|
||||||
ctx.ds.metricFindQuery('label_values(metric, resource)').then(function(data) { results = data; });
|
|
||||||
ctx.$httpBackend.flush();
|
|
||||||
ctx.$rootScope.$apply();
|
|
||||||
expect(results.length).to.be(3);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('metrics(metric.*) should generate metric name query', function() {
|
|
||||||
response = {
|
|
||||||
status: "success",
|
|
||||||
data:["metric1","metric2","metric3","nomatch"]
|
|
||||||
};
|
|
||||||
ctx.$httpBackend.expect('GET', '/api/v1/label/__name__/values').respond(response);
|
|
||||||
ctx.ds.metricFindQuery('metrics(metric.*)').then(function(data) { results = data; });
|
|
||||||
ctx.$httpBackend.flush();
|
|
||||||
ctx.$rootScope.$apply();
|
|
||||||
expect(results.length).to.be(3);
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user