From 12c4098bcdb0838691dddcab19d52b7cc80e97f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Farkas?= Date: Wed, 4 Jan 2023 15:26:57 +0100 Subject: [PATCH] elastic: backend: handle naming bucket_scripts (#60460) --- pkg/tsdb/elasticsearch/response_parser.go | 22 ++++++++++--------- .../response_parser_frontend_test.go | 2 +- .../elasticsearch/response_parser_test.go | 3 --- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/pkg/tsdb/elasticsearch/response_parser.go b/pkg/tsdb/elasticsearch/response_parser.go index 55f581a08a5..15d1485d560 100644 --- a/pkg/tsdb/elasticsearch/response_parser.go +++ b/pkg/tsdb/elasticsearch/response_parser.go @@ -592,8 +592,8 @@ func getFieldName(dataField data.Field, target *Query, metricTypeCount int) stri return frameName } // todo, if field and pipelineAgg - if field != "" && isPipelineAgg(metricType) { - if isPipelineAggWithMultipleBucketPaths(metricType) { + if isPipelineAgg(metricType) { + if metricType != "" && isPipelineAggWithMultipleBucketPaths(metricType) { metricID := "" if v, ok := dataField.Labels["metricId"]; ok { metricID = v @@ -612,15 +612,17 @@ func getFieldName(dataField data.Field, target *Query, metricTypeCount int) stri } } } else { - found := false - for _, metric := range target.Metrics { - if metric.ID == field { - metricName += " " + describeMetric(metric.Type, field) - found = true + if field != "" { + found := false + for _, metric := range target.Metrics { + if metric.ID == field { + metricName += " " + describeMetric(metric.Type, field) + found = true + } + } + if !found { + metricName = "Unset" } - } - if !found { - metricName = "Unset" } } } else if field != "" { diff --git a/pkg/tsdb/elasticsearch/response_parser_frontend_test.go b/pkg/tsdb/elasticsearch/response_parser_frontend_test.go index 0bdbb1a651f..dd09e926dab 100644 --- a/pkg/tsdb/elasticsearch/response_parser_frontend_test.go +++ b/pkg/tsdb/elasticsearch/response_parser_frontend_test.go @@ -1281,7 +1281,7 @@ func TestBucketScript(t *testing.T) { requireFrameLength(t, frames[0], 2) requireTimeSeriesName(t, "Sum @value", frames[0]) requireTimeSeriesName(t, "Max @value", frames[1]) - // requireTimeSeriesName(t, "Sum @value * Max @value", frames[2]) // FIXME + requireTimeSeriesName(t, "Sum @value * Max @value", frames[2]) requireNumberValue(t, 2, frames[0], 0) requireNumberValue(t, 3, frames[1], 0) diff --git a/pkg/tsdb/elasticsearch/response_parser_test.go b/pkg/tsdb/elasticsearch/response_parser_test.go index e8b47973a57..eeb887dc0bf 100644 --- a/pkg/tsdb/elasticsearch/response_parser_test.go +++ b/pkg/tsdb/elasticsearch/response_parser_test.go @@ -912,7 +912,6 @@ func TestResponseParser(t *testing.T) { { "id": "3", "type": "max", "field": "@value" }, { "id": "4", - "field": "select field", "pipelineVariables": [{ "name": "var1", "pipelineAgg": "1" }, { "name": "var2", "pipelineAgg": "3" }], "settings": { "script": "params.var1 * params.var2" }, "type": "bucket_script" @@ -991,14 +990,12 @@ func TestResponseParser(t *testing.T) { { "id": "3", "type": "max", "field": "@value" }, { "id": "4", - "field": "select field", "pipelineVariables": [{ "name": "var1", "pipelineAgg": "1" }, { "name": "var2", "pipelineAgg": "3" }], "settings": { "script": "params.var1 * params.var2" }, "type": "bucket_script" }, { "id": "5", - "field": "select field", "pipelineVariables": [{ "name": "var1", "pipelineAgg": "1" }, { "name": "var2", "pipelineAgg": "3" }], "settings": { "script": "params.var1 * params.var2 * 2" }, "type": "bucket_script"