Elasticsearch: Fix legend for alerting, expressions and previously frontend queries (#84485)

* Elasticsearch: Fix legend for alerting, expressions and previously frontend queries

* Add comment

* Update comment
This commit is contained in:
Ivana Huckova
2024-03-18 18:01:33 +01:00
committed by GitHub
parent 296f4219f8
commit 494d169980
6 changed files with 137 additions and 49 deletions
+90 -26
View File
@@ -330,7 +330,7 @@ func TestProcessLogsResponse(t *testing.T) {
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -417,7 +417,7 @@ func TestProcessLogsResponse(t *testing.T) {
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -525,7 +525,7 @@ func TestProcessRawDataResponse(t *testing.T) {
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -814,7 +814,7 @@ func TestProcessRawDocumentResponse(t *testing.T) {
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -995,7 +995,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -1097,7 +1097,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -1160,7 +1160,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -1233,7 +1233,7 @@ func TestProcessBuckets(t *testing.T) {
}]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
assert.Nil(t, err)
assert.Len(t, result.Responses, 1)
frames := result.Responses["A"].Frames
@@ -1464,7 +1464,7 @@ func TestProcessBuckets(t *testing.T) {
}
}]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
assert.Nil(t, err)
assert.Len(t, result.Responses, 1)
@@ -1551,7 +1551,7 @@ func TestProcessBuckets(t *testing.T) {
}]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
assert.Nil(t, err)
assert.Len(t, result.Responses, 1)
frames := result.Responses["A"].Frames
@@ -1749,7 +1749,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
queryRes := result.Responses["A"]
@@ -1775,6 +1775,70 @@ func TestProcessBuckets(t *testing.T) {
assert.Equal(t, frame.Name, "server2")
})
t.Run("Single group by query one metric with true keepLabelsInResponse", func(t *testing.T) {
targets := map[string]string{
"A": `{
"metrics": [{ "type": "count", "id": "1" }],
"bucketAggs": [
{ "type": "terms", "field": "host", "id": "2" },
{ "type": "date_histogram", "field": "@timestamp", "id": "3" }
]
}`,
}
response := `{
"responses": [
{
"aggregations": {
"2": {
"buckets": [
{
"3": {
"buckets": [{ "doc_count": 1, "key": 1000 }, { "doc_count": 3, "key": 2000 }]
},
"doc_count": 4,
"key": "server1"
},
{
"3": {
"buckets": [{ "doc_count": 2, "key": 1000 }, { "doc_count": 8, "key": 2000 }]
},
"doc_count": 10,
"key": "server2"
}
]
}
}
}
]
}`
result, err := parseTestResponse(targets, response, true)
require.NoError(t, err)
queryRes := result.Responses["A"]
require.NotNil(t, queryRes)
dataframes := queryRes.Frames
require.NoError(t, err)
require.Len(t, dataframes, 2)
frame := dataframes[0]
require.Len(t, frame.Fields, 2)
require.Equal(t, frame.Fields[0].Name, data.TimeSeriesTimeFieldName)
require.Equal(t, frame.Fields[0].Len(), 2)
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
require.Equal(t, frame.Fields[1].Len(), 2)
require.Equal(t, frame.Fields[1].Labels, data.Labels{"host": "server1"})
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server1")
frame = dataframes[1]
require.Len(t, frame.Fields, 2)
require.Equal(t, frame.Fields[0].Name, data.TimeSeriesTimeFieldName)
require.Equal(t, frame.Fields[0].Len(), 2)
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
require.Equal(t, frame.Fields[1].Len(), 2)
require.Equal(t, frame.Fields[1].Labels, data.Labels{"host": "server2"})
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server2")
})
t.Run("Single group by query two metrics", func(t *testing.T) {
targets := map[string]string{
"A": `{
@@ -1817,7 +1881,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -1969,7 +2033,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -2142,7 +2206,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -2274,7 +2338,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -2322,7 +2386,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -2384,7 +2448,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -2506,7 +2570,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -2609,7 +2673,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -2659,7 +2723,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -2721,7 +2785,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -2789,7 +2853,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -2853,7 +2917,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -2907,7 +2971,7 @@ func TestProcessBuckets(t *testing.T) {
}
]
}`
result, err := parseTestResponse(targets, response)
result, err := parseTestResponse(targets, response, false)
require.NoError(t, err)
require.Len(t, result.Responses, 1)
@@ -3583,7 +3647,7 @@ func TestTrimEdges(t *testing.T) {
requireFrameLength(t, frames[0], 1)
}
func parseTestResponse(tsdbQueries map[string]string, responseBody string) (*backend.QueryDataResponse, error) {
func parseTestResponse(tsdbQueries map[string]string, responseBody string, keepLabelsInResponse bool) (*backend.QueryDataResponse, error) {
from := time.Date(2018, 5, 15, 17, 50, 0, 0, time.UTC)
to := time.Date(2018, 5, 15, 17, 55, 0, 0, time.UTC)
configuredFields := es.ConfiguredFields{
@@ -3618,7 +3682,7 @@ func parseTestResponse(tsdbQueries map[string]string, responseBody string) (*bac
return nil, err
}
return parseResponse(context.Background(), response.Responses, queries, configuredFields, log.New("test.logger"), tracing.InitializeTracerForTest())
return parseResponse(context.Background(), response.Responses, queries, configuredFields, keepLabelsInResponse, log.New("test.logger"), tracing.InitializeTracerForTest())
}
func requireTimeValue(t *testing.T, expected int64, frame *data.Frame, index int) {