
Webinar Introduction à Prometheus 17 juin 2021
Le 17 juin 2021, Lionel Porcheron a présenté une introduction à Prometheus, à ses concepts et à l’écosystème né autour de ce projet open source lancé chez SoundCloud : comment il fonctionne, comment l’utiliser sur son infrastructure et ses applications, et où il montre ses limites. Lionel a déployé et utilisé de nombreux outils de monitoring, de Nagios à Prometheus en passant par Munin et Graphite, sur des infrastructures de plusieurs centaines de serveurs physiques ou cloud. Le replay et les slides sont disponibles ci-dessous.
Ce que couvrait le webinar
Du monitoring à l’observabilité
Le monitoring d’hier surveillait des serveurs et des services en boîte noire, en ne regardant que leur disponibilité — c’est l’époque de Nagios. Les microservices et les conteneurs ont multiplié les composants à surveiller et rendu l’infrastructure dynamique. Graphite, apparu en 2008, a mis la métrique au centre ; Prometheus, lancé en 2012 chez SoundCloud et aujourd’hui projet diplômé de la CNCF, est devenu le standard de fait. L’observabilité va plus loin : le code est instrumenté pour exposer aussi des métriques métier.
Les indicateurs clés : RED et USE
La méthode RED pour les services : taux de requêtes par seconde, taux d’erreurs, distribution des durées. La méthode USE pour les ressources : utilisation (« un disque à 90 % »), saturation (« une file d’attente de quatre processus sur le CPU »), erreurs (« cinquante collisions tardives sur cette interface réseau »).
L’architecture de Prometheus
Le serveur Prometheus vient chercher (pull) les métriques sur des endpoints HTTP, en s’appuyant si besoin sur la service discovery. La Pushgateway permet les envois ponctuels, l’Alertmanager envoie les alarmes déclenchées par le serveur, et le stockage longue durée est confié à des projets externes comme Thanos ou Cortex. Une requête PromQL typique :
rate(http_requests_total[5m])renvoie le taux par seconde, mesuré sur les cinq dernières minutes, de toutes les séries de la métrique http_requests_total. Les labels permettent ensuite de filtrer : application, environnement, révision…
Instrumenter son code
Des bibliothèques existent dans la plupart des langages. La démonstration utilisait une petite application Django affichant une citation du jour, instrumentée avec django-prometheus ; son code est publié sur github.com/bleemeolabs/quote.
Aller plus loin
- Prometheus dans le cloud : Prometheus managé, interrogeable en PromQL, sans serveur à maintenir.
- Alternative à Prometheus : la comparaison point par point entre un Prometheus auto-hébergé et Bleemeo.
- Monitoring applicatif : collecter les métriques de votre code instrumenté.
- Monitoring Protocols Compared — Which Standard for What (article en anglais).
Replay
Voir le replay sur la chaîne Youtube de Bleemeo:
Slides
Les slides présentés lors de ce webinar:
Télécharger les slides (PDF)