78 lines
3.5 KiB
YAML
78 lines
3.5 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/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
|
||
|
|
|
||
|
|
# 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.
|