Grafana : les deux bases se consultent, et les requetes sont verifiees
Trois tableaux de bord provisionnes depuis git, sur le modele de la regle R2
(le depot est la source de verite, l'interface ne peut pas les ecraser) :
La nuit SOC reel contre SOC exige par le bilan, et la marge entre les
deux. C'est la question qui avait demande une nuit d'archeologie
le 03/09.
Le solaire l'excedent (§36), la censure, et le mode declare par chacun des
sept chargeurs (§37) — le signal le plus direct dont on dispose.
Prevision l'ecart heure par heure, avec la bande de censure dessous : une
production sous la prevision peut vouloir dire mauvaise
prevision OU absence de preneur.
Les evenements de la table `evenement` deviennent des marqueurs verticaux sur
tous les graphiques — une courbe sans ses evenements ne s'interprete pas.
tools/verifier-dashboards.mjs rejoue CHAQUE requete pour de vrai (SQL contre
PostgreSQL, Flux contre InfluxDB, macros Grafana substituees), annotations
comprises puisqu'elles s'executent sur tous les panneaux. Sans lui une requete
cassee ne se voit qu'a l'ecran, panneau par panneau. 19/19 au deploiement.
Port 3001 et non 3000 : sonde avant d'ecrire la ligne, quelque chose ecoute
deja sur 3000 — la lecon du 5432 deja pris par le PostgreSQL de DSM.
Connexion PostgreSQL par le role evcs_lecture : un tableau de bord ne doit pas
pouvoir ecrire dans la memoire. Aucun secret duplique, aucun secret commite :
le provisionnement les reference par $VARIABLE depuis les deux .env.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
@@ -121,7 +121,56 @@ services:
|
||||
- HISTORISE_INTERVAL_S=60
|
||||
command: ["node", "tools/historise-evcs.mjs"]
|
||||
|
||||
# Consultation des DEUX bases au meme endroit. Grafana ne stocke rien de la
|
||||
# mesure : il interroge PostgreSQL et InfluxDB a la demande. Le perdre ne
|
||||
# perd aucune donnee — c'est une fenetre, pas un coffre.
|
||||
grafana:
|
||||
image: grafana/grafana-oss:11.3.0
|
||||
container_name: evcs-grafana
|
||||
restart: always
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
# 3001 et NON 3000 : quelque chose ecoute deja sur 3000 sur cette
|
||||
# machine (verifie avant d'ecrire cette ligne, comme le port 5432 deja
|
||||
# pris par le PostgreSQL interne de DSM).
|
||||
- "3001:3000"
|
||||
env_file:
|
||||
# Deux fichiers : les secrets de la pile (mot de passe admin Grafana,
|
||||
# mot de passe PostgreSQL) et ceux du depot (role de lecture, jeton
|
||||
# InfluxDB). Aucun secret n'est duplique — c'etait le piege du
|
||||
# POSTGRES_PASSWORD/PGPASSWORD tenus egaux a la main.
|
||||
- .env
|
||||
- ../../.env
|
||||
environment:
|
||||
- TZ=Europe/Paris
|
||||
- GF_SECURITY_ADMIN_USER=admin
|
||||
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD}
|
||||
# Rien ne sort de la maison : ni telemetrie, ni verification de version,
|
||||
# ni recuperation de plugins. Cette installation doit fonctionner
|
||||
# pendant une coupure Internet d'orage (HANDOFF §32).
|
||||
- GF_ANALYTICS_REPORTING_ENABLED=false
|
||||
- GF_ANALYTICS_CHECK_FOR_UPDATES=false
|
||||
- GF_ANALYTICS_CHECK_FOR_PLUGIN_UPDATES=false
|
||||
- GF_NEWS_NEWS_FEED_ENABLED=false
|
||||
- GF_USERS_ALLOW_SIGN_UP=false
|
||||
- GF_DATE_FORMATS_DEFAULT_TIMEZONE=Europe/Paris
|
||||
volumes:
|
||||
# Provisionnement en LECTURE SEULE : sources de donnees et tableaux de
|
||||
# bord viennent du depot git, comme le code des nodes n8n (regle R2).
|
||||
- ./grafana/provisioning:/etc/grafana/provisioning:ro
|
||||
- ./grafana/dashboards:/var/lib/grafana/dashboards:ro
|
||||
# Base interne de Grafana : sessions, preferences, copies de travail.
|
||||
- evcs-grafana-data:/var/lib/grafana
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget -q -O- http://localhost:3000/api/health || exit 1"]
|
||||
interval: 1m
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
|
||||
volumes:
|
||||
evcs-pgdata:
|
||||
evcs-influx-data:
|
||||
evcs-influx-config:
|
||||
evcs-grafana-data:
|
||||
|
||||
Reference in New Issue
Block a user