1. L'interface native de Prometheus #
Un outil d'exploration.
Que permet l'UI Prometheus ? #
L'interface web de Prometheus (port 9090) est conçue pour explorer : tester une requête PromQL, vérifier l'état des cibles (Status > Targets), consulter les règles et les alertes. Elle n'est pas faite pour construire des tableaux de bord durables : pour cela on utilise Grafana.
# Vérifications rapides en ligne de commande
curl -s http://localhost:9090/-/healthy
curl -s 'http://localhost:9090/api/v1/targets' | jq '.data.activeTargets[] | {job: .labels.job, health: .health}'
curl -s 'http://localhost:9090/api/v1/query?query=up' | jq '.data.result[] | {instance: .metric.instance, up: .value[1]}'
curl -s 'http://localhost:9090/api/v1/query_range?query=rate(node_cpu_seconds_total[5m])&start=2026-10-18T08:00:00Z&end=2026-10-18T09:00:00Z&step=60'2. Connecter Grafana à Prometheus #
Une stack complète en 2 minutes.
Docker Compose et provisioning #
# docker-compose.yml
services:
prometheus:
image: prom/prometheus:latest
ports: ["9090:9090"]
volumes: ["./prometheus.yml:/etc/prometheus/prometheus.yml"]
node-exporter:
image: prom/node-exporter:latest
ports: ["9100:9100"]
grafana:
image: grafana/grafana:latest
ports: ["3000:3000"]
volumes: ["./provisioning:/etc/grafana/provisioning"]# provisioning/datasources/prometheus.yml
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus:9090
isDefault: true
jsonData: { timeInterval: 15s }docker compose up -d
# Grafana : http://localhost:3000 (admin / admin) -> Explore -> Prometheus3. Construire de bons tableaux de bord #
Les méthodes RED et USE.
La méthode USE pour les ressources #
Utilisation, Saturation, Erreurs : à appliquer à chaque ressource (CPU, mémoire, disque, réseau).
# Utilisation CPU (%)
100 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[$__rate_interval])) * 100
# Saturation CPU (charge par cœur)
node_load1 / count by (instance) (node_cpu_seconds_total{mode="idle"})
# Mémoire utilisée (%)
(1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100
# Utilisation disque (%)
100 - (node_filesystem_avail_bytes{fstype!~"tmpfs|overlay"} / node_filesystem_size_bytes * 100)
# Débit réseau (octets/s)
sum by (instance) (rate(node_network_receive_bytes_total{device!="lo"}[$__rate_interval]))La méthode RED pour les services #
Rate (requêtes/s), Errors (taux d'erreur), Duration (latence) : à appliquer à chaque service.
# Rate
sum by (service) (rate(http_requests_total[$__rate_interval]))
# Errors (%)
100 * sum by (service) (rate(http_requests_total{status=~"5.."}[$__rate_interval]))
/ sum by (service) (rate(http_requests_total[$__rate_interval]))
# Duration p95
histogram_quantile(0.95, sum by (le, service) (rate(http_request_duration_seconds_bucket[$__rate_interval])))Variables et import de dashboards #
# Variable "instance" (Dashboard settings > Variables > Query)
label_values(node_uname_info, nodename)
# Utilisation dans un panneau : node_load1{instance=~"$instance"}
# Importer le dashboard communautaire "Node Exporter Full" (ID 1860)
# Dashboards > New > Import > 1860 > choisir la source PrometheusBonne Pratique : Utilisez$__rate_intervalplutôt qu'une fenêtre fixe comme[5m]: Grafana l'adapte à la résolution du graphe et à l'intervalle de scrape.
Erreur Courante : Éviter les panneaux qui agrègent des centaines de séries à haute cardinalité : le navigateur et Prometheus saturent. Filtrez par variable et utilisez topk(10, ...).Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
💬 Discussions récentes de la formation
- Prometheus consomme 12 Go de RAM : comment trouver les métriques coupables ?✓ résolu · 2 réponse(s)
- PromQL : quelle différence entre rate() et irate() ?✓ résolu · 1 réponse(s)
Poser une question sur cette leçon →Voir toutes les discussions de la formation
Glossaire de la formation
Observabilité
La capacité à connaître l'état interne d'un système à partir des données qu'il émet.Ces données sont classées en 3 piliers : logsmétriquestracesprofil...
Métriques
Mesures numériques collectées à intervalles réguliers (ex: CPU, RAM, temps de réponse) utilisées pour évaluer l'état de santé global d'un système au f...
Alerting
Processus consistant à notifier les équipes (via email, Slack, Teams) lorsqu'un événement spécifique, un dépassement de seuil ou une anomalie est déte...
Architecture
Conception globale et structurelle d'un système informatique, définissant ses différents composants, leurs relations et les principes guidant son évol...
OpenTelemetry
Framework open source fournissant des standards, APIs et SDKs pour collecter et exporter des données d'observabilité (traces, métriques, logs) de mani...
Articles recommandés
Grafana vs Kibana : Quel outil de visualisation choisir ?
Découvrez les différences fondamentales entre Grafana, le roi des métriques multi-sources, et Kib...
Bonnes pratiques Prometheus : métriques, cardinalité, règles et exploitation
Bonnes pratiques Prometheus : nommage des métriques, labels et cardinalité, intervalles de scrape...
Les types de métriques dans Prometheus
Découvrez en détail les quatre types de métriques supportés par Prometheus (Counter, Gauge, Histo...
Grafana Alloy : Collecter les métriques système et les logs locaux
Découvrez comment configurer Grafana Alloy pour superviser le serveur sur lequel il s'exécute, av...
Grafana Alloy : L'importance de l'auto-supervision (Self-Monitoring)
Découvrez pourquoi et comment configurer Grafana Alloy pour qu'il se supervise lui-même, en colle...
Traefik : les métriques avec Prometheus et OpenTelemetry
Exposer les métriques de Traefik (Prometheus ou OTLP), comprendre les séries par entrypoint, rout...
Observer un test k6 : Prometheus, Grafana et corrélation avec le système testé
Envoyer les résultats de k6 dans Prometheus (remote write) ou en OpenTelemetry, les visualiser da...
PromQL : introduction au langage de requête de Prometheus
Apprendre PromQL, le langage de requête de Prometheus : sélecteurs, rate, sum by, histogrammes et...
Grafana Alloy et Prometheus : collecter et envoyer des métriques
Apprenez à configurer Grafana Alloy pour collecter, transformer et envoyer des métriques en utili...