Prometheus

Prometheus est une solution de supervision créée par SoundCloud en 2012 et open-sourcée en 2015. En 2016, Prometheus est le deuxième projet ayant rejoint la Cloud Native Computing Foundation (le premier étant Kubernetes).

Prometheus est conçu pour monitorer des métriques provenant d’applications ou de serveurs.

Il se décompose en 3 parties :

  • le requêteur pour récupérer les métriques sur les exporters;
  • la Time Series Database (TSDB) stockant les données à court-terme;
  • le service web permettant de requêter la base de donnée

Il intègre également un outil d’alerting réagissant lorsqu’une métrique dépasse un seuil considéré comme critique.

Cette stack n’utilise pas d’agents à proprement parler, Prometheus se base sur des exporters : des micro-services se chargeant de récupérer des informations sur l’hôte et de les exposer sur une page web dans un format propre à Prometheus.

Les types de métriques

Il existe 4 types de métriques dans Prometheus :

👉 Counter : une valeur qui augmente au fil du temps. Exemple : le nombre de requêtes HTTP 200 sur un serveur web, celui-ci ne peut pas diminuer.
👉 Gauge : une valeur qui peut augmenter ou diminuer au fil du temps. Exemple : la quantité de mémoire utilisée par un processus.
👉 Histogram : une valeur qui peut augmenter ou diminuer au fil du temps, mais qui est aussi capable de stocker des valeurs dans des buckets (des intervalles). Exemple : le nombre de requêtes HTTP 200 sur un serveur web, mais avec des intervalles de temps (0-100ms, 100-200ms, etc).
👉 Summary : identique aux Histogram mais ne nécessitant pas de connaître les intervalles à l’avance.

Il est possible de passer d’un type à un autre en appliquant une fonction comme rate, permettant de créer une courbe à partir d’un taux de croissance

Le PromQL

PromQL, ou Prometheus Query Language, est un langage de requête spécialement conçu pour interroger, analyser et extraire des données à partir d’une base de données de séries temporelles gérée par Prometheus. Ce dernier est un système de surveillance open-source largement utilisé qui collecte et stocke des métriques de performances ainsi que des données de séries temporelles à partir de diverses sources telles que des serveurs, des applications, des services, et plus encore.

PromQL permet aux utilisateurs de formuler des requêtes complexes pour extraire des informations utiles à partir des métriques collectées par Prometheus. Voici quelques-uns des principaux concepts et fonctionnalités de PromQL :

👉 Séries temporelles: Les métriques dans Prometheus sont stockées sous forme de séries temporelles, qui sont des flux de points de données indexés par un ensemble de labels (étiquettes). Par exemple, une série temporelle pourrait représenter l’utilisation du CPU d’un serveur à un instant donné.

👉 Sélection de métriques: Vous pouvez utiliser PromQL pour sélectionner des métriques spécifiques en fonction de critères tels que les labels, les noms de métriques, etc. Par exemple, vous pouvez interroger toutes les métriques liées au CPU d’une instance particulière en précisant son architecture et/ou son nom.

👉 Agrégation : PromQL prend en charge des opérations d’agrégation telles que la somme, la moyenne, le maximum, le minimum, etc. Vous pouvez agréger les données sur une période de temps donnée pour obtenir des statistiques.

👉 Opérations mathématiques : Vous pouvez effectuer des opérations mathématiques sur les métriques, ce qui vous permet de créer de nouvelles séries temporelles en combinant ou en transformant les données existantes.

Créer une requête

👉 Une requête PromQL peut ressembler à ceci :
node_network_transmit_bytes_total
👉 Il nous est alors possible d’ajouter un filtre pour préciser le contexte de la métrique :
node_network_transmit_bytes_total{instance="laptop.prometheus.home", device="wlp46s0"}

Dernière édition le 2025-11-02 01:01

Propulsé par Wiki|Docs

This page was last edited on 2025-11-02 01:01

Jules
Free licence

Propulsé par Wiki|Docs