Prometheus
Supervision et alerting basés sur les métriques
Prometheus est un système de supervision open source construit autour d’une base de données de séries temporelles et d’un modèle de métriques basé sur le pull. Il récupère (scrape) les métriques de cibles configurées à intervalles réguliers, les stocke, et vous permet de les interroger et de déclencher des alertes avec son propre langage de requête, PromQL.
Comment ça marche
Prometheus interroge périodiquement des endpoints HTTP qui exposent des métriques dans son format d’exposition textuel — la plupart des applications et composants d’infrastructure l’exposent nativement ou via un exporter. Les échantillons récupérés sont stockés dans une base de données de séries temporelles locale. PromQL interroge ces données pour les tableaux de bord (couramment affichés dans Grafana) et pour les règles d’alerte, que Prometheus évalue en continu et transmet à Alertmanager lorsqu’elles se déclenchent.
Concepts clés
- Métrique — une mesure numérique nommée et horodatée, éventuellement accompagnée de labels clé-valeur pour la dimensionnalité (par exemple
http_requests_total{method="GET", status="200"}). - Cible (target) — un endpoint que Prometheus scrape pour obtenir des métriques, découvert de façon statique ou via la découverte de services (y compris la découverte de services native de Kubernetes).
- PromQL — le langage de requête de Prometheus pour sélectionner, agréger et calculer sur des données de séries temporelles.
- Alertmanager — un composant séparé qui dédoublonne, regroupe et achemine les alertes déclenchées par les règles d’alerte de Prometheus vers l’e-mail, Slack, PagerDuty et d’autres destinataires.
Pourquoi les équipes adoptent Prometheus
- Découverte de services native pour Kubernetes. Il peut découvrir automatiquement les Pods, Services et endpoints à scraper à mesure que votre cluster évolue.
- Un langage de requête puissant. PromQL prend en charge des agrégations riches, des calculs de taux et des jointures entre métriques.
- Des métriques dimensionnelles. Les labels permettent de découper une même métrique selon n’importe quelle dimension que vous avez instrumentée, sans prédéfinir chaque combinaison.
- Le standard de fait. La plupart des logiciels natifs de Kubernetes — contrôleurs ingress, service meshes, composants de Kubernetes lui-même — exposent par défaut des métriques au format Prometheus.
Pour commencer
Installez Prometheus dans votre cluster (généralement via le chart Helm kube-prometheus-stack, qui inclut Grafana et Alertmanager), configurez-le pour découvrir les cibles que vous voulez scraper, et écrivez vos premières règles d’alerte. Les guides ci-dessous couvrent les configurations courantes de scraping et d’alerting.