Besuchen Sie prometheus.io für die vollständige Dokumentation, Beispiele und Anleitungen.
Prometheus, ein Projekt der Cloud Native Computing Foundation, ist ein System- und Dienstüberwachungssystem. Es sammelt in bestimmten Intervallen Metriken von konfigurierten Zielen, wertet Regelausdrücke aus, zeigt die Ergebnisse an und kann Warnungen auslösen, wenn bestimmte Bedingungen eingehalten werden.
Die Merkmale, die Prometheus von anderen Metriken und Überwachungssystemen unterscheiden, sind:
Ein mehrdimensionales Datenmodell (Zeitreihe definiert durch Metriknamen und Satz von Schlüssel-/Wertdimensionen)
PromQL, eine leistungsstarke und flexible Abfragesprache zur Nutzung dieser Dimensionalität
Keine Abhängigkeit von verteiltem Speicher; Einzelne Serverknoten sind autonom
Ein HTTP- Pull-Modell für die Zeitreihenerfassung
Das Pushen von Zeitreihen wird über ein zwischengeschaltetes Gateway für Batch-Jobs unterstützt
Ziele werden über Service Discovery oder statische Konfiguration erkannt
Unterstützung mehrerer Grafik- und Dashboard- Modi
Unterstützung für hierarchische und horizontale Föderation
Es gibt verschiedene Möglichkeiten, Prometheus zu installieren.
Vorkompilierte Binärdateien für veröffentlichte Versionen sind im Download- Bereich auf prometheus.io verfügbar. Die Verwendung der neuesten Binärversion der Produktionsversion ist die empfohlene Methode zur Installation von Prometheus. Alle Einzelheiten finden Sie im Kapitel „Installation“ in der Dokumentation.
Docker-Images sind auf Quay.io oder Docker Hub verfügbar.
Sie können einen Prometheus-Container zum Ausprobieren starten
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
Prometheus ist jetzt unter http://localhost:9090/ erreichbar.
Um Prometheus aus Quellcode zu erstellen, benötigen Sie:
Go Version 1.17 oder höher.
NodeJS-Version 16 oder höher.
npm Version 7 oder höher.
Beginnen Sie mit dem Klonen des Repositorys:
Git-Klon https://github.com/prometheus/prometheus.gitcd prometheus
Mit dem go
-Tool können Sie die Binärdateien prometheus
und promtool
erstellen und in Ihrem GOPATH
installieren:
GO111MODULE=on go install github.com/prometheus/prometheus/cmd/... prometheus --config.file=your_config.yml
Wenn Sie jedoch go install
zum Erstellen von Prometheus verwenden, geht Prometheus davon aus, dass es seine Web-Assets aus den lokalen Dateisystemverzeichnissen unter web/ui/static
und web/ui/templates
lesen kann. Damit diese Assets gefunden werden können, müssen Sie Prometheus im Stammverzeichnis des geklonten Repositorys ausführen. Beachten Sie auch, dass diese Verzeichnisse die React-Benutzeroberfläche nicht enthalten, es sei denn, sie wurde explizit mit make assets
oder make build
erstellt.
Ein Beispiel für die obige Konfigurationsdatei finden Sie hier.
Sie können den Build auch mit make build
erstellen, wodurch die Web-Assets kompiliert werden, sodass Prometheus von überall ausgeführt werden kann:
bauen machen ./prometheus --config.file=your_config.yml
Das Makefile bietet mehrere Ziele:
Build : Erstellen der prometheus
und promtool
Binärdateien (einschließlich Erstellen und Kompilieren in Web-Assets)
test : Führen Sie die Tests aus
test-short : Führen Sie die kurzen Tests aus
Format : Formatieren Sie den Quellcode
Tierarzt : Überprüfen Sie den Quellcode auf häufige Fehler
Assets : Erstellen Sie die React-Benutzeroberfläche
Prometheus ist mit vielen Service Discovery-Plugins gebündelt. Wenn Sie Prometheus aus dem Quellcode erstellen, können Sie die Datei „plugins.yml“ bearbeiten, um einige Diensterkennungen zu deaktivieren. Bei der Datei handelt es sich um eine Yaml-formatierte Liste von Go-Importpfaden, die in die Prometheus-Binärdatei integriert werden.
Nachdem Sie die Datei geändert haben, müssen Sie make build
erneut ausführen.
Wenn Sie eine andere Methode zum Kompilieren von Prometheus verwenden, generiert make plugins
die Plugins-Datei entsprechend.
Wenn Sie Out-of-Tree-Plugins hinzufügen, die wir derzeit nicht unterstützen, sind möglicherweise zusätzliche Schritte erforderlich, um die Dateien go.mod
und go.sum
anzupassen. Seien Sie wie immer besonders vorsichtig, wenn Sie Code von Drittanbietern laden.
Das make docker
Ziel ist für die Verwendung in unserem CI-System konzipiert. Mit den folgenden Befehlen können Sie lokal ein Docker-Image erstellen:
mach promu promu crossbuild -p linux/amd64 Machen Sie npm_licenses Machen Sie common-docker-amd64
Wir veröffentlichen unser Remote Write Protobuf unabhängig unter buf.build.
Sie können das als Bibliothek verwenden:
Holen Sie sich buf.build/gen/go/prometheus/prometheus/protocolbuffers/go@latest
Das ist experimentell.
Um den Go-Mod-Regeln zu entsprechen, stimmen die Prometheus-Release-Nummern nicht genau mit den Go-Modul-Releases überein. Für die Prometheus v2.yz-Versionen veröffentlichen wir entsprechende v0.yz-Tags.
Daher könnte ein Benutzer, der Prometheus v2.35.0 als Bibliothek verwenden möchte, Folgendes tun:
Holen Sie sich github.com/prometheus/[email protected]
Diese Lösung macht deutlich, dass wir unsere internen Go-APIs möglicherweise zwischen kleineren, benutzerorientierten Releases unterbrechen, da Breaking Changes in der Hauptversion Null zulässig sind.
Weitere Informationen zum Erstellen, Ausführen und Entwickeln auf der React-basierten Benutzeroberfläche finden Sie in der README.md der React-App.
Die Godoc-Dokumentation ist über pkg.go.dev verfügbar. Aufgrund der Besonderheiten von Go-Modulen wird v2.xy als v0.xy angezeigt
Auf der Community-Seite erfahren Sie, wie Sie die Prometheus-Entwickler und -Benutzer über verschiedene Kommunikationskanäle erreichen können.
Siehe CONTRIBUTING.md
Apache-Lizenz 2.0, siehe LIZENZ.