Qu'est-ce que Prometheus ?

Prometheus est un ensemble d'outils Open Source de surveillance et d'alerte qui a gagné en popularité parallèlement à la croissance de Kubernetes. Créé à l'origine chez SoundCloud, Prometheus peut retrouver ses origines dans un projet de surveillance de Google appelé Borgmon.

Prometheus est l'un des principaux acteurs de la collecte de métriques à partir de vos applications et de votre infrastructure à l'aide d'un modèle pull. Cela signifie que Prometheus enverra régulièrement une requête à vos cibles. Les métriques collectées seront ensuite stockées dans une base de données de séries temporelles. Dans les instances Prometheus autogérées, vous fournissez l'infrastructure permettant de collecter, de stocker et d'interroger les métriques. Dans les versions gérées de Prometheus, un fournisseur fournit toute l'infrastructure et un contrat de niveau de service pour la disponibilité du service.

Prometheus fournit un langage de requête appelé PromQL pour interroger vos données de séries temporelles. De nombreux projets utilisent PromQL, y compris Grafana et Alertmanager, pour vous aider dans des tâches analytiques et opérationnelles telles que la visualisation des données, la création d'alertes et le scaling de votre infrastructure de surveillance.  

À quoi sert Prometheus ?

Prometheus permet de collecter des métriques à partir de vos applications et de votre infrastructure. Ces métriques peuvent servir à suivre l'état de vos systèmes, à identifier les problèmes potentiels et à les résoudre.

Quels sont les avantages de Prometheus ?

Voici quelques-uns des avantages spécifiques de l'utilisation de Prometheus :

  • Ouverture: Prometheus est un produit Open Source gratuit, qui fait partie de la CNCF (Cloud Native Computing Foundation).
  • Fiabilité: Prometheus est fiable et a fait ses preuves dans les environnements de production de certaines des plus grandes entreprises au monde.
  • Assistance de la communauté: Prometheus dispose d'une vaste communauté active qui fournit une assistance, de la documentation et des améliorations. Il s'intègre également à d'autres outils, ce qui vous permet de surveiller vos systèmes et votre infrastructure, et de visualiser vos données.
  • Fonctionne parfaitement avec Kubernetes: en tant que solution de surveillance par défaut de facto pour Kubernetes, la plupart des applications tierces sont déjà instrumentées pour les métriques Prometheus.
  • Fonctionne partout : bien que la majeure partie de l'adoption s'effectue sur des déploiements Kubernetes, Prometheus peut également être utilisé pour des VM et certains environnements sans serveur.

Quels sont les composants de Prometheus ?

  • Serveur Prometheus: composant central du système de surveillance Prometheus. Il stocke des données de séries temporelles et expose une API HTTP pour interroger ces données et générer des alertes les concernant.
  • Exportateurs Prometheus : agents logiciels qui collectent les métriques de différents systèmes et les exposent à Prometheus.
  • Gestionnaire d'alertes: service qui reçoit les alertes de Prometheus et les achemine vers les personnes ou les systèmes appropriés.
  • Fédération Prometheus: fonctionnalité qui permet à plusieurs serveurs Prometheus de partager des données.
  • Prometheus Pushgateway: composant qui permet aux services de transmettre des métriques à Prometheus sans avoir à les récupérer. Cette fonctionnalité est idéale pour les jobs de courte durée.
  • Exportateur de boîte noire Prometheus : service permettant de surveiller la disponibilité des points de terminaison HTTP, TCP et DNS.

Comment Prometheus collecte-t-il les métriques ?

Prometheus utilise un modèle pull pour collecter des métriques, ce qui signifie que le serveur Prometheus interroge les systèmes ou les applications qu'il surveille pour obtenir des métriques. Cette approche diffère du modèle push, utilisé par de nombreux autres systèmes de surveillance, dans lequel vous modifiez le code de l'application pour envoyer régulièrement des métriques au serveur.

Avec le modèle pull, les systèmes ou les applications surveillés n'ont pas besoin de connaître le serveur Prometheus. Il peut donc être ajouté à un système de surveillance sans modifier le code d'application. Le modèle pull ne collecte des métriques que lorsqu'elles sont nécessaires. Prometheus ne gaspille donc pas de ressources en collectant des métriques qui ne sont pas utilisées.

