Grafana : Requête données mensuelle

Bonjour,

J’aurai besoin d’un petit coup de main sur une requete Grafana. Périodiquement, j’archive le compteur de consommation d’énergie électrique dans une BDD influxDB. Cette valeur est mise à 0 à 00h chaque jour.

J’ai réussi à écrire une requête afin de récupérer la conso journalière (en prenant le max des valeurs groupées par jour). Voir ci-dessous :

Je souhaite à présent écrire sur le même principe une requête me permettant de récupérer la valeur de conso par mois.
Pour ce faire, il faudrait que je fasse la somme des données que la requête de conso journalière me remonte, et ce groupées par mois. Mais je n’arrive pas à écrire cette requête…

Est-ce que l’un d’entre vous a déjà écrit ce genre de requête ?

Merci !

Avec influxdb 1.x ce n’est pas possible. Voir [feature request] Support month and year as duration unit · Issue #3991 · influxdata/influxdb · GitHub
Il faut passer à influxdb 2.0 et utiliser flux comme langage d’interrogation. Mais, pour essayer de m’y mettre depuis quelques jours, ce n’est vraiment pas simple.
Je trouvais la syntaxe de 1.x déjà assez ésotérique, là, c’est pire…
Voilà par exemple, la requête pour extraire les valeurs de linky 30m:

import "math"
from(bucket: "linky")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "consumption_load_curve")
  |> filter(fn: (r) => r["_field"] == "value")
  |> filter(fn: (r) => r["interval_length"] == "PT30M")
  |> window(every: 30m)
  |> mean()
  |> map(fn: (r) => ({ r with _value: r._value / 1000.0 }))
  |> duplicate(column: "_stop", as: "_time")
  |> window(every: inf)
  |> yield(name: "mean")

Arf dommage…

En effet avec cette v2 on s’écarte du langage SQL dans l’écriture des requêtes ! J’essaierai quand même cette nouvelle version lorsqu’elle sera disponible en container Docker.

Merci !

Le tar.gz contienne deux binaires qui marchent tout seuls. Par contre flux, quelle galère :frowning: