From 649fa6789ed6490f6c9d218c4dafd5a0069fbe07 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 30 Dec 2019 18:03:35 +0100 Subject: [PATCH] Prometheus: Fix term completion that contain keywords (#21295) - `unless`, `or` and `and` are binary operators - if they appear in a query the query was broken up so the suggestor only works on the current term - this change fixes the splitter logic to make sure those keywords are not inside a word --- .../app/plugins/datasource/prometheus/language_provider.test.ts | 1 + public/app/plugins/datasource/prometheus/language_provider.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/public/app/plugins/datasource/prometheus/language_provider.test.ts b/public/app/plugins/datasource/prometheus/language_provider.test.ts index 43c4ce543ac..30b3943ff5f 100644 --- a/public/app/plugins/datasource/prometheus/language_provider.test.ts +++ b/public/app/plugins/datasource/prometheus/language_provider.test.ts @@ -49,6 +49,7 @@ describe('Language completion provider', () => { expect(cleanText('foo < bar')).toBe('bar'); expect(cleanText('foo >= bar')).toBe('bar'); expect(cleanText('foo <= bar')).toBe('bar'); + expect(cleanText('memory')).toBe('memory'); }); it('removes aggregation syntax', () => { diff --git a/public/app/plugins/datasource/prometheus/language_provider.ts b/public/app/plugins/datasource/prometheus/language_provider.ts index 28e0761e416..89c614c9790 100644 --- a/public/app/plugins/datasource/prometheus/language_provider.ts +++ b/public/app/plugins/datasource/prometheus/language_provider.ts @@ -51,7 +51,7 @@ function addMetricsMetadata(metric: string, metadata?: PromMetricsMetadata): Com return item; } -const PREFIX_DELIMITER_REGEX = /(="|!="|=~"|!~"|\{|\[|\(|\+|-|\/|\*|%|\^|and|or|unless|==|>=|!=|<=|>|<|=|~|,)/; +const PREFIX_DELIMITER_REGEX = /(="|!="|=~"|!~"|\{|\[|\(|\+|-|\/|\*|%|\^|\band\b|\bor\b|\bunless\b|==|>=|!=|<=|>|<|=|~|,)/; export default class PromQlLanguageProvider extends LanguageProvider { histogramMetrics?: string[];