# Observabilité Pas de Prometheus/Grafana dédiés à Tripoli Cloud : une instance de chacun existe déjà sur ce serveur, partagée avec les 5 autres projets qui y tournent. En déployer une seconde aurait dupliqué de la RAM sur une machine à 3.7 Go déjà partagée, pour un bénéfice nul - même raisonnement que pour Caddy en Phase 2. ## Ce qui a été ajouté à l'instance existante - **Scrape job `tripoli_edge`** (`prometheus-scrape-snippet.yml`, appliqué à `/opt/monitoring/prometheus/prometheus.yml` sur le serveur) : `172.17.0.1:9000/metrics` - même passerelle docker0 que Caddy utilise pour joindre tripoli-edge. - **Règles d'alerte** (`tripoli-cloud-alerts.yml`, montée dans le conteneur Prometheus) : - `TripoliEdgeDown` : `up{job="tripoli_edge"} == 0` pendant 2 minutes. - `HostDiskAlmostFull` : moins de 10% d'espace libre sur `/` pendant 10 minutes - une alerte au niveau de la machine, pas seulement de Tripoli Cloud, puisqu'il n'y a qu'un seul disque pour tous les projets hébergés. - **Sonde blackbox externe** : `https://tripoli.cloud/healthz` ajoutée à la liste existante du job `blackbox_http` (vérifie que le site répond réellement depuis l'extérieur, pas seulement que Prometheus arrive à le scraper en interne). - **Dashboard Grafana** (`grafana-dashboard-tripoli-edge.json`, `uid: tripoli-cloud-edge`) : état up/down, requêtes en cours, latence moyenne, requêtes par classe de statut, et l'espace disque de l'hôte. Importé via l'API Grafana (`POST /api/dashboards/db`), pas par copier- coller dans l'UI - c'est ce qui permet de le garder versionné ici et de le réimporter à l'identique si besoin. ## Ce qui n'a pas été fait Les règles d'alerte **existent et se déclenchent** dans Prometheus (vérifiable via `/api/v1/rules`), mais rien ne les **notifie** encore par email - pas d'Alertmanager déployé, et pas de policy de notification Grafana configurée pour ces alertes spécifiquement. Grafana a déjà un SMTP fonctionnel (utilisé par d'autres projets sur cette instance) ; y brancher les alertes de Tripoli Cloud est le prochain pas naturel, pas fait dans cette passe pour éviter de modifier la politique de notification globale de l'instance partagée sans plus de tests. ## Vérifié ``` $ curl .../api/v1/targets -> tripoli_edge: up, blackbox tripoli.cloud/healthz: up $ curl .../api/v1/rules -> groupe "tripoli-cloud" : TripoliEdgeDown, HostDiskAlmostFull $ curl .../api/v1/query?query=up{job="tripoli_edge"} -> 1 ``` Dashboard accessible sur `https://grafana.belkacemi.me/d/tripoli-cloud-edge/`.