Exercice 01 : Découvrir Prometheus et les métriques
🎯 Objectifs
À la fin de cet exercice, vous serez capable de :
- ✅ Lancer Prometheus avec Docker
- ✅ Configurer
prometheus.ymlavecglobaletscrape_configs - ✅ Explorer l'endpoint
/metricset comprendre les 4 types de métriques - ✅ Naviguer dans l'interface Prometheus UI
- ✅ Identifier les targets actives dans Status → Targets
Durée estimée : 20 minutes
Difficulté : ⭐☆☆☆☆ (Débutant)
Prérequis : Docker installé
📖 Contexte
Prometheus est un système de collecte de métriques open-source. Il scrape périodiquement des endpoints HTTP exposant des métriques au format texte, les stocke dans sa base de données temporelle (TSDB), et les rend interrogeables via PromQL.
📋 Énoncé
Déployez Prometheus en local avec Docker, configurez-le pour scraper ses propres métriques, et explorez les différents types de métriques exposés.
🧭 Déroulement de l'exercice
Tâche 1 : Créer la configuration Prometheus
Créez un répertoire tp-prometheus/ avec un fichier prometheus.yml contenant la configuration minimale : un intervalle de scrape global et un job qui cible localhost:9090.
Indice :
`yamlglobal:
scrape_interval: 15s
>
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
`
Vérification : Le fichier est valide YAML. cat prometheus.yml l'affiche sans erreur.
Tâche 2 : Lancer Prometheus avec Docker
Lancez Prometheus en montant votre prometheus.yml dans le conteneur sur le port 9090.
Indice :
`bashdocker run -d \
--name prometheus \
-p 9090:9090 \
-v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
`
Vérification : curl -s http://localhost:9090/-/healthy retourne Prometheus Server is Healthy.
Tâche 3 : Explorer l'endpoint /metrics
Ouvrez http://localhost:9090/metrics dans votre navigateur ou via curl. Identifiez un exemple de chaque type : counter, gauge, histogram et summary.
Indice : Les commentaires
# TYPE <nom> <type>précèdent chaque métrique. Cherchezprometheus_http_requests_total(counter),go_goroutines(gauge),prometheus_http_request_duration_seconds(histogram).
Vérification : Vous identifiez 4 types distincts dans la sortie de /metrics.
Tâche 4 : Naviguer dans Prometheus UI
Ouvrez http://localhost:9090. Allez dans Status → Targets et vérifiez l'état du job prometheus. Ensuite dans Status → Configuration pour voir la config chargée.
Indice : Le target
prometheus (1/1 up)doit être en vert. Si c'est rouge, vérifiez que le conteneur est bien démarré avecdocker logs prometheus.
Vérification : Le target http://localhost:9090/metrics est à l'état UP.
Tâche 5 : Exécuter une première requête
Dans l'onglet Graph de Prometheus UI, exécutez up puis prometheus_http_requests_total. Observez les labels retournés.
Indice :
upretourne1pour chaque target active. Cliquez sur Table pour voir les valeurs ponctuelles, Graph pour la série temporelle.
Vérification : La requête up retourne 1 pour le job prometheus.
🗂️ Mini-Projet
Ajoutez un second job node-exporter qui scrape localhost:9100 après avoir lancé Node Exporter :
docker run -d --name node-exporter -p 9100:9100 prom/node-exporterPuis mettez à jour prometheus.yml :
- job_name: "node"
static_configs:
- targets: ["host.docker.internal:9100"]Rechargez Prometheus : curl -X POST http://localhost:9090/-/reload
Checkpoints :
- Node Exporter tourne sur le port 9100
prometheus.ymlcontient 2 jobs- Status → Targets affiche 2 targets
UP - La requête
node_cpu_seconds_totalretourne des données