* Fix ad hoc filter when used with parser
* Update
(cherry picked from commit d1b6132302)
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
This commit is contained in:
co-authored by
Ivana Huckova
parent
bcb405e40c
commit
c65399eaad
@@ -412,21 +412,11 @@ export class LokiDatasource extends DataSourceApi<LokiQuery, LokiOptions> {
|
||||
let expression = query.expr ?? '';
|
||||
switch (action.type) {
|
||||
case 'ADD_FILTER': {
|
||||
// Temporary fix for log queries that use parser. We don't know which labels are parsed and which are actual labels.
|
||||
// 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);
|
||||
}
|
||||
expression = this.addLabelToQuery(expression, action.key, action.value, '=');
|
||||
break;
|
||||
}
|
||||
case 'ADD_FILTER_OUT': {
|
||||
if (queryHasPipeParser(expression) && !isMetricsQuery(expression)) {
|
||||
expression = addParsedLabelToQuery(expression, action.key, action.value, '!=');
|
||||
} else {
|
||||
expression = addLabelToQuery(expression, action.key, action.value, '!=', true);
|
||||
}
|
||||
expression = this.addLabelToQuery(expression, action.key, action.value, '!=');
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -654,11 +644,21 @@ export class LokiDatasource extends DataSourceApi<LokiQuery, LokiOptions> {
|
||||
if (operator === '=~' || operator === '!~') {
|
||||
value = lokiRegularEscape(value);
|
||||
}
|
||||
return addLabelToQuery(acc, key, value, operator);
|
||||
|
||||
return this.addLabelToQuery(acc, key, value, operator);
|
||||
}, 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 }) {
|
||||
|
||||
Reference in New Issue
Block a user