Phase 5 : observabilité (réutilise le Prometheus/Grafana partagé)

- Pas de stack dédiée : une instance Prometheus/Grafana existe déjà sur
  ce serveur pour les 5 autres projets. En déployer une seconde aurait
  dupliqué de la RAM sur une machine à 3.7 Go partagée, sans bénéfice -
  même raisonnement que pour Caddy en Phase 2.
- Scrape job tripoli_edge (172.17.0.1:9000, même passerelle docker0 que
  Caddy) ajouté à la config Prometheus existante.
- Règles d'alerte : TripoliEdgeDown (up == 0), HostDiskAlmostFull
  (< 10% d'espace libre sur / - au niveau de la machine, pas seulement
  de ce projet, puisqu'il n'y a qu'un disque pour tout le monde).
- Sonde blackbox externe ajoutée pour https://tripoli.cloud/healthz.
- Dashboard Grafana versionné (uid tripoli-cloud-edge), importé via
  l'API (POST /api/dashboards/db) pour rester reproductible, pas
  construit à la main dans l'UI.
- Vérifié : tous les targets Prometheus up (dont tripoli_edge et la
  sonde tripoli.cloud), les deux règles d'alerte chargées et évaluées,
  les requêtes du dashboard retournent de vraies valeurs.
- Limite assumée : les alertes se déclenchent dans Prometheus mais ne
  sont pas encore routées par email (pas d'Alertmanager, pas de policy
  de notification Grafana dédiée) - documenté comme prochain pas, pas
  fait pour éviter de modifier la politique de notification globale de
  l'instance partagée sans plus de tests.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Adam Belkacemi 2026-09-16 23:09:32 +02:00
parent 991f4dd04f
commit db306433d5
5 changed files with 199 additions and 1 deletions

View file

@ -0,0 +1,19 @@
# Bloc ajouté à /opt/monitoring/prometheus/prometheus.yml sur le serveur
# (fichier partagé avec les 5 autres projets surveillés par cette même
# instance - donc pas commité dans son intégralité ici, même logique
# que le Caddyfile de tripoli-edge).
#
# rule_files pointe vers tripoli-cloud-alerts.yml (ce dossier), monté
# dans le conteneur Prometheus via un ajout au docker-compose.yml
# existant.
rule_files:
- /etc/prometheus/tripoli-cloud-alerts.yml
scrape_configs:
- job_name: tripoli_edge
static_configs:
- targets: ['172.17.0.1:9000'] # passerelle docker0, même pattern que Caddy -> tripoli-edge
# Ajouté à la liste existante du job blackbox_http :
# - https://tripoli.cloud/healthz