mirror of
https://github.com/grafana/grafana.git
synced 2025-02-14 17:43:35 -06:00
use series matchers to get label name/value
This commit is contained in:
parent
c7279a4e07
commit
e62c083cf0
@ -113,7 +113,7 @@ export class PromCompleter {
|
||||
_.uniq(
|
||||
_.flatten(
|
||||
result.map(r => {
|
||||
return Object.keys(r.metric);
|
||||
return Object.keys(r);
|
||||
})
|
||||
)
|
||||
),
|
||||
@ -151,7 +151,7 @@ export class PromCompleter {
|
||||
var labelValues = this.transformToCompletions(
|
||||
_.uniq(
|
||||
result.map(r => {
|
||||
return r.metric[labelName];
|
||||
return r[labelName];
|
||||
})
|
||||
),
|
||||
'label value'
|
||||
@ -191,7 +191,7 @@ export class PromCompleter {
|
||||
_.uniq(
|
||||
_.flatten(
|
||||
result.map(r => {
|
||||
return Object.keys(r.metric);
|
||||
return Object.keys(r);
|
||||
})
|
||||
)
|
||||
),
|
||||
@ -233,7 +233,7 @@ export class PromCompleter {
|
||||
_.uniq(
|
||||
_.flatten(
|
||||
result.map(r => {
|
||||
return Object.keys(r.metric);
|
||||
return Object.keys(r);
|
||||
})
|
||||
)
|
||||
),
|
||||
@ -249,7 +249,7 @@ export class PromCompleter {
|
||||
_.uniq(
|
||||
_.flatten(
|
||||
result.map(r => {
|
||||
return Object.keys(r.metric);
|
||||
return Object.keys(r);
|
||||
})
|
||||
)
|
||||
),
|
||||
@ -276,9 +276,11 @@ export class PromCompleter {
|
||||
}
|
||||
query = '{__name__' + op + '"' + expr + '"}';
|
||||
}
|
||||
return this.datasource.performInstantQuery({ expr: query }, new Date().getTime() / 1000).then(response => {
|
||||
this.labelQueryCache[expr] = response.data.data.result;
|
||||
return response.data.data.result;
|
||||
let range = this.datasource.getTimeRange();
|
||||
let url = '/api/v1/series?match[]=' + encodeURIComponent(query) + '&start=' + range.from + '&end=' + range.to;
|
||||
return this.datasource.metadataRequest(url).then(response => {
|
||||
this.labelQueryCache[expr] = response.data.data;
|
||||
return response.data.data;
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -629,6 +629,14 @@ export class PrometheusDatasource {
|
||||
return Math.ceil(date.valueOf() / 1000);
|
||||
}
|
||||
|
||||
getTimeRange() {
|
||||
let range = this.timeSrv.timeRange();
|
||||
return {
|
||||
from: this.getPrometheusTime(range.from, false),
|
||||
to: this.getPrometheusTime(range.to, true)
|
||||
};
|
||||
}
|
||||
|
||||
getOriginalMetricName(labelData) {
|
||||
return this.resultTransformer.getOriginalMetricName(labelData);
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import { BackendSrv } from 'app/core/services/backend_srv';
|
||||
jest.mock('../datasource');
|
||||
jest.mock('app/core/services/backend_srv');
|
||||
|
||||
describe('Prometheus editor completer', function() {
|
||||
describe('Prometheus editor completer', function () {
|
||||
function getSessionStub(data) {
|
||||
return {
|
||||
getTokenAt: jest.fn(() => data.currentToken),
|
||||
@ -18,22 +18,9 @@ describe('Prometheus editor completer', function() {
|
||||
const backendSrv = <BackendSrv>{};
|
||||
const datasourceStub = new PrometheusDatasource({}, {}, backendSrv, {}, {});
|
||||
|
||||
datasourceStub.performInstantQuery = jest.fn(() =>
|
||||
Promise.resolve({
|
||||
data: {
|
||||
data: {
|
||||
result: [
|
||||
{
|
||||
metric: {
|
||||
job: 'node',
|
||||
instance: 'localhost:9100',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
})
|
||||
);
|
||||
datasourceStub.metadataRequest = jest.fn(() =>
|
||||
Promise.resolve({ data: { data: [{ metric: { job: 'node', instance: 'localhost:9100', }, },], }, }));
|
||||
datasourceStub.getTimeRange = jest.fn(() => { return { from: 1514732400, to: 1514818800 }; });
|
||||
datasourceStub.performSuggestQuery = jest.fn(() => Promise.resolve(['node_cpu']));
|
||||
|
||||
const templateSrv = {
|
||||
|
Loading…
Reference in New Issue
Block a user