Quelques exemples de queries Flux utilisées dans mes dashboards grafana:

  • Graphe simple
// Créer un graphe du champ Temp1 de la mesuer metrology

from(bucket: "home-metrics")
  |> range(start: v.timeRangeStart, stop:v.timeRangeStop)
  |> filter(fn: (r) =>
    r._measurement == "metrology" and
    r._field == "temp1" 
  )
  |> aggregateWindow(every: v.windowPeriod, fn: mean)
  • Somme de deux colones
// Query pour aggréger les valeurs des colonnes DP1 et DP2
// du measurement solarmanpv
from(bucket: "home-metrics")
  |> range(start: v.timeRangeStart, stop:v.timeRangeStop)
  |> filter(fn: (r) =>  r._measurement == "solarmanpv")
  |> filter(fn: (r) =>  r._field == "DP1" or r._field == "DP2")
  |> group(columns: ["_time"], mode:"by")
  |> sum(column: "_value")
  |> group()
  |> aggregateWindow(every: v.windowPeriod, fn: mean)
  |> yield(name: "delivered")
  • Multiplier par deux
// Query pour multiplier par deux la colonnes DP1
// du measurement solarmanpv
from(bucket: "home-metrics")
  |> range(start: v.timeRangeStart, stop:v.timeRangeStop)
  |> filter(fn: (r) => r._measurement == "solarmanpv")
  |> filter(fn: (r) => r._field == "DP1")
  |> map(fn: (r) => ({r with _value: r._value * 2.0 }))
  |> aggregateWindow(every: v.windowPeriod, fn: mean)