De plus, Prometheus peut détecter automatiquement les sources de données à l'aide des moyens suivants:

  • Détection de services : Prometheus peut utiliser divers mécanismes de détection de services pour rechercher des hôtes qui exécutent des services qui exposent des métriques. Par exemple, Prometheus peut utiliser l'API Kubernetes pour détecter les pods qui exécutent des exportateurs Prometheus.
  • Configuration statique: il est également possible de configurer Prometheus de manière statique pour extraire des ressources spécifiques. Cette option est utile pour les ressources qui ne sont pas visibles par d'autres moyens.
  • Découverte de fichiers: Prometheus peut également découvrir des ressources en recherchant les fichiers contenant des métriques. Par exemple, Prometheus peut découvrir les fichiers générés par collectd ou Nagios.

Une fois que Prometheus a découvert une ressource, il la récupère périodiquement pour obtenir des métriques. Les métriques sont ensuite stockées dans la base de données de Prometheus, où elles peuvent être interrogées et visualisées.

Quels sont les quatre types de métriques de Prometheus ?

  • Les compteurs permettent d'effectuer le suivi des valeurs cumulées qui ne peuvent que augmenter. Ils sont souvent utilisés pour suivre des éléments tels que les requêtes traitées, les erreurs et les octets transférés.
  • Les jauges permettent de suivre les ratios qui peuvent augmenter ou diminuer. Elles mesurent le plus souvent le taux par seconde. Elles sont souvent utilisées pour suivre des éléments tels que l’utilisation de la mémoire, l’utilisation du processeur et l’espace disque.
  • Les histogrammes suivent la distribution des valeurs. Ils sont souvent utilisés pour suivre des éléments tels que la latence des requêtes et la taille des réponses.
  • Les résumés sont semblables aux histogrammes, mais ils permettent également de suivre les quantiles. Ils sont ainsi plus utiles pour identifier les anomalies et comprendre la distribution globale des valeurs.

Qu'est-ce que PromQL ?

PromQL est un langage de requête puissant et flexible pour les métriques collectées par Prometheus. Il permet de créer des graphiques, des tables et des alertes ad hoc.

PromQL utilise un langage de requête fonctionnel qui permet à l'utilisateur de sélectionner et d'agréger des données de séries temporelles en temps réel. Le résultat d'une expression peut être affiché sous forme de graphe, affiché sous forme de données tabulaires dans le navigateur d'expressions de Prometheus, ou consommé par des systèmes externes via l'API HTTP.

Voici quelques-unes des utilisations de Prometheus et PromQL :

  • Surveillance de l'état de vos applications et de votre infrastructure : Prometheus collecte des métriques et des alertes sur les problèmes potentiels.
  • Identification des problèmes potentiels : Prometheus compare les métriques actuelles aux données historiques et aux alertes en cas d'écart significatif.
  • Résoudre les problèmes : Prometheus fournit une vue détaillée de l'état du système et permet aux utilisateurs d'afficher le détail de métriques et de ressources spécifiques afin d'identifier la cause du problème.
  • Visualisation de vos données : Prometheus utilise son langage de requête PromQL pour interroger ses données de séries temporelles, puis affiche les résultats dans différents formats, y compris des graphiques, des tables et des alertes.
  • Création d'alertes : Prometheus utilise son langage de requête PromQL pour interroger ses données de séries temporelles, puis envoie des notifications lorsque les résultats répondent à certaines conditions.
  • Visualisation dans des outils tiers : tout frontal qui comprend l'API Prometheus Query, comme Grafana ou Kiali, peut interroger le serveur Prometheus et afficher des données.

Exemples de requêtes PromQL

Voici quelques exemples de requêtes PromQL:

Utilisation moyenne du processeur par seconde

Pour connaître l'utilisation moyenne du processeur par seconde pour une application spécifique, vous pouvez utiliser la requête suivante:

Nombre de requêtes de point de terminaison

Pour obtenir le nombre de requêtes envoyées à un point de terminaison spécifique, vous pouvez utiliser la requête suivante:

Nombre d'erreurs de requête de point de terminaison

Pour obtenir le nombre total d'erreurs renvoyées par un point de terminaison spécifique, vous pouvez utiliser la requête suivante:

Relevez vos plus grands défis avec Google Cloud

Les nouveaux clients bénéficient de 300 $ de crédits à dépenser sur Google Cloud.
Contactez un spécialiste des ventes Google Cloud pour discuter plus en détail de votre propre défi.
  • Faites des économies grâce à notre approche transparente concernant la tarification
  • Le paiement à l'usage de Google Cloud permet de réaliser des économies automatiques basées sur votre utilisation mensuelle et des tarifs réduits pour les ressources prépayées. Contactez-nous dès aujourd'hui afin d'obtenir un devis.
Google Cloud