Elasticsearch: Fix creating of legend so it is backward compatible with frontend produced frames (#81708)
* Elasticsearch: Fix creating of legend so it is backward compatible with frontend produced frames * Update tests
This commit is contained in:
@@ -907,10 +907,10 @@ func nameFields(queryResult backend.DataResponse, target *Query) {
|
||||
// another is "number"
|
||||
valueField := frame.Fields[1]
|
||||
fieldName := getFieldName(*valueField, target, metricTypeCount)
|
||||
if valueField.Config == nil {
|
||||
valueField.Config = &data.FieldConfig{}
|
||||
}
|
||||
valueField.Config.DisplayNameFromDS = fieldName
|
||||
// We need to remove labels so they are not added to legend as duplicates
|
||||
// ensures backward compatibility with "frontend" version of the plugin
|
||||
valueField.Labels = nil
|
||||
frame.Name = fieldName
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1011,7 +1011,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "p75")
|
||||
assert.Equal(t, frame.Name, "p75")
|
||||
|
||||
frame = dataframes[1]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -1019,7 +1019,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "p90")
|
||||
assert.Equal(t, frame.Name, "p90")
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1478,7 +1478,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
assert.Len(t, frame.Fields, 2)
|
||||
require.Equal(t, frame.Fields[0].Len(), 2)
|
||||
require.Equal(t, frame.Fields[1].Len(), 2)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Top Metrics @value")
|
||||
assert.Equal(t, frame.Name, "Top Metrics @value")
|
||||
v, _ := frame.FloatAt(0, 0)
|
||||
assert.Equal(t, 1609459200000., v)
|
||||
v, _ = frame.FloatAt(1, 0)
|
||||
@@ -1495,7 +1495,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
assert.Len(t, frame.Fields, 2)
|
||||
require.Equal(t, frame.Fields[0].Len(), 2)
|
||||
require.Equal(t, frame.Fields[1].Len(), 2)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Top Metrics @anotherValue")
|
||||
assert.Equal(t, frame.Name, "Top Metrics @anotherValue")
|
||||
v, _ = frame.FloatAt(0, 0)
|
||||
assert.Equal(t, 1609459200000., v)
|
||||
v, _ = frame.FloatAt(1, 0)
|
||||
@@ -1764,7 +1764,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server1")
|
||||
assert.Equal(t, frame.Name, "server1")
|
||||
|
||||
frame = dataframes[1]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -1772,7 +1772,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server2")
|
||||
assert.Equal(t, frame.Name, "server2")
|
||||
})
|
||||
|
||||
t.Run("Single group by query two metrics", func(t *testing.T) {
|
||||
@@ -1833,7 +1833,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server1 Count")
|
||||
assert.Equal(t, frame.Name, "server1 Count")
|
||||
|
||||
frame = dataframes[1]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -1841,7 +1841,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server1 Average @value")
|
||||
assert.Equal(t, frame.Name, "server1 Average @value")
|
||||
|
||||
frame = dataframes[2]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -1849,7 +1849,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server2 Count")
|
||||
assert.Equal(t, frame.Name, "server2 Count")
|
||||
|
||||
frame = dataframes[3]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -1857,7 +1857,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server2 Average @value")
|
||||
assert.Equal(t, frame.Name, "server2 Average @value")
|
||||
})
|
||||
|
||||
t.Run("Simple group by 2 metrics 4 frames", func(t *testing.T) {
|
||||
@@ -1985,7 +1985,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server1 Count and {{not_exist}} server1")
|
||||
assert.Equal(t, frame.Name, "server1 Count and {{not_exist}} server1")
|
||||
|
||||
frame = dataframes[1]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -1993,7 +1993,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server2 Count and {{not_exist}} server2")
|
||||
assert.Equal(t, frame.Name, "server2 Count and {{not_exist}} server2")
|
||||
|
||||
frame = dataframes[2]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2001,7 +2001,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "0 Count and {{not_exist}} 0")
|
||||
assert.Equal(t, frame.Name, "0 Count and {{not_exist}} 0")
|
||||
})
|
||||
})
|
||||
|
||||
@@ -2158,7 +2158,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
require.Equal(t, frame.Fields[0].Len(), 1)
|
||||
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
|
||||
require.Equal(t, frame.Fields[1].Len(), 1)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server1 Max")
|
||||
assert.Equal(t, frame.Name, "server1 Max")
|
||||
|
||||
frame = dataframes[1]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2166,7 +2166,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
require.Equal(t, frame.Fields[0].Len(), 1)
|
||||
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
|
||||
require.Equal(t, frame.Fields[1].Len(), 1)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server1 Std Dev Lower")
|
||||
assert.Equal(t, frame.Name, "server1 Std Dev Lower")
|
||||
|
||||
frame = dataframes[2]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2174,7 +2174,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
require.Equal(t, frame.Fields[0].Len(), 1)
|
||||
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
|
||||
require.Equal(t, frame.Fields[1].Len(), 1)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server1 Std Dev Upper")
|
||||
assert.Equal(t, frame.Name, "server1 Std Dev Upper")
|
||||
|
||||
frame = dataframes[3]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2182,7 +2182,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
require.Equal(t, frame.Fields[0].Len(), 1)
|
||||
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
|
||||
require.Equal(t, frame.Fields[1].Len(), 1)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server2 Max")
|
||||
assert.Equal(t, frame.Name, "server2 Max")
|
||||
|
||||
frame = dataframes[4]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2190,7 +2190,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
require.Equal(t, frame.Fields[0].Len(), 1)
|
||||
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
|
||||
require.Equal(t, frame.Fields[1].Len(), 1)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server2 Std Dev Lower")
|
||||
assert.Equal(t, frame.Name, "server2 Std Dev Lower")
|
||||
|
||||
frame = dataframes[5]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2198,7 +2198,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
require.Equal(t, frame.Fields[0].Len(), 1)
|
||||
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
|
||||
require.Equal(t, frame.Fields[1].Len(), 1)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "server2 Std Dev Upper")
|
||||
assert.Equal(t, frame.Name, "server2 Std Dev Upper")
|
||||
})
|
||||
})
|
||||
|
||||
@@ -2290,7 +2290,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Count")
|
||||
assert.Equal(t, frame.Name, "Count")
|
||||
})
|
||||
|
||||
t.Run("Simple query count & avg aggregation", func(t *testing.T) {
|
||||
@@ -2339,7 +2339,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Count")
|
||||
assert.Equal(t, frame.Name, "Count")
|
||||
|
||||
frame = dataframes[1]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2348,7 +2348,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Average value")
|
||||
assert.Equal(t, frame.Name, "Average value")
|
||||
})
|
||||
})
|
||||
|
||||
@@ -2522,7 +2522,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "@metric:cpu")
|
||||
assert.Equal(t, frame.Name, "@metric:cpu")
|
||||
|
||||
frame = dataframes[1]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2530,7 +2530,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "@metric:logins.count")
|
||||
assert.Equal(t, frame.Name, "@metric:logins.count")
|
||||
})
|
||||
})
|
||||
|
||||
@@ -2737,7 +2737,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
require.Equal(t, frame.Fields[0].Len(), 1)
|
||||
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
|
||||
require.Equal(t, frame.Fields[1].Len(), 1)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Average")
|
||||
assert.Equal(t, frame.Name, "Average")
|
||||
|
||||
frame = dataframes[1]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2745,7 +2745,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
require.Equal(t, frame.Fields[0].Len(), 1)
|
||||
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
|
||||
require.Equal(t, frame.Fields[1].Len(), 1)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Count")
|
||||
assert.Equal(t, frame.Name, "Count")
|
||||
})
|
||||
|
||||
t.Run("With drop first and last aggregation (string)", func(t *testing.T) {
|
||||
@@ -2805,7 +2805,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
require.Equal(t, frame.Fields[0].Len(), 1)
|
||||
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
|
||||
require.Equal(t, frame.Fields[1].Len(), 1)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Average")
|
||||
assert.Equal(t, frame.Name, "Average")
|
||||
|
||||
frame = dataframes[1]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2813,7 +2813,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
require.Equal(t, frame.Fields[0].Len(), 1)
|
||||
require.Equal(t, frame.Fields[1].Name, data.TimeSeriesValueFieldName)
|
||||
require.Equal(t, frame.Fields[1].Len(), 1)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Count")
|
||||
assert.Equal(t, frame.Name, "Count")
|
||||
})
|
||||
})
|
||||
|
||||
@@ -2923,7 +2923,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Sum @value")
|
||||
assert.Equal(t, frame.Name, "Sum @value")
|
||||
|
||||
frame = dataframes[1]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2931,7 +2931,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Max @value")
|
||||
assert.Equal(t, frame.Name, "Max @value")
|
||||
|
||||
frame = dataframes[2]
|
||||
require.Len(t, frame.Fields, 2)
|
||||
@@ -2939,7 +2939,7 @@ func TestProcessBuckets(t *testing.T) {
|
||||
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)
|
||||
assert.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "Sum @value * Max @value")
|
||||
assert.Equal(t, frame.Name, "Sum @value * Max @value")
|
||||
})
|
||||
|
||||
t.Run("Two bucket_script", func(t *testing.T) {
|
||||
@@ -3672,16 +3672,5 @@ func requireFloatAt(t *testing.T, expected float64, field *data.Field, index int
|
||||
}
|
||||
|
||||
func requireTimeSeriesName(t *testing.T, expected string, frame *data.Frame) {
|
||||
getField := func() *data.Field {
|
||||
for _, field := range frame.Fields {
|
||||
if field.Type() != data.FieldTypeTime {
|
||||
return field
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
field := getField()
|
||||
require.NotNil(t, expected, field.Config)
|
||||
require.Equal(t, expected, field.Config.DisplayNameFromDS)
|
||||
require.Equal(t, expected, frame.Name)
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: Count
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-------------------------------+------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
@@ -26,6 +26,7 @@
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"name": "Count",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -47,10 +48,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {},
|
||||
"config": {
|
||||
"displayNameFromDS": "Count"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: Average counter
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-----------------------------------+------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
@@ -26,6 +26,7 @@
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"name": "Average counter",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -47,10 +48,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {},
|
||||
"config": {
|
||||
"displayNameFromDS": "Average counter"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -7,17 +7,17 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: val3 Max float
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-------------------------------+--------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: label=val3 |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-------------------------------+--------------------+
|
||||
// | 2022-11-22 12:45:00 +0000 UTC | 97.85990905761719 |
|
||||
// | 2022-11-22 12:46:00 +0000 UTC | 98.39459228515625 |
|
||||
// | 2022-11-22 12:47:00 +0000 UTC | 99.76652526855469 |
|
||||
// +-------------------------------+--------------------+
|
||||
// +-------------------------------+-------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-------------------------------+-------------------+
|
||||
// | 2022-11-22 12:45:00 +0000 UTC | 97.85990905761719 |
|
||||
// | 2022-11-22 12:46:00 +0000 UTC | 98.39459228515625 |
|
||||
// | 2022-11-22 12:47:00 +0000 UTC | 99.76652526855469 |
|
||||
// +-------------------------------+-------------------+
|
||||
//
|
||||
//
|
||||
//
|
||||
@@ -28,11 +28,11 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: val3 Min float
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-------------------------------+--------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: label=val3 |
|
||||
// | Labels: | Labels: |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-------------------------------+--------------------+
|
||||
// | 2022-11-22 12:45:00 +0000 UTC | 8.375883102416992 |
|
||||
@@ -49,17 +49,17 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: val2 Max float
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-------------------------------+--------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: label=val2 |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-------------------------------+--------------------+
|
||||
// | 2022-11-22 12:45:00 +0000 UTC | 87.77692413330078 |
|
||||
// | 2022-11-22 12:46:00 +0000 UTC | 98.47160339355469 |
|
||||
// | 2022-11-22 12:47:00 +0000 UTC | 92.53878784179688 |
|
||||
// +-------------------------------+--------------------+
|
||||
// +-------------------------------+-------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-------------------------------+-------------------+
|
||||
// | 2022-11-22 12:45:00 +0000 UTC | 87.77692413330078 |
|
||||
// | 2022-11-22 12:46:00 +0000 UTC | 98.47160339355469 |
|
||||
// | 2022-11-22 12:47:00 +0000 UTC | 92.53878784179688 |
|
||||
// +-------------------------------+-------------------+
|
||||
//
|
||||
//
|
||||
//
|
||||
@@ -70,11 +70,11 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: val2 Min float
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-------------------------------+--------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: label=val2 |
|
||||
// | Labels: | Labels: |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-------------------------------+--------------------+
|
||||
// | 2022-11-22 12:45:00 +0000 UTC | 4.540984630584717 |
|
||||
@@ -91,17 +91,17 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: val1 Max float
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-------------------------------+--------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: label=val1 |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-------------------------------+--------------------+
|
||||
// | 2022-11-22 12:45:00 +0000 UTC | 98.57181549072266 |
|
||||
// | 2022-11-22 12:46:00 +0000 UTC | 97.99356079101562 |
|
||||
// | 2022-11-22 12:47:00 +0000 UTC | 94.45416259765625 |
|
||||
// +-------------------------------+--------------------+
|
||||
// +-------------------------------+-------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-------------------------------+-------------------+
|
||||
// | 2022-11-22 12:45:00 +0000 UTC | 98.57181549072266 |
|
||||
// | 2022-11-22 12:46:00 +0000 UTC | 97.99356079101562 |
|
||||
// | 2022-11-22 12:47:00 +0000 UTC | 94.45416259765625 |
|
||||
// +-------------------------------+-------------------+
|
||||
//
|
||||
//
|
||||
//
|
||||
@@ -112,11 +112,11 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: val1 Min float
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-------------------------------+--------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: label=val1 |
|
||||
// | Labels: | Labels: |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-------------------------------+--------------------+
|
||||
// | 2022-11-22 12:45:00 +0000 UTC | 2.859630584716797 |
|
||||
@@ -131,6 +131,7 @@
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"name": "val3 Max float",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -152,12 +153,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {
|
||||
"label": "val3"
|
||||
},
|
||||
"config": {
|
||||
"displayNameFromDS": "val3 Max float"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -179,6 +174,7 @@
|
||||
},
|
||||
{
|
||||
"schema": {
|
||||
"name": "val3 Min float",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -200,12 +196,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {
|
||||
"label": "val3"
|
||||
},
|
||||
"config": {
|
||||
"displayNameFromDS": "val3 Min float"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -227,6 +217,7 @@
|
||||
},
|
||||
{
|
||||
"schema": {
|
||||
"name": "val2 Max float",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -248,12 +239,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {
|
||||
"label": "val2"
|
||||
},
|
||||
"config": {
|
||||
"displayNameFromDS": "val2 Max float"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -275,6 +260,7 @@
|
||||
},
|
||||
{
|
||||
"schema": {
|
||||
"name": "val2 Min float",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -296,12 +282,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {
|
||||
"label": "val2"
|
||||
},
|
||||
"config": {
|
||||
"displayNameFromDS": "val2 Min float"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -323,6 +303,7 @@
|
||||
},
|
||||
{
|
||||
"schema": {
|
||||
"name": "val1 Max float",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -344,12 +325,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {
|
||||
"label": "val1"
|
||||
},
|
||||
"config": {
|
||||
"displayNameFromDS": "val1 Max float"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -371,6 +346,7 @@
|
||||
},
|
||||
{
|
||||
"schema": {
|
||||
"name": "val1 Min float",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -392,12 +368,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {
|
||||
"label": "val1"
|
||||
},
|
||||
"config": {
|
||||
"displayNameFromDS": "val1 Min float"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: Std Dev Lower counter
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-----------------------------------+--------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
@@ -28,7 +28,7 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: Std Dev Upper counter
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-----------------------------------+--------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
@@ -47,6 +47,7 @@
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"name": "Std Dev Lower counter",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -68,10 +69,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {},
|
||||
"config": {
|
||||
"displayNameFromDS": "Std Dev Lower counter"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -93,6 +90,7 @@
|
||||
},
|
||||
{
|
||||
"schema": {
|
||||
"name": "Std Dev Upper counter",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -114,10 +112,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {},
|
||||
"config": {
|
||||
"displayNameFromDS": "Std Dev Upper counter"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: Max float
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-------------------------------+-------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
@@ -26,6 +26,7 @@
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"name": "Max float",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -47,10 +48,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {},
|
||||
"config": {
|
||||
"displayNameFromDS": "Max float"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: Min float
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-------------------------------+---------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
@@ -26,6 +26,7 @@
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"name": "Min float",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -47,10 +48,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {},
|
||||
"config": {
|
||||
"displayNameFromDS": "Min float"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: p25.0 counter
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-----------------------------------+------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
@@ -28,7 +28,7 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: p75.0 counter
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-----------------------------------+------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
@@ -47,6 +47,7 @@
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"name": "p25.0 counter",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -68,10 +69,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {},
|
||||
"config": {
|
||||
"displayNameFromDS": "p25.0 counter"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -93,6 +90,7 @@
|
||||
},
|
||||
{
|
||||
"schema": {
|
||||
"name": "p75.0 counter",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -114,10 +112,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {},
|
||||
"config": {
|
||||
"displayNameFromDS": "p75.0 counter"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: val3
|
||||
// Dimensions: 2 Fields by 4 Rows
|
||||
// +-----------------------------------+--------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: label=val3 |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-----------------------------------+--------------------+
|
||||
// | 2022-11-14 10:40:00.123 +0000 UTC | 0 |
|
||||
// | 2022-11-14 10:41:00.123 +0000 UTC | 27 |
|
||||
// | 2022-11-14 10:42:00.123 +0000 UTC | 21 |
|
||||
// | 2022-11-14 10:43:00.123 +0000 UTC | 31 |
|
||||
// +-----------------------------------+--------------------+
|
||||
// +-----------------------------------+------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-----------------------------------+------------------+
|
||||
// | 2022-11-14 10:40:00.123 +0000 UTC | 0 |
|
||||
// | 2022-11-14 10:41:00.123 +0000 UTC | 27 |
|
||||
// | 2022-11-14 10:42:00.123 +0000 UTC | 21 |
|
||||
// | 2022-11-14 10:43:00.123 +0000 UTC | 31 |
|
||||
// +-----------------------------------+------------------+
|
||||
//
|
||||
//
|
||||
//
|
||||
@@ -29,18 +29,18 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: val2
|
||||
// Dimensions: 2 Fields by 4 Rows
|
||||
// +-----------------------------------+--------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: label=val2 |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-----------------------------------+--------------------+
|
||||
// | 2022-11-14 10:40:00.123 +0000 UTC | 0 |
|
||||
// | 2022-11-14 10:41:00.123 +0000 UTC | 28 |
|
||||
// | 2022-11-14 10:42:00.123 +0000 UTC | 22 |
|
||||
// | 2022-11-14 10:43:00.123 +0000 UTC | 39 |
|
||||
// +-----------------------------------+--------------------+
|
||||
// +-----------------------------------+------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-----------------------------------+------------------+
|
||||
// | 2022-11-14 10:40:00.123 +0000 UTC | 0 |
|
||||
// | 2022-11-14 10:41:00.123 +0000 UTC | 28 |
|
||||
// | 2022-11-14 10:42:00.123 +0000 UTC | 22 |
|
||||
// | 2022-11-14 10:43:00.123 +0000 UTC | 39 |
|
||||
// +-----------------------------------+------------------+
|
||||
//
|
||||
//
|
||||
//
|
||||
@@ -51,18 +51,18 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: val1
|
||||
// Dimensions: 2 Fields by 4 Rows
|
||||
// +-----------------------------------+--------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: label=val1 |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-----------------------------------+--------------------+
|
||||
// | 2022-11-14 10:40:00.123 +0000 UTC | 0 |
|
||||
// | 2022-11-14 10:41:00.123 +0000 UTC | 26 |
|
||||
// | 2022-11-14 10:42:00.123 +0000 UTC | 20 |
|
||||
// | 2022-11-14 10:43:00.123 +0000 UTC | 41 |
|
||||
// +-----------------------------------+--------------------+
|
||||
// +-----------------------------------+------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
// | Labels: | Labels: |
|
||||
// | Type: []time.Time | Type: []*float64 |
|
||||
// +-----------------------------------+------------------+
|
||||
// | 2022-11-14 10:40:00.123 +0000 UTC | 0 |
|
||||
// | 2022-11-14 10:41:00.123 +0000 UTC | 26 |
|
||||
// | 2022-11-14 10:42:00.123 +0000 UTC | 20 |
|
||||
// | 2022-11-14 10:43:00.123 +0000 UTC | 41 |
|
||||
// +-----------------------------------+------------------+
|
||||
//
|
||||
//
|
||||
// 🌟 This was machine generated. Do not edit. 🌟
|
||||
@@ -71,6 +71,7 @@
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"name": "val3",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -92,12 +93,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {
|
||||
"label": "val3"
|
||||
},
|
||||
"config": {
|
||||
"displayNameFromDS": "val3"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -121,6 +116,7 @@
|
||||
},
|
||||
{
|
||||
"schema": {
|
||||
"name": "val2",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -142,12 +138,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {
|
||||
"label": "val2"
|
||||
},
|
||||
"config": {
|
||||
"displayNameFromDS": "val2"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -171,6 +161,7 @@
|
||||
},
|
||||
{
|
||||
"schema": {
|
||||
"name": "val1",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -192,12 +183,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {
|
||||
"label": "val1"
|
||||
},
|
||||
"config": {
|
||||
"displayNameFromDS": "val1"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// 0
|
||||
// ]
|
||||
// }
|
||||
// Name:
|
||||
// Name: Top Metrics float
|
||||
// Dimensions: 2 Fields by 3 Rows
|
||||
// +-----------------------------------+-------------------+
|
||||
// | Name: Time | Name: Value |
|
||||
@@ -26,6 +26,7 @@
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"name": "Top Metrics float",
|
||||
"meta": {
|
||||
"type": "timeseries-multi",
|
||||
"typeVersion": [
|
||||
@@ -47,10 +48,6 @@
|
||||
"typeInfo": {
|
||||
"frame": "float64",
|
||||
"nullable": true
|
||||
},
|
||||
"labels": {},
|
||||
"config": {
|
||||
"displayNameFromDS": "Top Metrics float"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user