Set-OPS-Public/roles/serveur_postgresql/meta/metriques.yml
Daniel Allaire aab1bcc83a doc : rangee par lecteur, trois portes d'entree (architecture, setup, usage) et un index
README reduit au role du projet et au demarrage rapide. docs/architecture.md (schemas
Mermaid), docs/setup.md, docs/usage.md (154 cibles en 13 familles), docs/README.md (index).
Documents ranges en conception/, exploitation/, hebergement/, projet/ ; 598 chemins suivis.
QUICKSTART.md, SOLUTION.md, architecture-set-ops.md et la carte fondus puis retires.

Preuves : P48 lit l'index et conception/mecanismes.md ; les gardes parcourent docs/ sous-
dossiers compris (_documents) ; usage.md suit le Makefile dans les deux sens.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:01:54 -04:00

82 lines
3.9 KiB
YAML

---
# Metriques derivees du role. Le pendant de `meta/supervision.yml`, et son contraire.
#
# POURQUOI UN SECOND FICHIER, ET PAS UNE SECTION DU PREMIER.
#
# Les deux repondent a des questions DIFFERENTES, sur des donnees differentes, pour des
# consommateurs differents :
#
# `supervision.yml` -> une SONDE rend un VERDICT avec un TTL. « est-ce casse ? »
# `metriques.yml` -> un EXPORTATEUR expose une SERIE. « depuis quand,
# et vers ou ? »
#
# `docs/conception/supervision-conception.md` le dit deja dans l'autre sens : « une metrique a seuil
# appartient a Prometheus et Grafana ; melanger les deux rendrait les deux moins
# lisibles ». Ce fichier est l'autre moitie de cette phrase.
#
# CE QUE LE MOTEUR EN DERIVE : la cible de scrutation de Prometheus
# (`serveur_prometheus_cibles_supplementaires`, un crochet qui existait et que personne ne
# remplissait) et les panneaux du tableau de bord.
#
# CE QU'IL N'EN DERIVE PAS, ET C'EST VOULU : le FLUX. Le port 9187 doit s'ouvrir depuis
# l'observatoire, et c'est `meta/flux.yml` qui le declare — la ou vivent deja tous les
# flux de ce role. Deux fichiers pour un meme fait finiraient par diverger ; on l'a vu
# assez souvent ici.
# L'EXPORTATEUR : ce que le role installe pour qu'il y ait quelque chose a lire.
exportateur:
paquet: prometheus-postgres-exporter
service: prometheus-postgres-exporter
port: 9187
job: postgresql
# LE SCHEMA SUIT UN INTERRUPTEUR DE LA CIBLE (2026-10-12). Prometheus lit cette variable
# dans les hostvars de chaque hote du groupe : toutes vraies, il collecte en HTTPS et
# verifie contre l'autorite ; sinon en HTTP. Le role, lui, sert en TLS sur le meme
# interrupteur — une seule valeur decide des deux bouts.
tls_si: serveur_postgresql_tls_actif
# LES PANNEAUX : ce qui merite d'etre REGARDE DANS LE TEMPS.
#
# Ni un par metrique — l'exportateur en publie plus de deux cents — ni un par role. Un par
# QUESTION QU'ON SE POSE VRAIMENT quand quelque chose commence a aller moins bien.
#
# LE CRITERE : une serie a sa place ici si elle PRECEDE un verdict ou si elle n'en aura
# jamais. Ce qui bascule d'un coup appartient a Icinga ; ce qui derive lentement n'a que
# le graphe pour se faire voir.
panneaux:
- titre: "Connexions utilisées"
expr: "sum by (instance) (pg_stat_activity_count)"
unite: connexions
raison: >-
La sonde Icinga crie a 70 % et a 90 %. Ce panneau dit ce qu'elle ne peut pas dire :
depuis QUAND ca monte. Une base qui passe de 20 a 60 connexions en trois semaines
n'a rien casse — elle annonce la date ou elle cassera.
- titre: "Taux de succès du cache"
expr: >-
sum by (instance) (rate(pg_stat_database_blks_hit[5m]))
/ clamp_min(sum by (instance) (rate(pg_stat_database_blks_hit[5m])
+ rate(pg_stat_database_blks_read[5m])), 1)
unite: ratio
raison: >-
CELUI-LA N'AURA JAMAIS DE VERDICT, et c'est pourquoi il compte. Quand les donnees
depassent `shared_buffers`, la base va chercher sur disque de plus en plus souvent.
Rien ne casse, rien n'alerte : tout devient lent. C'est exactement la panne qu'un
graphe voit et qu'une sonde ne verra jamais.
- titre: "Taille des bases"
expr: "sum by (datname) (pg_database_size_bytes)"
unite: octets
raison: >-
La croissance est la seule chose qu'on ne peut pas mesurer apres coup. Savoir qu'une
base a double en deux mois se decide deux mois plus tot — ou jamais.
- titre: "Transactions par seconde"
expr: >-
sum by (instance) (rate(pg_stat_database_xact_commit[5m])
+ rate(pg_stat_database_xact_rollback[5m]))
unite: tps
raison: >-
Le contexte des trois autres. Des connexions qui montent a charge CONSTANTE ne
disent pas la meme chose que des connexions qui montent parce que le travail a
double — et le geste qui suit n'est pas le meme non plus.