From ad337344243517774d529bfb69c86b957d73365e Mon Sep 17 00:00:00 2001 From: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com> Date: Mon, 10 Aug 2020 15:36:15 +0200 Subject: [PATCH] Prometheus: Correctly format multi values variables in queries (#26896) --- public/app/plugins/datasource/prometheus/datasource.test.ts | 4 ++-- public/app/plugins/datasource/prometheus/datasource.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/public/app/plugins/datasource/prometheus/datasource.test.ts b/public/app/plugins/datasource/prometheus/datasource.test.ts index ad63d1fd066..86b540717ef 100644 --- a/public/app/plugins/datasource/prometheus/datasource.test.ts +++ b/public/app/plugins/datasource/prometheus/datasource.test.ts @@ -500,7 +500,7 @@ describe('PrometheusDatasource', () => { }); it('should return pipe separated values if the value is an array of strings', () => { - expect(ds.interpolateQueryExpr(['a|bc', 'de|f'], customVariable)).toEqual('a\\\\|bc|de\\\\|f'); + expect(ds.interpolateQueryExpr(['a|bc', 'de|f'], customVariable)).toEqual('(a\\\\|bc|de\\\\|f)'); }); }); @@ -514,7 +514,7 @@ describe('PrometheusDatasource', () => { }); it('should return pipe separated values if the value is an array of strings', () => { - expect(ds.interpolateQueryExpr(['a|bc', 'de|f'], customVariable)).toEqual('a\\\\|bc|de\\\\|f'); + expect(ds.interpolateQueryExpr(['a|bc', 'de|f'], customVariable)).toEqual('(a\\\\|bc|de\\\\|f)'); }); }); }); diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index 041c4690a22..96606b510bb 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -159,7 +159,7 @@ export class PrometheusDatasource extends DataSourceApi } const escapedValues = value.map(val => prometheusSpecialRegexEscape(val)); - return escapedValues.join('|'); + return '(' + escapedValues.join('|') + ')'; } targetContainsTemplate(target: PromQuery) {