Prometheus
· 8 min read
Prometheus est un système de monitoring et d'alerting open-source qui s'est imposé comme la référence dans l'écosystème Cloud Native. Conçu initialement chez SoundCloud en 2012, Prometheus est aujourd'hui un projet gradué de la Cloud Native Computing Foundation (CNCF). Cet article explore l'installation, le fonctionnement et les bases du langage de requête PromQL. 📊
Qu'est-ce que Prometheus ? 🤔
Prometheus est un système de monitoring qui collecte et stocke des métriques sous forme de séries temporelles (time-series). Il se distingue par :
- Architecture pull : Prometheus récupère activement les métriques depuis les cibles
- Modèle de données multi-dimensionnel : métriques identifiées par un nom et des labels (clé-valeur)
- Langage de requête puissant : PromQL pour interroger et agréger les données
- Système d'alerting intégré : définition de règles d'alerte directement dans Prometheus
- Découverte de services : intégration native avec Kubernetes, Consul, etc.
- Stockage local : pas de dépendance à un système de stockage distribué
Architecture de Prometheus 🏗️
L'architecture de Prometheus se compose de plusieurs éléments :
┌─────────────────────────────────────────────────────────┐
│ Prometheus Server │
│ │
│ ┌───────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Retrieval │ │ Storage │ │ HTTP Server │ │
│ │ (Scraping) │─▶│ (TSDB) │◀─│ (PromQL) │ │
│ └───────────────┘ └──────────────┘ └──────────────┘ │
│ │ ▲ │
└─────────┼──────────────────────────────────────┼─────────┘
│ │
▼ │
┌───────────────┐ ┌─────────────────┐
│ Exporters │ │ Grafana / │
│ (Metrics) │ │ API Clients │
└───────────────┘ └─────────────────┘
│
┌───────┴────────┐
│ Pushgateway │ (pour jobs courts)
└────────────────┘
│
┌───────┴─────────┐
│ Alertmanager │ (gestion des alertes)
└─────────────────┘
Composants principaux :
- Prometheus Server : collecte, stocke et permet d'interroger les métriques
- Exporters : exposent les métriques des systèmes tiers au format Prometheus
- Pushgateway : permet aux jobs courts de pousser leurs métriques
- Alertmanager : gère les alertes (déduplication, groupage, routage, notifications)