Menu

Prometheus : Définition et Guide Complet

6 min de lecture Mis à jour le 05 Avr 2026

Définition

Prometheus est un système de monitoring et d'alerting open source conçu pour collecter, stocker et interroger des métriques numériques horodatées. Avec son langage de requête PromQL et son intégration native avec Grafana, il est devenu le standard de la supervision d'infrastructure.

Qu'est-ce que Prometheus ?

Prometheus est un système de monitoring et d'alerting open source, initialement développé chez SoundCloud en 2012, puis devenu le deuxième projet gradué de la Cloud Native Computing Foundation (CNCF) après Kubernetes. Il est conçu pour collecter des métriques numériques horodatées — utilisation CPU, mémoire, latence des requêtes, nombre d'erreurs — auprès de systèmes et d'applications, les stocker dans une base de données temporelle optimisée, et permettre leur interrogation via PromQL, un langage de requête dédié.

Contrairement aux solutions de monitoring traditionnelles qui attendent que les systèmes surveillés poussent leurs métriques (push model), Prometheus utilise un modèle de scraping (pull model) : il interroge activement les endpoints HTTP de chaque cible à intervalles réguliers pour récupérer les métriques exposées. Ce choix architectural simplifie la configuration, facilite la découverte de problèmes de connectivité et rend le monitoring indépendant du cycle de vie des applications surveillées.

Prometheus stocke les données dans une base de données time-series locale, optimisée pour les écritures séquentielles et les requêtes sur des fenêtres temporelles. Chaque métrique est identifiée par un nom et un ensemble de labels (paires clé-valeur), créant un modèle de données multidimensionnel extrêmement flexible. Par exemple, http_requests_total{method="POST", handler="/api/orders", status="500"} capture précisément les requêtes POST en erreur sur l'endpoint des commandes.

Pourquoi Prometheus est important

Le monitoring est un pilier de toute infrastructure de production fiable. Prometheus s'est imposé comme la solution de référence pour plusieurs raisons fondamentales.

  • Modèle de données multidimensionnel : les labels permettent de découper les métriques selon n'importe quelle dimension (serveur, service, version, région) sans avoir à prédéfinir les agrégations. Une seule métrique peut être analysée sous des dizaines d'angles différents.
  • PromQL : le langage de requête natif est puissant et expressif. Il permet des calculs complexes — taux de variation, percentiles, prédictions de tendances — impossibles ou fastidieux avec d'autres systèmes de monitoring.
  • Alerting intégré : Alertmanager, le composant d'alerting de Prometheus, gère le regroupement, la déduplication et le routage des alertes vers Slack, email, PagerDuty ou d'autres canaux, avec des mécanismes de silencing et d'inhibition.
  • Écosystème d'exporters : des centaines d'exporters officiels et communautaires exposent les métriques de systèmes tiers — Node Exporter (Linux), PostgreSQL Exporter, Redis Exporter, Docker/cAdvisor — sans modifier ces systèmes.
  • Cloud-native : Prometheus s'intègre nativement avec Kubernetes pour la découverte automatique des services, le monitoring des pods et des nœuds, et la supervision des workloads conteneurisés.

Comment ça fonctionne

