From 55e763b4cd8cdb9252602f3abc22a6a45d57fe20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Bedi?= Date: Wed, 7 Jul 2021 08:43:46 +0200 Subject: [PATCH] Prometheus: interpolate variable for step field (#36437) * Prometheus: interpolate variable for step * Add test for variable interpolation --- .../datasource/prometheus/datasource.test.ts | 17 +++++++++++++++++ .../plugins/datasource/prometheus/datasource.ts | 1 + 2 files changed, 18 insertions(+) diff --git a/public/app/plugins/datasource/prometheus/datasource.test.ts b/public/app/plugins/datasource/prometheus/datasource.test.ts index 45de4c866c1..9e71fe63408 100644 --- a/public/app/plugins/datasource/prometheus/datasource.test.ts +++ b/public/app/plugins/datasource/prometheus/datasource.test.ts @@ -553,6 +553,23 @@ describe('PrometheusDatasource', () => { }); }); + describe('interpolateVariablesInQueries', () => { + it('should call replace function 2 times', () => { + const query = { + expr: 'test{job="testjob"}', + format: 'time_series', + interval: '$Interval', + refId: 'A', + }; + const interval = '10m'; + templateSrvStub.replace.mockReturnValue(interval); + + const queries = ds.interpolateVariablesInQueries([query], { Interval: { text: interval, value: interval } }); + expect(templateSrvStub.replace).toBeCalledTimes(2); + expect(queries[0].interval).toBe(interval); + }); + }); + describe('metricFindQuery', () => { beforeEach(() => { const query = 'query_result(topk(5,rate(http_request_duration_microseconds_count[$__interval])))'; diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index db75f915398..0a5719b34fc 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -735,6 +735,7 @@ export class PrometheusDatasource extends DataSourceApi ...query, datasource: this.name, expr: this.templateSrv.replace(query.expr, scopedVars, this.interpolateQueryExpr), + interval: this.templateSrv.replace(query.interval, scopedVars), }; return expandedQuery; });