Prometheus (logiciel)

Logiciel de surveillance informatique
(Redirigé depuis PromQL)

Prometheus est un logiciel libre de surveillance informatique et générateur d'alertes. Il enregistre des métriques en temps réel dans une base de données de séries temporelles (avec une capacité d'acquisition élevée) en se basant sur le contenu de point d'entrée exposé à l'aide du protocole HTTP. Ces métriques peuvent ensuite être interrogées à l'aide d'un langage de requête simple (PromQL) et peuvent également servir à générer des alertes. Le projet est écrit en Go et est disponible sous licence Apache 2. Le code source est disponible sur GitHub[2], et est un projet maintenu par la Cloud Native Computing Foundation à côté d'autres projets comme Kubernetes et Envoy[3].

Prometheus
Description de l'image Prometheus_software logo.svg.

Informations
Première version Voir et modifier les données sur Wikidata
Dernière version 2.53.0 ()[1]Voir et modifier les données sur Wikidata
Dépôtgithub.com/prometheus/prometheusVoir et modifier les données sur Wikidata
Assurance qualitéIntégration continueVoir et modifier les données sur Wikidata
Écrit en GoVoir et modifier les données sur Wikidata
Système d'exploitationLinux, NetBSD, OpenBSD, FreeBSD, Microsoft Windows, Darwin et DragonFly BSDVoir et modifier les données sur Wikidata
EnvironnementX86-64, IA-32, architecture MIPS, PowerPC et architecture ARMVoir et modifier les données sur Wikidata
Type Application de supervision (d)
Base de données de séries chronologiques
Linux Foundation Project (d)Voir et modifier les données sur Wikidata
LicenceLicence Apache 2.0Voir et modifier les données sur Wikidata
Documentationprometheus.io/docs/introduction/overviewVoir et modifier les données sur Wikidata
Site webprometheus.ioVoir et modifier les données sur Wikidata

Historique

Prometheus a été développé chez SoundCloud à partir de 2012[4], lorsque la société a estimé que les solutions de surveillance qu'elle utilisait (StatsD et Graphite) n'étaient pas adaptées à ses besoins. SoundCloud a ainsi développé Prometheus avec pour objectif de disposer d'une base de données multidimensionnelle, d'un outil simple à faire fonctionner, d'un mécanisme de collecte simple et évolutif et d'un langage de requête puissant, le tout dans un seul outil[5]. Le code source du projet a été dès le départ livré sous une licence libre. Cette caractéristique a aidé à une adoption rapide, notamment par Boxever et Docker[6]. Prometheus s'est inspiré de l'outil de surveillance Borgmon utilisé par Google[7],[8].

Depuis 2013, Prometheus est utilisé pour la surveillance de la production chez SoundCloud[5].

En , Prometheus a été le second projet incubé au sein de la Cloud Native Computing Foundation après Kubernetes. Le blog annonçant cette nouvelle indiquait que l'outil était utilisé dans de nombreuses entreprises, notamment Digital Ocean, Ericsson, CoreOS, Weaveworks, Red Hat et Google[9].

La version 1 de Prometheus est sortie en [10]. La version 2 est sortie en [11].

En , la Cloud Native Computing Foundation annonçait que Prometheus était utilisable en production[3].

Architecture

Format de stockage des données

Les données Prometheus sont stockées sous la forme de métriques. Chaque métrique dispose d'un nom ainsi que d'un ensemble d'étiquettes prenant la forme de paire clé = valeur. Chaque métrique peut être sélectionnée en fonction de ces étiquettes. Ces étiquettes incluent des informations sur l'origine de la métrique (agent, adresse du serveur) ainsi que d'un ensemble d'informations spécifiques à l'application (code HTTP, méthode de requête), le point de terminaison, etc. La possibilité de spécifier une liste arbitraire d'étiquettes et d'interroger en fonction de celles-ci en temps réel explique pourquoi le modèle de données de Prometheus est appelé multidimensionnel[12],[5],[13].

Collecte de données