L'architecture Prometheus repose sur plusieurs composants. Le serveur Prometheus central scrape les métriques des cibles configurées via HTTP, les stocke localement et évalue les règles d'alerting. Alertmanager reçoit les alertes déclenchées, les regroupe et les notifie via les canaux configurés. Les exporters exposent les métriques de systèmes qui ne les exposent pas nativement (bases de données, serveurs web, systèmes d'exploitation).

Les applications instrumentées exposent leurs métriques via un endpoint HTTP /metrics au format texte Prometheus. Par exemple, une application Django instrumentée avec la bibliothèque django-prometheus expose automatiquement le nombre de requêtes, la latence par vue, les requêtes SQL et l'état des migrations. Prometheus scrape ces endpoints à intervalle configurable (typiquement 15 à 30 secondes).

PromQL interroge ces métriques avec une syntaxe qui combine sélection, agrégation et fonctions. Par exemple, rate(http_requests_total{status=~"5.."}[5m]) calcule le taux de requêtes en erreur 5xx sur les 5 dernières minutes. Les résultats peuvent être visualisés directement dans l'interface web de Prometheus ou, plus couramment, dans des dashboards Grafana qui se connectent à Prometheus comme source de données.

Pour le stockage longue durée, Prometheus supporte le remote write vers des systèmes comme Thanos, Cortex ou TimescaleDB (via Promscale), qui agrègent et compressent les données historiques au-delà de la rétention locale.

Exemple concret

Chez KERN-IT, nous construisons des plateformes de supervision pour nos clients qui nécessitent une visibilité complète sur l'état de l'infrastructure et des applications. Prometheus s'intègre naturellement dans notre stack de monitoring. Pour une plateforme de monitoring réseau comme celle développée pour Venn Telecom, Prometheus collecte les métriques de performance des équipements SD-WAN — latence, perte de paquets, bande passante — via des exporters SNMP. Alertmanager déclenche des notifications en temps réel lorsqu'un seuil critique est dépassé.

Dans nos déploiements Docker, le Node Exporter et cAdvisor exposent les métriques système (CPU, mémoire, disque) et les métriques de conteneurs. Prometheus les agrège et Grafana les affiche dans des dashboards interactifs qui donnent aux équipes opérationnelles une vue d'ensemble en temps réel. Les règles d'alerting PromQL détectent automatiquement les anomalies — un taux d'erreurs 5xx qui dépasse 1 %, une utilisation mémoire supérieure à 90 %, une latence API qui franchit les 500 ms — avant que les utilisateurs ne soient impactés.

Mise en œuvre

  1. Installation : déployer Prometheus via Docker, Helm chart pour Kubernetes, ou binaire natif. Commencer avec une instance unique couvrant l'ensemble de l'infrastructure de développement.
  2. Configuration des targets : définir les cibles à scraper dans prometheus.yml. Utiliser la découverte automatique (service discovery) pour les environnements dynamiques comme Kubernetes ou Docker Swarm.
  3. Instrumentation des applications : ajouter la bibliothèque client Prometheus à vos applications (django-prometheus pour Django, prometheus_client pour Python pur) pour exposer des métriques métier personnalisées.
  4. Exporters : déployer les exporters nécessaires — Node Exporter pour les métriques système, PostgreSQL Exporter pour la base de données, Redis Exporter pour le cache.
  5. Règles d'alerting : définir des règles PromQL dans des fichiers de configuration qui déclenchent des alertes lorsque des conditions sont remplies. Configurer Alertmanager pour le routage des notifications.
  6. Visualisation : connecter Grafana à Prometheus comme source de données et créer des dashboards adaptés à vos besoins de supervision.

Technologies et outils associés

  • Grafana : plateforme de visualisation qui s'intègre nativement avec Prometheus pour créer des dashboards de monitoring riches et interactifs.
  • Docker : conteneurisation facilitant le déploiement de Prometheus, des exporters et d'Alertmanager dans un environnement reproductible.
  • Kubernetes : orchestrateur de conteneurs avec lequel Prometheus s'intègre nativement pour le monitoring des workloads cloud-native.
  • TimescaleDB : base de données temporelle qui peut servir de stockage longue durée pour les métriques Prometheus via Promscale.
  • Alertmanager : composant de Prometheus dédié au routage, regroupement et notification des alertes.
  • Node Exporter : exporteur de métriques système Linux (CPU, mémoire, disque, réseau) pour Prometheus.

Conclusion

Prometheus est devenu le standard de facto du monitoring d'infrastructure et d'applications dans l'écosystème cloud-native. Son modèle de données multidimensionnel, son langage de requête PromQL et son intégration avec Grafana offrent une visibilité sans précédent sur l'état et les performances des systèmes. Chez KERN-IT, nous intégrons Prometheus dans nos architectures de supervision pour offrir à nos clients belges un monitoring proactif et des alertes intelligentes, qu'il s'agisse de surveiller des plateformes IoT, des applications Django ou des infrastructures réseau. Combiné à Grafana, Prometheus transforme des données brutes en informations actionnables.

Conseil Pro

Ne monitorez pas tout avec Prometheus : concentrez-vous sur les quatre signaux dorés (golden signals) — latence, trafic, taux d'erreurs et saturation. Commencez par instrumenter ces quatre métriques pour chaque service, puis affinez progressivement. Et configurez toujours des alertes sur des symptômes (« le taux d'erreurs 5xx dépasse 1 % ») plutôt que sur des causes (« le CPU dépasse 80 % »).

Un projet en tête ?

Discutons de comment nous pouvons vous aider à concrétiser vos idées.