[infra] Tableaux de bord Grafana métier et enrichissement de la supervision #112
Labels
No labels
Compat/Breaking
EC01
EC02
EC03
EC04
EC05
EC06
Kind/BDD
Kind/Back
Kind/Bug
Kind/CICD
Kind/Cloud
Kind/Contenu
Kind/Data
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Front
Kind/IA
Kind/Infra
Kind/Monitoring
Kind/Security
Kind/Testing
Portée/Post-jury
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
ops/alerte
No milestone
No project
No assignees
1 participant
Notifications
Due date
Dependencies
No dependencies set
Reference
g2/enervision#112
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Exigence couverte
ENF-08
Épreuve servie
EC03 · CI/CD et qualité
Charge estimée
1 j.h, à étaler : chaque tableau de bord se fait quand sa source existe.
Ce qu'on veut obtenir
Le ticket #31 a posé Prometheus, Grafana, node-exporter, cAdvisor et
postgres-exporter, avec quatre tableaux de bord (
socle,hote,conteneurs,postgresql). Trois autres tableaux de bord ont un contenu déjà connu mais unesource qui n'existe pas encore. Ce ticket les fixe à l'avance et les branche au
fil de la livraison de leurs tickets producteurs.
Critères d'acceptation
chaine-donnee: fraîcheur par site, volume ingéré par heure en zone bronze, complétude par site, part de points imputés par régime. Chaque panneau renvoie une valeur dès que #33 et #34 écrivent en base.modele: erreur glissante prévu/réel, dérive des variables d'entrée, latence et volume d'inférence, version du modèle promu. Chaque panneau renvoie une valeur dès que #37 journalise ses prédictions.sauvegardes: âge du dernier vidage PostgreSQL, dernier état, taille du dump, âge de la dernière copie hors-serveur. Alimenté par le collecteurtextfilede node-exporter.GRANT pg_monitor TO grafanaposé par une migrationdb/migrations/:pg_stat_replicationet le texte des requêtes des autres sessions cessent d'être masqués dans le tableau de bordpostgresql.Comment on le vérifie
Commande
bash tests/ci/test-supervision.sh, puis panneau par panneau via l'API Grafana une fois le ticket producteur livréAttendu aucun panneau du tableau de bord concerné ne reste sur « No data »
Preuve capture de chaque tableau de bord rempli
Dépendances
chaine-donneeattend #33 (zone bronze), #34 (journal de qualité), #35 (zone or)modeleattend #36 (modèle promu) et #37 (prédictions et dérive)sauvegardesattend #71 (copie hors-serveur)Suggestions, hors périmètre
blackbox_exporter: sondes HTTP surforge.,grafana.,app.,api/metricsdéjà exposés par MinIO, Caddy et Forgejo (trois blocsstatic_configs)cAdvisorenprivileged: truesi les cgroups du LXC ne sont pas lisibles autrementManuel d'exploitation à mettre à jour
docs/runbooks/supervision.md: section « Ajouter une source ou un tableau de bord », le collecteurtextfile(chemin, format), et leGRANT pg_monitoravec sonREVOKEde retour arrière.Risque et retour arrière
pg_monitorest un rôle prédéfini restreint aux statistiques : risque faible, retour arrièreREVOKE pg_monitor FROM grafana. Un fichiertextfilemal formé fait échouer le scrape node-exporter : le valider avecpromtool check metricsavant de poser le cron.PR #183 : tableau de bord
chaine-donnee(fraîcheur, volume ingéré/h, complétude, régime d'imputation), branché sur postgres-metier maintenant que #33/#34/#35 sont closes. Vérifié en local, tous les panneaux rendent une valeur.modeleetsauvegardesrestent hors de ce PR : bloqués respectivement par #36/#37 (ouverts) et #71 (ouvert, Post-jury). Sursauvegardes, même la partie déjà livrée ne remonte rien pour l'instant : voir #172, qui est en NoData depuis le 07/09.Autre écart relevé en creusant le ticket : le
GRANT pg_monitor TO grafanaest déjà appliqué en prod, mais via une tâche Ansible (roles/app/tasks/main.yml, mergée avec la pile app le 07/09) et non via une migrationdb/migrations/comme le demande le critère d'acceptation. Le runbook (docs/runbooks/supervision.md, section 6) dit encore « à coordonner », ce qui est obsolète. À trancher : formaliser en migration, ou assumer l'écart et mettre le runbook à jour.