Le bilan tire ses bornes des donnees, plus des macros de temps
Le panneau rendait sept « — » alors que sa requete donnait les bons totaux en psql, avec la substitution exacte que Grafana applique, et que le serveur ne journalisait aucune erreur : une ligne de NULL, donc un axe de minutes vide cote Grafana. Les bornes de generate_series venaient de $__timeFrom() et $__timeTo(). Elles viennent desormais du min et du max de la table sur la fenetre, et la seule macro restante est $__timeFilter(ts) — exactement la forme du panneau « Sur la periode » des vehicules, qui lui a toujours fonctionne. C'est aussi plus juste physiquement : on n'extrapole plus au-dela de la derniere mesure observee. Note d'exploitation : le GRAFANA_ADMIN_PASSWORD du .env n'est pas celui en service. Grafana n'applique cette variable qu'a la creation initiale de l'admin, jamais a un compte deja existant — l'API refuse donc ce mot de passe. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
@@ -1228,9 +1228,20 @@ BILAN_CLES = [
|
||||
]
|
||||
_bn = [n for _, n in BILAN_CLES]
|
||||
|
||||
BILAN_BASE = ("""WITH axe AS (
|
||||
SELECT generate_series(date_trunc('minute', $__timeFrom()::timestamptz),
|
||||
date_trunc('minute', $__timeTo()::timestamptz),
|
||||
# ⚠️ Les bornes de l'axe viennent des DONNEES (min/max de `mesure` dans la
|
||||
# fenetre), pas des macros `$__timeFrom()` / `$__timeTo()`. Ce panneau rendait
|
||||
# sept « — » a l'ecran alors que la requete donnait les bons totaux en psql et
|
||||
# que Grafana ne journalisait aucune erreur : une ligne de NULL, donc un axe
|
||||
# vide cote serveur. La seule macro utilisee ici est `$__timeFilter(ts)`, comme
|
||||
# dans le panneau « Sur la periode » des vehicules, qui lui a toujours marche.
|
||||
# C'est aussi plus juste physiquement : on n'extrapole pas au-dela de la
|
||||
# derniere mesure observee.
|
||||
BILAN_BASE = ("""WITH bornes AS (
|
||||
SELECT min(ts) AS d, max(ts) AS f FROM mesure WHERE $__timeFilter(ts)
|
||||
),
|
||||
axe AS (
|
||||
SELECT generate_series(date_trunc('minute', (SELECT d FROM bornes)),
|
||||
date_trunc('minute', (SELECT f FROM bornes)),
|
||||
interval '1 minute') AS t
|
||||
),
|
||||
releve AS (
|
||||
|
||||
Reference in New Issue
Block a user