From 0a2a370b77a42dce41b1af1d7b6f158d7a9c6f56 Mon Sep 17 00:00:00 2001 From: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com> Date: Mon, 11 Jul 2022 14:24:49 +0200 Subject: [PATCH] Loki: Fix suggesting operations from different category (#52034) --- .../datasource/loki/querybuilder/operations.ts | 3 +++ .../shared/LokiAndPromQueryModellerBase.ts | 12 ++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/public/app/plugins/datasource/loki/querybuilder/operations.ts b/public/app/plugins/datasource/loki/querybuilder/operations.ts index 63e347b4751..e2483642b61 100644 --- a/public/app/plugins/datasource/loki/querybuilder/operations.ts +++ b/public/app/plugins/datasource/loki/querybuilder/operations.ts @@ -288,6 +288,7 @@ export function getOperationDefinitions(): QueryBuilderOperationDef[] { { name: 'Value', type: 'string' }, ], defaultParams: ['', '=', ''], + alternativesKey: 'label filter', category: LokiVisualQueryOperationCategory.LabelFilters, orderRank: LokiOperationOrder.LabelFilters, renderer: labelFilterRenderer, @@ -299,6 +300,7 @@ export function getOperationDefinitions(): QueryBuilderOperationDef[] { name: 'No pipeline errors', params: [], defaultParams: [], + alternativesKey: 'label filter', category: LokiVisualQueryOperationCategory.LabelFilters, orderRank: LokiOperationOrder.NoErrors, renderer: (model, def, innerExpr) => `${innerExpr} | __error__=\`\``, @@ -310,6 +312,7 @@ export function getOperationDefinitions(): QueryBuilderOperationDef[] { name: 'Unwrap', params: [{ name: 'Identifier', type: 'string', hideName: true, minWidth: 16, placeholder: 'Label key' }], defaultParams: [''], + alternativesKey: 'format', category: LokiVisualQueryOperationCategory.Formats, orderRank: LokiOperationOrder.Unwrap, renderer: (op, def, innerExpr) => `${innerExpr} | unwrap ${op.params[0]}`, diff --git a/public/app/plugins/datasource/prometheus/querybuilder/shared/LokiAndPromQueryModellerBase.ts b/public/app/plugins/datasource/prometheus/querybuilder/shared/LokiAndPromQueryModellerBase.ts index 98e929e831e..81afc5a2762 100644 --- a/public/app/plugins/datasource/prometheus/querybuilder/shared/LokiAndPromQueryModellerBase.ts +++ b/public/app/plugins/datasource/prometheus/querybuilder/shared/LokiAndPromQueryModellerBase.ts @@ -19,11 +19,11 @@ export interface PromLokiVisualQuery { } export abstract class LokiAndPromQueryModellerBase implements VisualQueryModeller { - protected operationsRegisty: Registry; + protected operationsRegistry: Registry; private categories: string[] = []; constructor(getOperations: () => QueryBuilderOperationDef[]) { - this.operationsRegisty = new Registry(getOperations); + this.operationsRegistry = new Registry(getOperations); } protected setOperationCategories(categories: string[]) { @@ -31,11 +31,11 @@ export abstract class LokiAndPromQueryModellerBase implements VisualQueryModelle } getOperationsForCategory(category: string) { - return this.operationsRegisty.list().filter((op) => op.category === category && !op.hideFromList); + return this.operationsRegistry.list().filter((op) => op.category === category && !op.hideFromList); } getAlternativeOperations(key: string) { - return this.operationsRegisty.list().filter((op) => op.alternativesKey === key); + return this.operationsRegistry.list().filter((op) => op.alternativesKey && op.alternativesKey === key); } getCategories() { @@ -43,12 +43,12 @@ export abstract class LokiAndPromQueryModellerBase implements VisualQueryModelle } getOperationDef(id: string): QueryBuilderOperationDef | undefined { - return this.operationsRegisty.getIfExists(id); + return this.operationsRegistry.getIfExists(id); } renderOperations(queryString: string, operations: QueryBuilderOperation[]) { for (const operation of operations) { - const def = this.operationsRegisty.getIfExists(operation.id); + const def = this.operationsRegistry.getIfExists(operation.id); if (!def) { throw new Error(`Could not find operation ${operation.id} in the registry`); }