From 493d43449cfb8a18f99511c0ce372e984f5ece5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Farkas?= Date: Fri, 3 Jun 2022 11:15:12 +0200 Subject: [PATCH] loki: handle ad hoc filters in backend mode (#50135) (#50145) (cherry picked from commit 6011c373aeb641a96ac162e0f0071d8e030a8f26) --- public/app/plugins/datasource/loki/datasource.test.ts | 9 +++++++++ public/app/plugins/datasource/loki/datasource.ts | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/public/app/plugins/datasource/loki/datasource.test.ts b/public/app/plugins/datasource/loki/datasource.test.ts index 515e773d9e2..785f3b7b9c2 100644 --- a/public/app/plugins/datasource/loki/datasource.test.ts +++ b/public/app/plugins/datasource/loki/datasource.test.ts @@ -1058,6 +1058,15 @@ describe('isMetricsQuery', () => { }); }); +describe('applyTemplateVariables', () => { + it('should add the adhoc filter to the query', () => { + const ds = createLokiDSForTests(); + const spy = jest.spyOn(ds, 'addAdHocFilters'); + ds.applyTemplateVariables({ expr: '{test}', refId: 'A' }, {}); + expect(spy).toHaveBeenCalledWith('{test}'); + }); +}); + function assertAdHocFilters(query: string, expectedResults: string, ds: LokiDatasource) { const lokiQuery: LokiQuery = { refId: 'A', expr: query }; const result = ds.addAdHocFilters(lokiQuery.expr); diff --git a/public/app/plugins/datasource/loki/datasource.ts b/public/app/plugins/datasource/loki/datasource.ts index f051816185e..f72a4b6ed73 100644 --- a/public/app/plugins/datasource/loki/datasource.ts +++ b/public/app/plugins/datasource/loki/datasource.ts @@ -889,10 +889,12 @@ export class LokiDatasource // We want to interpolate these variables on backend const { __interval, __interval_ms, ...rest } = scopedVars; + const exprWithAdHoc = this.addAdHocFilters(target.expr); + return { ...target, legendFormat: this.templateSrv.replace(target.legendFormat, rest), - expr: this.templateSrv.replace(target.expr, rest, this.interpolateQueryExpr), + expr: this.templateSrv.replace(exprWithAdHoc, rest, this.interpolateQueryExpr), }; }