From 0caeaaafe3c37230b3e2b477a317d2416aaf57b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Farkas?= Date: Sat, 21 May 2022 16:46:39 +0200 Subject: [PATCH] loki: add back frontend-mode metadata queries (#49297) --- public/app/plugins/datasource/loki/datasource.test.ts | 6 ++---- public/app/plugins/datasource/loki/datasource.ts | 11 +++++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/public/app/plugins/datasource/loki/datasource.test.ts b/public/app/plugins/datasource/loki/datasource.test.ts index c792e24a564..1919f610ee2 100644 --- a/public/app/plugins/datasource/loki/datasource.test.ts +++ b/public/app/plugins/datasource/loki/datasource.test.ts @@ -1002,7 +1002,7 @@ describe('LokiDatasource', () => { describe('importing queries', () => { it('keeps all labels when no labels are loaded', async () => { const ds = createLokiDSForTests(); - ds.getResource = () => Promise.resolve({ data: [] }); + fetchMock.mockImplementation(() => of(createFetchResponse({ data: [] }))); const queries = await ds.importFromAbstractQueries([ { refId: 'A', @@ -1017,9 +1017,7 @@ describe('LokiDatasource', () => { it('filters out non existing labels', async () => { const ds = createLokiDSForTests(); - ds.getResource = () => { - return Promise.resolve({ data: ['foo'] }); - }; + fetchMock.mockImplementation(() => of(createFetchResponse({ data: ['foo'] }))); const queries = await ds.importFromAbstractQueries([ { refId: 'A', diff --git a/public/app/plugins/datasource/loki/datasource.ts b/public/app/plugins/datasource/loki/datasource.ts index ded5e3619dc..828b3be499b 100644 --- a/public/app/plugins/datasource/loki/datasource.ts +++ b/public/app/plugins/datasource/loki/datasource.ts @@ -467,8 +467,15 @@ export class LokiDatasource if (url.startsWith('/')) { throw new Error(`invalid metadata request url: ${url}`); } - const res = await this.getResource(url, params); - return res.data || []; + + if (this.useBackendMode) { + const res = await this.getResource(url, params); + return res.data || []; + } else { + const lokiURL = `${LOKI_ENDPOINT}/${url}`; + const res = await lastValueFrom(this._request(lokiURL, params, { hideFromInspector: true })); + return res.data.data || []; + } } async metricFindQuery(query: string) {