diff --git a/public/app/plugins/datasource/loki/datasource.ts b/public/app/plugins/datasource/loki/datasource.ts index cdfdac0a421..6cbb6c39b3a 100644 --- a/public/app/plugins/datasource/loki/datasource.ts +++ b/public/app/plugins/datasource/loki/datasource.ts @@ -439,13 +439,13 @@ export class LokiDatasource extends DataSourceApi { case 'ADD_FILTER': { selectorLabels = addLabelToSelector(selector, action.key, action.value); selectorFilters = keepSelectorFilters(selector); - selector = `${selectorLabels} ${selectorFilters}`; + selector = `${selectorLabels} ${selectorFilters}`.trim(); break; } case 'ADD_FILTER_OUT': { selectorLabels = addLabelToSelector(selector, action.key, action.value, '!='); selectorFilters = keepSelectorFilters(selector); - selector = `${selectorLabels} ${selectorFilters}`; + selector = `${selectorLabels} ${selectorFilters}`.trim(); break; } default: diff --git a/public/app/plugins/datasource/loki/query_utils.test.ts b/public/app/plugins/datasource/loki/query_utils.test.ts index fc23ca2eef3..c10d57a349b 100644 --- a/public/app/plugins/datasource/loki/query_utils.test.ts +++ b/public/app/plugins/datasource/loki/query_utils.test.ts @@ -26,14 +26,14 @@ describe('parseQuery', () => { it('returns query for strings with query and search string', () => { expect(parseQuery('x {foo="bar"}')).toEqual({ query: '{foo="bar"}', - regexp: '(?i)x', + regexp: 'x', } as LokiExpression); }); it('returns query for strings with query and regexp', () => { expect(parseQuery('{foo="bar"} x|y')).toEqual({ query: '{foo="bar"}', - regexp: '(?i)x|y', + regexp: 'x|y', } as LokiExpression); }); @@ -47,11 +47,11 @@ describe('parseQuery', () => { it('returns query and regexp with quantifiers', () => { expect(parseQuery('{foo="bar"} \\.java:[0-9]{1,5}')).toEqual({ query: '{foo="bar"}', - regexp: '(?i)\\.java:[0-9]{1,5}', + regexp: '\\.java:[0-9]{1,5}', } as LokiExpression); expect(parseQuery('\\.java:[0-9]{1,5} {foo="bar"}')).toEqual({ query: '{foo="bar"}', - regexp: '(?i)\\.java:[0-9]{1,5}', + regexp: '\\.java:[0-9]{1,5}', } as LokiExpression); }); @@ -73,8 +73,8 @@ describe('getHighlighterExpressionsFromQuery', () => { }); it('returns a single expressions for legacy query', () => { - expect(getHighlighterExpressionsFromQuery('{} x')).toEqual(['(?i)x']); - expect(getHighlighterExpressionsFromQuery('{foo="bar"} x')).toEqual(['(?i)x']); + expect(getHighlighterExpressionsFromQuery('{} x')).toEqual(['x']); + expect(getHighlighterExpressionsFromQuery('{foo="bar"} x')).toEqual(['x']); }); it('returns an expression for query with filter', () => { diff --git a/public/app/plugins/datasource/loki/query_utils.ts b/public/app/plugins/datasource/loki/query_utils.ts index b4f6e31f358..7fe32d6395e 100644 --- a/public/app/plugins/datasource/loki/query_utils.ts +++ b/public/app/plugins/datasource/loki/query_utils.ts @@ -1,7 +1,6 @@ import { LokiExpression } from './types'; const selectorRegexp = /(?:^|\s){[^{]*}/g; -const caseInsensitive = '(?i)'; // Golang mode modifier for Loki, doesn't work in JavaScript export function parseQuery(input: string): LokiExpression { input = input || ''; const match = input.match(selectorRegexp); @@ -9,13 +8,11 @@ export function parseQuery(input: string): LokiExpression { let regexp = ''; if (match) { + // Regexp result is ignored on the server side regexp = input.replace(selectorRegexp, '').trim(); // Keep old-style regexp, otherwise take whole query if (regexp && regexp.search(/\|=|\|~|!=|!~/) === -1) { query = match[0].trim(); - if (!regexp.startsWith(caseInsensitive)) { - regexp = `${caseInsensitive}${regexp}`; - } } else { regexp = ''; }