Prometheus collecte des données sous forme de séries temporelles. Les séries temporelles sont récupérées de manière active : le serveur Prometheus interroge une liste de sources de données (les exporteurs) à une fréquence d'interrogation spécifique. Ces points de collecte servent de sources de données à Prometheus. Le serveur dispose également de mécanismes de découverte automatique des ressources à surveiller[14].

Alertes et surveillance

La configuration des alertes se configure depuis Prometheus à l'aide de conditions se basant sur une expression au format PromQL ainsi qu'une durée de temps permettant de caractériser le temps nécessaire pour déclencher une alerte. Lorsque les alertes se déclenchent, elles sont transmises au service d'alerte (Alertmanager). Ce dernier se charge de réaliser un certain nombre d'opérations d'agrégation, désactivation et temporisation de ces alertes avant de les transmettre par différents moyens (messagerie électronique, notification Slack ou SMS)[15].

Tableaux de bord

Prometheus n'est pas conçu pour faire de la restitution d'informations sous la forme de tableau de bord bien qu'il dispose d'une solution pour le faire. Une bonne pratique est de faire appel à un outil comme Grafana même si cette solution a comme inconvénient de rendre l'installation du système de surveillance plus complexe[16].

Utilisation

Prometheus a été utilisé pour la première fois en interne chez SoundCloud, où il a été développé, pour surveiller leurs systèmes[5]. La Cloud Native Computing Foundation a un certain nombre d'études de cas d'autres sociétés utilisant Prometheus. On retrouve par exemple la société Digital Ocean[17], le festival numérique DreamHack[18] et le service de migration de messagerie et de contact ShuttleCloud[19]. Par ailleurs, Pandora Radio a mentionné l'utilisation de Prometheus pour surveiller son pipeline de données[20].

Voir également

Références

Bibliographie

  • McKendrick Russ, Monitoring Docker : monitor your Docker containers and their apps using various native and third-party tools with the help of this exclusive guide!, Birmingham, UK, (ISBN 9781785885501, OCLC 933610431)
  • HECK JOSEPH., KUBERNETES FOR DEVELOPERS use kubernetes to develop, test, and deploy your applications with the help of containers;use kubernetes to develop, [S.l.], PACKT PUBLISHING, (ISBN 978-1788830607, OCLC 1031909876)
  • Burns, Brendan 1976-, Designing distributed systems : patterns and paradigms for scalable, reliable services, Sebastopol, CA, First, (ISBN 9781491983614, OCLC 1023861580)
  • Helmich Martin., Cloud Native programming with Golang Develop microservice-based high performance web apps for the cloud with Go, Birmingham, Packt Publishing, (ISBN 9781787127968, OCLC 1020029257)
  • Shrivastwa Alok, Hybrid cloud for architects : build robust hybrid cloud solutions using AWS and OpenStack, Birmingham, UK, (ISBN 9781788627986, OCLC 1028641698)
  • Chanwit Kaewkasi, Native Docker Clustering with Swarm, (ISBN 978-1786469755)
🔥 Top keywords: Cookie (informatique)Wikipédia:Accueil principalShannen DohertyLamine YamalRobin Le NormandChampionnat d'Europe de footballSpécial:RechercheFête nationale françaiseNico WilliamsCarlos Alcaraz (tennis)Huguette BelloAymeric LaporteDonald TrumpLuke PerryCarlos AlcarazÉquipe d'Espagne de footballAR-15Équipe d'Angleterre de footballNovak DjokovicChampionnat d'Europe de football 2024Álvaro MorataFluctuat nec mergiturTentative d'assassinat de Donald Trump en 2024Tadej PogačarLe Comte de Monte-CristoHarry KaneDani OlmoPrise de la BastilleLa Baule-les-Pins (film)Melanie GriffithLuis de la Fuente (football, 1961)Working GirlDani CarvajalJude BellinghamFrançois LetexierIñaki WilliamsRenaud CapuçonCole PalmerChampionnat d'Europe de football 2020