From e39a131110aa5939adec844f7214d454f768977b Mon Sep 17 00:00:00 2001 From: Brendan O'Handley Date: Thu, 1 Aug 2024 08:58:12 -0500 Subject: [PATCH] Prometheus: Add group function to aggregations (#91363) add group function to aggregations --- .../src/querybuilder/aggregations.ts | 1 + .../src/querybuilder/operations.ts | 1 - .../src/querybuilder/parsing.test.ts | 15 +++++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/grafana-prometheus/src/querybuilder/aggregations.ts b/packages/grafana-prometheus/src/querybuilder/aggregations.ts index 8fff6505173..2eaa1f92074 100644 --- a/packages/grafana-prometheus/src/querybuilder/aggregations.ts +++ b/packages/grafana-prometheus/src/querybuilder/aggregations.ts @@ -16,6 +16,7 @@ export function getAggregationOperations(): QueryBuilderOperationDef[] { ...createAggregationOperation(PromOperationId.Min), ...createAggregationOperation(PromOperationId.Max), ...createAggregationOperation(PromOperationId.Count), + ...createAggregationOperation(PromOperationId.Group), ...createAggregationOperationWithParam(PromOperationId.TopK, { params: [{ name: 'K-value', type: 'number' }], defaultParams: [5], diff --git a/packages/grafana-prometheus/src/querybuilder/operations.ts b/packages/grafana-prometheus/src/querybuilder/operations.ts index afd77331239..dfa93a3c970 100644 --- a/packages/grafana-prometheus/src/querybuilder/operations.ts +++ b/packages/grafana-prometheus/src/querybuilder/operations.ts @@ -195,7 +195,6 @@ export function getOperationDefinitions(): QueryBuilderOperationDef[] { // createFunction({ id: PromOperationId.Exp }), createFunction({ id: PromOperationId.Floor }), - createFunction({ id: PromOperationId.Group }), createFunction({ id: PromOperationId.Hour }), createFunction({ id: PromOperationId.LabelJoin, diff --git a/packages/grafana-prometheus/src/querybuilder/parsing.test.ts b/packages/grafana-prometheus/src/querybuilder/parsing.test.ts index a41be98ada3..406f9fd8871 100644 --- a/packages/grafana-prometheus/src/querybuilder/parsing.test.ts +++ b/packages/grafana-prometheus/src/querybuilder/parsing.test.ts @@ -783,6 +783,21 @@ describe('buildVisualQueryFromString', () => { }) ); }); + + it('parses the group function as an aggregation', () => { + expect(buildVisualQueryFromString('group by (job) (go_goroutines)')).toEqual( + noErrors({ + metric: 'go_goroutines', + labels: [], + operations: [ + { + id: '__group_by', + params: ['job'], + }, + ], + }) + ); + }); }); function noErrors(query: PromVisualQuery) {