Skip to content

Commit 978e896

Browse files
committed
Explore: Fix label filtering for rate queries
- exclude `]` from match expression for selector injection to ignore range vectors like `[10m]`
1 parent bdd9af0 commit 978e896

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

public/app/plugins/datasource/prometheus/datasource.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export function addLabelToQuery(query: string, key: string, value: string): stri
3939

4040
// Add empty selector to bare metric name
4141
let previousWord;
42-
query = query.replace(/(\w+)\b(?![\({=",])/g, (match, word, offset) => {
42+
query = query.replace(/(\w+)\b(?![\(\]{=",])/g, (match, word, offset) => {
4343
// Check if inside a selector
4444
const nextSelectorStart = query.slice(offset).indexOf('{');
4545
const nextSelectorEnd = query.slice(offset).indexOf('}');

public/app/plugins/datasource/prometheus/specs/datasource.jest.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@ describe('PrometheusDatasource', () => {
351351
expect(addLabelToQuery('foo{instance="my-host.com:9100"}', 'bar', 'baz')).toBe(
352352
'foo{bar="baz",instance="my-host.com:9100"}'
353353
);
354+
expect(addLabelToQuery('rate(metric[1m])', 'foo', 'bar')).toBe('rate(metric{foo="bar"}[1m])');
354355
});
355356
});
356357

0 commit comments

Comments
 (0)