mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 17:32:18 +08:00
Revert "Prometheus: Remove series endpoint call from Metrics Explorer" (#105104)
Revert "Prometheus: Remove series endpoint call from Metrics Explorer (#104263)" This reverts commit 89198bb749c247fa0fd394172bb939c3d79be3da.
This commit is contained in:
@ -147,11 +147,15 @@ describe('PrometheusMetricFindQuery', () => {
|
||||
});
|
||||
|
||||
// <LegacyPrometheus>
|
||||
it('label_values(metric, resource) should generate label/__name__/values query with correct time', async () => {
|
||||
it('label_values(metric, resource) should generate series query with correct time', async () => {
|
||||
const query = setupMetricFindQuery({
|
||||
query: 'label_values(metric, resource)',
|
||||
response: {
|
||||
data: ['value1', 'value2', 'value3'],
|
||||
data: [
|
||||
{ __name__: 'metric', resource: 'value1' },
|
||||
{ __name__: 'metric', resource: 'value2' },
|
||||
{ __name__: 'metric', resource: 'value3' },
|
||||
],
|
||||
},
|
||||
});
|
||||
const results = await query.process(raw);
|
||||
@ -160,19 +164,24 @@ describe('PrometheusMetricFindQuery', () => {
|
||||
expect(fetchMock).toHaveBeenCalledTimes(1);
|
||||
expect(fetchMock).toHaveBeenCalledWith({
|
||||
method: 'GET',
|
||||
url: `/api/datasources/uid/ABCDEF/resources/api/v1/label/resource/values?match${encodeURIComponent(
|
||||
url: `/api/datasources/uid/ABCDEF/resources/api/v1/series?match${encodeURIComponent(
|
||||
'[]'
|
||||
)}=metric&start=${raw.from.unix()}&end=${raw.to.unix()}`,
|
||||
hideFromInspector: true,
|
||||
showErrorAlert: false,
|
||||
headers: {},
|
||||
});
|
||||
});
|
||||
|
||||
it('label_values(metric{label1="foo", label2="bar", label3="baz"}, resource) should generate label/__name__/values? query with correct time', async () => {
|
||||
it('label_values(metric{label1="foo", label2="bar", label3="baz"}, resource) should generate series query with correct time', async () => {
|
||||
const query = setupMetricFindQuery({
|
||||
query: 'label_values(metric{label1="foo", label2="bar", label3="baz"}, resource)',
|
||||
response: {
|
||||
data: ['value1', 'value2', 'value3'],
|
||||
data: [
|
||||
{ __name__: 'metric', resource: 'value1' },
|
||||
{ __name__: 'metric', resource: 'value2' },
|
||||
{ __name__: 'metric', resource: 'value3' },
|
||||
],
|
||||
},
|
||||
});
|
||||
const results = await query.process(raw);
|
||||
@ -181,8 +190,9 @@ describe('PrometheusMetricFindQuery', () => {
|
||||
expect(fetchMock).toHaveBeenCalledTimes(1);
|
||||
expect(fetchMock).toHaveBeenCalledWith({
|
||||
method: 'GET',
|
||||
url: '/api/datasources/uid/ABCDEF/resources/api/v1/label/resource/values?match%5B%5D=metric%7Blabel1%3D%22foo%22%2C%20label2%3D%22bar%22%2C%20label3%3D%22baz%22%7D&start=1524650400&end=1524654000',
|
||||
url: '/api/datasources/uid/ABCDEF/resources/api/v1/series?match%5B%5D=metric%7Blabel1%3D%22foo%22%2C%20label2%3D%22bar%22%2C%20label3%3D%22baz%22%7D&start=1524650400&end=1524654000',
|
||||
hideFromInspector: true,
|
||||
showErrorAlert: false,
|
||||
headers: {},
|
||||
});
|
||||
});
|
||||
@ -191,7 +201,11 @@ describe('PrometheusMetricFindQuery', () => {
|
||||
const query = setupMetricFindQuery({
|
||||
query: 'label_values(metric, resource)',
|
||||
response: {
|
||||
data: ['value1', 'value2'],
|
||||
data: [
|
||||
{ __name__: 'metric', resource: 'value1' },
|
||||
{ __name__: 'metric', resource: 'value2' },
|
||||
{ __name__: 'metric', resource: '' },
|
||||
],
|
||||
},
|
||||
});
|
||||
const results = await query.process(raw);
|
||||
@ -202,10 +216,11 @@ describe('PrometheusMetricFindQuery', () => {
|
||||
expect(fetchMock).toHaveBeenCalledTimes(1);
|
||||
expect(fetchMock).toHaveBeenCalledWith({
|
||||
method: 'GET',
|
||||
url: `/api/datasources/uid/ABCDEF/resources/api/v1/label/resource/values?match${encodeURIComponent(
|
||||
url: `/api/datasources/uid/ABCDEF/resources/api/v1/series?match${encodeURIComponent(
|
||||
'[]'
|
||||
)}=metric&start=${raw.from.unix()}&end=${raw.to.unix()}`,
|
||||
hideFromInspector: true,
|
||||
showErrorAlert: false,
|
||||
headers: {},
|
||||
});
|
||||
});
|
||||
|
@ -87,17 +87,23 @@ export class PrometheusMetricFindQuery {
|
||||
escapedLabel = escapeForUtf8Support(label);
|
||||
}
|
||||
|
||||
const url = `/api/v1/label/${escapedLabel}/values`;
|
||||
|
||||
if (!metric || this.datasource.hasLabelsMatchAPISupport()) {
|
||||
const url = `/api/v1/label/${escapedLabel}/values`;
|
||||
|
||||
return this.datasource.metadataRequest(url, params).then((result) => {
|
||||
return _map(result.data.data, (value) => {
|
||||
return { text: value };
|
||||
});
|
||||
});
|
||||
} else {
|
||||
const url = `/api/v1/series`;
|
||||
|
||||
return this.datasource.metadataRequest(url, params).then((result) => {
|
||||
const _labels = _map(result.data.data, (metric) => metric);
|
||||
const _labels = _map(result.data.data, (metric) => {
|
||||
return metric[label] || '';
|
||||
}).filter((label) => {
|
||||
return label !== '';
|
||||
});
|
||||
|
||||
return uniq(_labels).map((metric) => {
|
||||
return {
|
||||
|
Reference in New Issue
Block a user