Grafana: Alias by (Display name)
Aus Wiki-WebPerfect
Version vom 9. September 2021, 09:09 Uhr von Admin (Diskussion | Beiträge)
If you use a InfluxDB datasource with Query Language = InfluxQL, in a Grafana panel there was an option ALIAS BY.
This option is missing when you use a InfluxDB datasource with Query Language = Flux!
In this article I show you how you can change the naming like with ALIAS BY.
In the following examples we want following naming schema (like the image to the right): <Description> - <Hostname>: <VMName>
- Description = Hardcoded description of the measurement "CPU Load Total"
- Hostname = InfluxDB Tag "host"
- VMName = InfluxDB Tag "VMName"
Change naming with the "Standard options"
With the new panels from Grafana, there is new standard option called Display name. Now this option can use variables.
To reach the example from the image you can use following variables in the field Display name:
CPU Load Total - ${__field.labels.host}: ${__field.labels.VMName}
NOT RECOMMENDED - Change naming like ALIAS BY with map() & group()
..<YOUR_FLUX_QUERY>.. |> map(fn: (r) => ({ r with display_name: "CPU Load Total - " + r.host + ":" + r.VMName })) |> group(columns: ["display_name"]) |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
Similar Query from image but in Flux
from(bucket: "telegraf") |> range(start: v.timeRangeStart, stop:v.timeRangeStop) |> filter(fn: (r) => r._measurement == "hyperv_virtual_processor" and r._field == "Percent_Total_Run_Time_mean" and r.VMName == "TestRHE01" ) |> map(fn: (r) => ({ r with display_name: "CPU Load Total - " + r.host + ":" + r.VMName })) |> group(columns: ["display_name"]) |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)