Visitez prometheus.io pour la documentation complète, des exemples et des guides.
Prometheus, un projet de la Cloud Native Computing Foundation, est un système de surveillance des systèmes et des services. Il collecte des métriques à partir de cibles configurées à des intervalles donnés, évalue les expressions de règles, affiche les résultats et peut déclencher des alertes lorsque des conditions spécifiées sont observées.
Les caractéristiques qui distinguent Prometheus des autres systèmes de métriques et de surveillance sont :
Un modèle de données multidimensionnel (série chronologique définie par le nom de la métrique et un ensemble de dimensions clé/valeur)
PromQL, un langage de requête puissant et flexible pour exploiter cette dimensionnalité
Aucune dépendance au stockage distribué ; les nœuds de serveur unique sont autonomes
Un modèle HTTP Pull pour la collecte de séries chronologiques
La diffusion de séries chronologiques est prise en charge via une passerelle intermédiaire pour les tâches par lots
Les cibles sont découvertes via la découverte de services ou la configuration statique
Plusieurs modes de prise en charge des graphiques et des tableaux de bord
Prise en charge de la fédération hiérarchique et horizontale
Il existe différentes manières d'installer Prometheus.
Les binaires précompilés pour les versions publiées sont disponibles dans la section de téléchargement sur prometheus.io. L’utilisation de la dernière version binaire de production est la méthode recommandée pour installer Prometheus. Voir le chapitre Installation dans la documentation pour tous les détails.
Les images Docker sont disponibles sur Quay.io ou Docker Hub.
Vous pouvez lancer un conteneur Prometheus pour l'essayer avec
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
Prometheus sera désormais accessible sur http://localhost:9090/.
Pour construire Prometheus à partir du code source, vous avez besoin de :
Optez pour la version 1.17 ou supérieure.
NodeJS version 16 ou supérieure.
npm version 7 ou supérieure.
Commencez par cloner le dépôt :
git clone https://github.com/prometheus/prometheus.gitcd prometheus
Vous pouvez utiliser l'outil go
pour créer et installer les binaires prometheus
et promtool
dans votre GOPATH
:
GO111MODULE=on va installer github.com/prometheus/prometheus/cmd/... prometheus --config.file=votre_config.yml
Cependant , lors de l'utilisation go install
pour construire Prometheus, Prometheus s'attendra à pouvoir lire ses ressources Web à partir des répertoires du système de fichiers local sous web/ui/static
et web/ui/templates
. Pour que ces actifs soient trouvés, vous devrez exécuter Prometheus à partir de la racine du référentiel cloné. Notez également que ces répertoires n'incluent pas l'interface utilisateur de React à moins qu'elle n'ait été construite explicitement à l'aide de make assets
ou make build
.
Un exemple du fichier de configuration ci-dessus peut être trouvé ici.
Vous pouvez également créer en utilisant make build
, qui compilera les ressources Web afin que Prometheus puisse être exécuté de n'importe où :
faire construire ./prometheus --config.file=votre_config.yml
Le Makefile fournit plusieurs cibles :
build : construit les binaires prometheus
et promtool
(inclut la construction et la compilation dans les ressources Web)
test : exécuter les tests
test-short : exécuter les tests courts
format : formater le code source
vétérinaire : vérifiez le code source pour les erreurs courantes
atouts : construire l'interface utilisateur React
Prometheus est fourni avec de nombreux plugins de découverte de services. Lors de la création de Prometheus à partir des sources, vous pouvez modifier le fichier plugins.yml pour désactiver certaines découvertes de services. Le fichier est une liste au format yaml de chemins d'importation go qui sera intégrée au binaire Prometheus.
Après avoir modifié le fichier, vous devez réexécuter make build
.
Si vous utilisez une autre méthode pour compiler Prometheus, make plugins
générera le fichier plugins en conséquence.
Si vous ajoutez des plugins hors arborescence, que nous n'approuvons pas pour le moment, des étapes supplémentaires pourraient être nécessaires pour ajuster les fichiers go.mod
et go.sum
. Comme toujours, soyez très prudent lorsque vous chargez du code tiers.
La cible make docker
est conçue pour être utilisée dans notre système CI. Vous pouvez créer une image Docker localement avec les commandes suivantes :
faire promu promu crossbuild -p linux/amd64 créer npm_licenses faire common-docker-amd64
Nous publions notre protobuf Remote Write indépendamment sur buf.build.
Vous pouvez l'utiliser comme bibliothèque :
allez chercher buf.build/gen/go/prometheus/prometheus/protocolbuffers/go@latest
C'est expérimental.
Afin de se conformer aux règles du module Go, le numéro de version de Prometheus ne correspond pas exactement aux versions du module Go. Pour les versions Prometheus v2.yz, nous publions des balises v0.yz équivalentes.
Par conséquent, un utilisateur souhaitant utiliser Prometheus v2.35.0 comme bibliothèque pourrait :
allez chercher github.com/prometheus/[email protected]
Cette solution indique clairement que nous pourrions interrompre nos API Go internes entre des versions mineures destinées aux utilisateurs, car les modifications avec rupture sont autorisées dans la version majeure zéro.
Pour plus d'informations sur la création, l'exécution et le développement de l'interface utilisateur basée sur React, consultez le fichier README.md de l'application React.
La documentation Godoc est disponible via pkg.go.dev. En raison des particularités des modules Go, v2.xy sera affiché comme v0.xy
Consultez la page Communauté pour savoir comment atteindre les développeurs et les utilisateurs de Prometheus sur différents canaux de communication.
Reportez-vous à CONTRIBUTING.md
Licence Apache 2.0, voir LICENCE.