Überwachung ist ein entscheidender Aspekt des Anwendungsleistungsmanagements. Wenn Anwendungen skaliert werden, ist es unerlässlich, sicherzustellen, dass sie reibungslos funktionieren und dass der Systemzustand kontinuierlich überwacht wird. In Microservices, verteilten Systemen und Cloud-nativen Anwendungen sind Überwachungstools nicht nur ein Add-on, sondern ein wichtiger Teil Ihrer Infrastruktur.
Zwei der beliebtesten Tools zur Überwachung moderner Systeme sind Prometheus und Grafana. Diese Tools werden häufig zum Sammeln, Speichern und Visualisieren von Metriken verwendet und helfen Entwicklern und Betriebsteams dabei, Probleme zu erkennen, die Leistung zu analysieren und dafür zu sorgen, dass Systeme effizient laufen.
Überwachung ist wichtig, um Probleme zu erkennen, bevor sie sich auf Benutzer auswirken. Unabhängig davon, ob Sie mit einem Java-basierten Backend, einer komplexen Microservices-Umgebung oder einem anderen System arbeiten, bietet die kontinuierliche Überwachung Einblicke in:
Anwendungsleistung:
Verfolgen Sie wichtige Leistungskennzahlen wie Antwortzeiten, Anfragen und Fehlerraten.
Systemzustand:
Überwachen Sie den Serverzustand, die CPU-Auslastung, die Speichernutzung und den Speicherplatz, um sicherzustellen, dass die Infrastruktur optimal funktioniert.
Alarmierung:
Richten Sie Schwellenwerte und Warnungen für kritische Kennzahlen ein, die Sie benachrichtigen, wenn etwas schief geht.
Kapazitätsplanung:
Das Sammeln und Analysieren historischer Daten kann Ihnen bei der Planung der Skalierung Ihrer Anwendung helfen.
Prometheus und Grafana bieten robuste Lösungen zur Überwachung, Visualisierung und Analyse von Daten aus Ihren Systemen und Anwendungen.
Prometheus
Prometheus ist ein Open-Source-Überwachungs- und Alarmierungs-Toolkit, das auf Zuverlässigkeit und Skalierbarkeit ausgelegt ist. Es konzentriert sich auf die Erfassung von Zeitreihendaten und unterstützt die mehrdimensionale Datenerfassung, was leistungsstarke Abfragen und Analysen ermöglicht. Prometheus sammelt Metriken von Zielen über HTTP-Endpunkte und speichert sie in einer Zeitreihendatenbank. Diese Metriken können dann mit der Abfragesprache von Prometheus, PromQL, abgefragt werden.
Grafana
Grafana ist eine Open-Source-Plattform für Überwachung und Beobachtbarkeit. Es ermöglicht Benutzern die Visualisierung von Zeitreihendaten aus mehreren Quellen, einschließlich Prometheus. Die Fähigkeit von Grafana, Dashboards zu erstellen, Warnungen einzurichten und eine Vielzahl von Datenquellen zu integrieren, macht es zu einem der beliebtesten Tools zur Visualisierung von Metriken.
Gemeinsam sammelt Prometheus die Metriken, während Grafana sie interaktiv und optisch ansprechend darstellt.
Das Ausführen von Prometheus und Grafana in Docker ist eine einfache und effektive Möglichkeit, schnell eine Überwachungsumgebung einzurichten. Beginnen wir mit der Ausführung von Prometheus in Docker.
Schritt 1: Prometheus in Docker ausführen
Sie können Prometheus mit dem folgenden Befehl als Container ausführen:
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
Dieser Befehl wird:
Schritt 2: Prometheus konfigurieren
Sie müssen die Prometheus-Konfigurationsdatei anpassen, wenn Sie Prometheus so konfigurieren müssen, dass Metriken von bestimmten Endpunkten (z. B. einer Java-Anwendung) extrahiert werden. Durch das Mounten in den Container können Sie Prometheus mit einer benutzerdefinierten prometheus.yml-Datei ausführen. Hier ist ein Beispiel:
docker run \ -p 9090:9090 \ -v /prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
Dadurch wird Ihre lokale prometheus.yml-Datei im Container bereitgestellt. Nachdem Sie Prometheus gestartet haben, können Sie zu http://localhost:9090/ gehen, um auf das Prometheus-Dashboard zuzugreifen.
Jetzt, da Prometheus läuft, ist es an der Zeit, Grafana zur Visualisierung der Daten hinzuzufügen.
Schritt 3: Grafana in Docker ausführen
Grafana lässt sich einfach über Docker bereitstellen. Führen Sie den folgenden Befehl aus, um den Grafana-Container zu starten:
Grafana im Docker ausführen
docker run -d -p 3000:3000 grafana/grafana-enterprise
Sobald Grafana ausgeführt wird, können Sie unter http://localhost:3000/login auf die Web-Benutzeroberfläche zugreifen. Die Standard-Anmeldeinformationen sind:
Schritt 4: Prometheus und Grafana verbinden
Da nun sowohl Prometheus als auch Grafana ausgeführt werden, besteht der nächste Schritt darin, sie zu verbinden. Grafana muss wissen, woher die Kennzahlen stammen. So können Sie Prometheus als Datenquelle in Grafana hinzufügen:
Lassen Sie uns ein einfaches Java-basiertes Projekt erstellen, das Metriken für Prometheus verfügbar macht. Wir werden Micrometer verwenden, eine Metrikerfassungsfassade für JVM-basierte Anwendungen, die sich problemlos in Prometheus integrieren lässt.
Schritt 5: Erstellen Sie eine Java-Anwendung
Fügen Sie die erforderlichen Abhängigkeiten zu Ihrer pom.xml-Datei hinzu:
Alles verbinden.
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
Stellen Sie dann in Ihrer Java-Anwendung einen Endpunkt bereit, den Prometheus scannen kann. Zum Beispiel:
docker run \ -p 9090:9090 \ -v /prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
Dieses Setup erstellt einen Endpunkt/Metriken, die Prometheus scannen kann. Es stellt die von Micrometer erfassten Metriken bereit und ist im Prometheus-Format verfügbar.
Schritt 6: Metriken für Prometheus verfügbar machen
Da die Java-Anwendung nun Metriken sammelt, müssen wir Prometheus anweisen, den /metrics-Endpunkt aus Ihrer Anwendung zu entfernen. Aktualisieren Sie Ihre prometheus.yml-Konfigurationsdatei so, dass sie das Ziel enthält:
docker run -d -p 3000:3000 grafana/grafana-enterprise
Ersetzen Sie es durch die IP-Adresse oder den lokalen Host, wenn es auf demselben Computer ausgeführt wird. Prometheus erfasst nun Metriken aus Ihrer Java-Anwendung.
An diesem Punkt haben Sie:
Schritt 7: Dashboards in Grafana erstellen
So visualisieren Sie die Daten in Grafana:
Sie können jetzt ein Dashboard mit verschiedenen Bereichen erstellen, die Metriken wie Anzahl der Anfragen, Antwortzeiten und Fehlerraten anzeigen.
Überwachung ist entscheidend für die Aufrechterhaltung einer hohen Verfügbarkeit und Leistung. Mit Tools wie Prometheus und Grafana können Sie ganz einfach eine effiziente Überwachungslösung für Ihre Java-Anwendungen einrichten.
Das obige ist der detaillierte Inhalt vonErste Schritte mit Prometheus und Grafana in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!