mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Loki: Fix ad-hoc filter when used with parser (#38542)
* Fix ad hoc filter when used with parser * Update
This commit is contained in:
parent
2e772d41a7
commit
d1b6132302
@ -416,21 +416,11 @@ export class LokiDatasource extends DataSourceApi<LokiQuery, LokiOptions> {
|
|||||||
let expression = query.expr ?? '';
|
let expression = query.expr ?? '';
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case 'ADD_FILTER': {
|
case 'ADD_FILTER': {
|
||||||
// Temporary fix for log queries that use parser. We don't know which labels are parsed and which are actual labels.
|
expression = this.addLabelToQuery(expression, action.key, action.value, '=');
|
||||||
// If query has parser, we treat all labels as parsed and use | key="value" syntax (same in ADD_FILTER_OUT)
|
|
||||||
if (queryHasPipeParser(expression) && !isMetricsQuery(expression)) {
|
|
||||||
expression = addParsedLabelToQuery(expression, action.key, action.value, '=');
|
|
||||||
} else {
|
|
||||||
expression = addLabelToQuery(expression, action.key, action.value, undefined, true);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'ADD_FILTER_OUT': {
|
case 'ADD_FILTER_OUT': {
|
||||||
if (queryHasPipeParser(expression) && !isMetricsQuery(expression)) {
|
expression = this.addLabelToQuery(expression, action.key, action.value, '!=');
|
||||||
expression = addParsedLabelToQuery(expression, action.key, action.value, '!=');
|
|
||||||
} else {
|
|
||||||
expression = addLabelToQuery(expression, action.key, action.value, '!=', true);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@ -674,11 +664,21 @@ export class LokiDatasource extends DataSourceApi<LokiQuery, LokiOptions> {
|
|||||||
if (operator === '=~' || operator === '!~') {
|
if (operator === '=~' || operator === '!~') {
|
||||||
value = lokiRegularEscape(value);
|
value = lokiRegularEscape(value);
|
||||||
}
|
}
|
||||||
return addLabelToQuery(acc, key, value, operator);
|
|
||||||
|
return this.addLabelToQuery(acc, key, value, operator);
|
||||||
}, expr);
|
}, expr);
|
||||||
|
|
||||||
return expr;
|
return expr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addLabelToQuery(queryExpr: string, key: string, value: string | number, operator: string) {
|
||||||
|
if (queryHasPipeParser(queryExpr) && !isMetricsQuery(queryExpr)) {
|
||||||
|
// If query has parser, we treat all labels as parsed and use | key="value" syntax
|
||||||
|
return addParsedLabelToQuery(queryExpr, key, value, operator);
|
||||||
|
} else {
|
||||||
|
return addLabelToQuery(queryExpr, key, value, operator, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function renderTemplate(aliasPattern: string, aliasData: { [key: string]: string }) {
|
export function renderTemplate(aliasPattern: string, aliasData: { [key: string]: string }) {
|
||||||
|
Loading…
Reference in New Issue
Block a user