From my original ping example, this is how the data json looks like. There is a field called name at the start. That one is picked up by the CDF plugin.
{
"name": "mean",
"refId": "A",
"meta": {
"executedQueryString": "from(bucket:\"piprobe/autogen\")\n |> range(start: 2022-03-16T05:44:43.344Z, stop: 2022-03-16T06:44:43.344Z)\n |> filter(fn: (r) => r._measurement == \"ping\" and\n r._field == \"rtt\" and\n r.probe == \"probe12\"\n )\n |> aggregateWindow(every: 1m, fn: mean)\n |> map(fn:(r) => ({ _time:r._time,_value:r._value,_measurement:\"mean\"}))\n"
},
"fields": [
Here is the same for the one which don’t work. The name field is missing, and no label in the CDF plugin.
{
"refId": "C",
"meta": {
"executedQueryString": "from(bucket:\"piprobe/autogen\")\n |> range(start: 2022-03-16T05:44:43.344Z, stop: 2022-03-16T06:44:43.344Z)\n |> filter(fn: (r) => r._measurement == \"ping\" and\n r._field == \"rtt\" \n )\n |> map(fn:(r) => ({ _time:r._time,_value:r._value}))\n |> aggregateWindow(every: 1m, fn: mean)\n |> map(fn:(r) => ({ _time:r._time,\"Group\":r._value,_measurement:\"Group\"}))\n"
},
"fields": [
The coresponding querries
A
from(bucket:"piprobe/autogen")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "ping" and
r._field == "rtt" and
r.probe == "${probe}"
)
|> aggregateWindow(every: ${interval}, fn: mean)
|> map(fn:(r) => ({ _time:r._time,_value:r._value,_measurement:"mean"}))
C
from(bucket:"piprobe/autogen")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "ping" and
r._field == "rtt"
)
|> map(fn:(r) => ({ _time:r._time,_value:r._value}))
|> aggregateWindow(every: ${interval}, fn: mean)
|> map(fn:(r) => ({ _time:r._time,"Group":r._value,_measurement:"Group"}))
Is the CDF plugin to blame? Should it read the name nested further in, connected to the data series, not the entire querry?
{
"refId": "C",
"meta": {
"executedQueryString": "from(bucket:\"piprobe/autogen\")\n |> range(start: 2022-03-16T05:44:43.344Z, stop: 2022-03-16T06:44:43.344Z)\n |> filter(fn: (r) => r._measurement == \"ping\" and\n r._field == \"rtt\" \n )\n |> map(fn:(r) => ({ _time:r._time,_value:r._value}))\n |> aggregateWindow(every: 1m, fn: mean)\n |> map(fn:(r) => ({ _time:r._time,\"Group\":r._value,_measurement:\"Group\"}))\n"
},
"fields": [
{
"name": "_time",
"type": "time",
"typeInfo": {
"frame": "time.Time",
"nullable": true
},
"config": {
"unit": "ms",
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"values": [
...
],
"entities": {},
"state": {
"scopedVars": {
"__series": {
"text": "Series",
"value": {
"name": "Series (C)"
}
},
"__field": {
"text": "Field",
"value": {}
}
},
"seriesIndex": 3
}
},
{
"name": "Group",
"type": "number", # CDF should use this name?
"typeInfo": {
"frame": "float64",
"nullable": true
},
"labels": {},
"config": {
"unit": "ms",
"min": 0,
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"mappings": []
},
"values": [ ... ]