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
pull/81777/head
Ivana Huckova 2 years ago committed by GitHub
parent 50cd4c0f0f
commit f2936d6695
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 8
      pkg/tsdb/elasticsearch/response_parser.go
  2. 75
      pkg/tsdb/elasticsearch/response_parser_test.go
  3. 7
      pkg/tsdb/elasticsearch/testdata/trimedges_string.golden.jsonc
  4. 7
      pkg/tsdb/elasticsearch/testdata_response/metric_avg.a.golden.jsonc
  5. 114
      pkg/tsdb/elasticsearch/testdata_response/metric_complex.a.golden.jsonc
  6. 14
      pkg/tsdb/elasticsearch/testdata_response/metric_extended_stats.a.golden.jsonc
  7. 7
      pkg/tsdb/elasticsearch/testdata_response/metric_multi.a.golden.jsonc
  8. 7
      pkg/tsdb/elasticsearch/testdata_response/metric_multi.b.golden.jsonc
  9. 14
      pkg/tsdb/elasticsearch/testdata_response/metric_percentiles.a.golden.jsonc
  10. 87
      pkg/tsdb/elasticsearch/testdata_response/metric_simple.a.golden.jsonc
  11. 7
      pkg/tsdb/elasticsearch/testdata_response/metric_top_metrics.a.golden.jsonc

@ -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"
}
}
]

Loading…
Cancel
Save