From bee8cedfae0fe6baf122812f748dfcaed8b527d0 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 22 Dec 2021 17:08:07 +0100 Subject: [PATCH] Prometheus: Fix interpolation of variables in Annotation queries (#43459) (#43467) (cherry picked from commit f63c2e4bc4a066cb84c8764a3ee99d63bfcdaef7) Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com> --- .../datasource/prometheus/datasource.test.ts | 25 +++++++++++++++++++ .../datasource/prometheus/datasource.ts | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/public/app/plugins/datasource/prometheus/datasource.test.ts b/public/app/plugins/datasource/prometheus/datasource.test.ts index 778bfadd18a..017b1563d68 100644 --- a/public/app/plugins/datasource/prometheus/datasource.test.ts +++ b/public/app/plugins/datasource/prometheus/datasource.test.ts @@ -1062,6 +1062,31 @@ describe('PrometheusDatasource', () => { expect(results.map((result) => [result.time, result.timeEnd])).toEqual([[120000, 120000]]); }); }); + describe('with template variables', () => { + const originalReplaceMock = jest.fn((a: string, ...rest: any) => a); + afterAll(() => { + templateSrvStub.replace = originalReplaceMock; + }); + + it('should interpolate variables in query expr', () => { + const query = { + ...options, + annotation: { + ...options.annotation, + expr: '$variable', + }, + range: { + from: time({ seconds: 1 }), + to: time({ seconds: 2 }), + }, + }; + const interpolated = 'interpolated_expr'; + templateSrvStub.replace.mockReturnValue(interpolated); + ds.annotationQuery(query); + const req = fetchMock.mock.calls[0][0]; + expect(req.data.queries[0].expr).toBe(interpolated); + }); + }); }); describe('When resultFormat is table and instant = true', () => { diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index d727b2378ca..974781893a0 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -674,7 +674,7 @@ export class PrometheusDatasource extends DataSourceWithBackend