|
@@ -22,18 +22,22 @@ describe('PrometheusMetricFindQuery', function() {
|
|
|
describe('When performing metricFindQuery', function() {
|
|
describe('When performing metricFindQuery', function() {
|
|
|
var results;
|
|
var results;
|
|
|
var response;
|
|
var response;
|
|
|
|
|
+
|
|
|
it('label_values(resource) should generate label search query', function() {
|
|
it('label_values(resource) should generate label search query', function() {
|
|
|
response = {
|
|
response = {
|
|
|
status: "success",
|
|
status: "success",
|
|
|
data: ["value1", "value2", "value3"]
|
|
data: ["value1", "value2", "value3"]
|
|
|
};
|
|
};
|
|
|
|
|
+
|
|
|
ctx.$httpBackend.expect('GET', 'proxied/api/v1/label/resource/values').respond(response);
|
|
ctx.$httpBackend.expect('GET', 'proxied/api/v1/label/resource/values').respond(response);
|
|
|
var pm = new PrometheusMetricFindQuery(ctx.ds, 'label_values(resource)', ctx.timeSrv);
|
|
var pm = new PrometheusMetricFindQuery(ctx.ds, 'label_values(resource)', ctx.timeSrv);
|
|
|
pm.process().then(function(data) { results = data; });
|
|
pm.process().then(function(data) { results = data; });
|
|
|
ctx.$httpBackend.flush();
|
|
ctx.$httpBackend.flush();
|
|
|
ctx.$rootScope.$apply();
|
|
ctx.$rootScope.$apply();
|
|
|
|
|
+
|
|
|
expect(results.length).to.be(3);
|
|
expect(results.length).to.be(3);
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
it('label_values(metric, resource) should generate series query', function() {
|
|
it('label_values(metric, resource) should generate series query', function() {
|
|
|
response = {
|
|
response = {
|
|
|
status: "success",
|
|
status: "success",
|
|
@@ -43,13 +47,16 @@ describe('PrometheusMetricFindQuery', function() {
|
|
|
{__name__: "metric", resource: "value3"}
|
|
{__name__: "metric", resource: "value3"}
|
|
|
]
|
|
]
|
|
|
};
|
|
};
|
|
|
|
|
+
|
|
|
ctx.$httpBackend.expect('GET', /proxied\/api\/v1\/series\?match\[\]=metric&start=.*&end=.*/).respond(response);
|
|
ctx.$httpBackend.expect('GET', /proxied\/api\/v1\/series\?match\[\]=metric&start=.*&end=.*/).respond(response);
|
|
|
var pm = new PrometheusMetricFindQuery(ctx.ds, 'label_values(metric, resource)', ctx.timeSrv);
|
|
var pm = new PrometheusMetricFindQuery(ctx.ds, 'label_values(metric, resource)', ctx.timeSrv);
|
|
|
pm.process().then(function(data) { results = data; });
|
|
pm.process().then(function(data) { results = data; });
|
|
|
ctx.$httpBackend.flush();
|
|
ctx.$httpBackend.flush();
|
|
|
ctx.$rootScope.$apply();
|
|
ctx.$rootScope.$apply();
|
|
|
|
|
+
|
|
|
expect(results.length).to.be(3);
|
|
expect(results.length).to.be(3);
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
it('label_values(metric, resource) should pass correct time', function() {
|
|
it('label_values(metric, resource) should pass correct time', function() {
|
|
|
ctx.timeSrv.setTime({ from: moment.utc('2011-01-01'), to: moment.utc('2015-01-01') });
|
|
ctx.timeSrv.setTime({ from: moment.utc('2011-01-01'), to: moment.utc('2015-01-01') });
|
|
|
ctx.$httpBackend.expect('GET',
|
|
ctx.$httpBackend.expect('GET',
|
|
@@ -59,6 +66,7 @@ describe('PrometheusMetricFindQuery', function() {
|
|
|
ctx.$httpBackend.flush();
|
|
ctx.$httpBackend.flush();
|
|
|
ctx.$rootScope.$apply();
|
|
ctx.$rootScope.$apply();
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
it('label_values(metric{label1="foo", label2="bar", label3="baz"}, resource) should generate series query', function() {
|
|
it('label_values(metric{label1="foo", label2="bar", label3="baz"}, resource) should generate series query', function() {
|
|
|
response = {
|
|
response = {
|
|
|
status: "success",
|
|
status: "success",
|
|
@@ -68,6 +76,7 @@ describe('PrometheusMetricFindQuery', function() {
|
|
|
{__name__: "metric", resource: "value3"}
|
|
{__name__: "metric", resource: "value3"}
|
|
|
]
|
|
]
|
|
|
};
|
|
};
|
|
|
|
|
+
|
|
|
ctx.$httpBackend.expect('GET', /proxied\/api\/v1\/series\?match\[\]=metric&start=.*&end=.*/).respond(response);
|
|
ctx.$httpBackend.expect('GET', /proxied\/api\/v1\/series\?match\[\]=metric&start=.*&end=.*/).respond(response);
|
|
|
var pm = new PrometheusMetricFindQuery(ctx.ds, 'label_values(metric, resource)', ctx.timeSrv);
|
|
var pm = new PrometheusMetricFindQuery(ctx.ds, 'label_values(metric, resource)', ctx.timeSrv);
|
|
|
pm.process().then(function(data) { results = data; });
|
|
pm.process().then(function(data) { results = data; });
|
|
@@ -75,18 +84,22 @@ describe('PrometheusMetricFindQuery', function() {
|
|
|
ctx.$rootScope.$apply();
|
|
ctx.$rootScope.$apply();
|
|
|
expect(results.length).to.be(3);
|
|
expect(results.length).to.be(3);
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
it('metrics(metric.*) should generate metric name query', function() {
|
|
it('metrics(metric.*) should generate metric name query', function() {
|
|
|
response = {
|
|
response = {
|
|
|
status: "success",
|
|
status: "success",
|
|
|
data: ["metric1","metric2","metric3","nomatch"]
|
|
data: ["metric1","metric2","metric3","nomatch"]
|
|
|
};
|
|
};
|
|
|
|
|
+
|
|
|
ctx.$httpBackend.expect('GET', 'proxied/api/v1/label/__name__/values').respond(response);
|
|
ctx.$httpBackend.expect('GET', 'proxied/api/v1/label/__name__/values').respond(response);
|
|
|
var pm = new PrometheusMetricFindQuery(ctx.ds, 'metrics(metric.*)', ctx.timeSrv);
|
|
var pm = new PrometheusMetricFindQuery(ctx.ds, 'metrics(metric.*)', ctx.timeSrv);
|
|
|
pm.process().then(function(data) { results = data; });
|
|
pm.process().then(function(data) { results = data; });
|
|
|
ctx.$httpBackend.flush();
|
|
ctx.$httpBackend.flush();
|
|
|
ctx.$rootScope.$apply();
|
|
ctx.$rootScope.$apply();
|
|
|
|
|
+
|
|
|
expect(results.length).to.be(3);
|
|
expect(results.length).to.be(3);
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
it('query_result(metric) should generate metric name query', function() {
|
|
it('query_result(metric) should generate metric name query', function() {
|
|
|
response = {
|
|
response = {
|
|
|
status: "success",
|
|
status: "success",
|
|
@@ -98,6 +111,7 @@ describe('PrometheusMetricFindQuery', function() {
|
|
|
}]
|
|
}]
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
+
|
|
|
ctx.$httpBackend.expect('GET', /proxied\/api\/v1\/query\?query=metric&time=.*/).respond(response);
|
|
ctx.$httpBackend.expect('GET', /proxied\/api\/v1\/query\?query=metric&time=.*/).respond(response);
|
|
|
var pm = new PrometheusMetricFindQuery(ctx.ds, 'query_result(metric)', ctx.timeSrv);
|
|
var pm = new PrometheusMetricFindQuery(ctx.ds, 'query_result(metric)', ctx.timeSrv);
|
|
|
pm.process().then(function(data) { results = data; });
|
|
pm.process().then(function(data) { results = data; });
|
|
@@ -106,5 +120,28 @@ describe('PrometheusMetricFindQuery', function() {
|
|
|
expect(results.length).to.be(1);
|
|
expect(results.length).to.be(1);
|
|
|
expect(results[0].text).to.be('metric{job="testjob"} 3846 1443454528000');
|
|
expect(results[0].text).to.be('metric{job="testjob"} 3846 1443454528000');
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ it('labels(metric) should generate series query', function() {
|
|
|
|
|
+ response = {
|
|
|
|
|
+ status: "success",
|
|
|
|
|
+ data: [
|
|
|
|
|
+ {__name__: "metric", resource: "value1", app: "app1"},
|
|
|
|
|
+ {__name__: "metric", resource: "value2", app: "app2"},
|
|
|
|
|
+ {__name__: "metric", resource: "value3", server: "server1"}
|
|
|
|
|
+ ]
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ ctx.$httpBackend.expect('GET', /proxied\/api\/v1\/series\?match\[\]=metric&start=.*&end=.*/).respond(response);
|
|
|
|
|
+ var pm = new PrometheusMetricFindQuery(ctx.ds, 'labels(metric)', ctx.timeSrv);
|
|
|
|
|
+ pm.process().then(function(data) { results = data; });
|
|
|
|
|
+ ctx.$httpBackend.flush();
|
|
|
|
|
+ ctx.$rootScope.$apply();
|
|
|
|
|
+
|
|
|
|
|
+ expect(results.length).to.be(3);
|
|
|
|
|
+ expect(results[0].text).to.be('resource');
|
|
|
|
|
+ expect(results[1].text).to.be('app');
|
|
|
|
|
+ expect(results[2].text).to.be('server');
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|