Metriken mit Prometheus und Grafana
Richten Sie Prometheus zum Erfassen von Cluster- und Anwendungsmetriken ein und visualisieren Sie diese mit Grafana.
Metriken mit Prometheus und Grafana ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Die Bedeutung von Metriken
Metriken sind numerische Messwerte, die den Zustand und die Leistung Ihrer Anwendungen und Ihrer Infrastruktur beschreiben. Stellen Sie sie sich als Vitalzeichen Ihrer Software vor!
Sie liefern wertvolle Einblicke in:
- Leistung: Wie schnell reagiert Ihre Anwendung?
- Ressourcennutzung: Geht Ihrem Server der Arbeitsspeicher aus?
- Verfügbarkeit: Ist Ihr Dienst für die Benutzer erreichbar und funktionsfähig?
Durch das Erfassen von Metriken können Sie Trends erkennen, Anomalien feststellen und Probleme proaktiv beheben.
Prometheus kennenlernen
Prometheus ist ein auf Zuverlässigkeit und Skalierbarkeit ausgelegtes Open-Source-Monitoring-System. Es ist ein zentrales Werkzeug im Cloud-Native-Observability-Stack.
Seine Hauptaufgaben sind:
- Abrufen: Metriken von konfigurierten Zielen sammeln (z. B. von Ihren Anwendungen).
- Speichern: Diese Metriken in einer Zeitreihendatenbank speichern.
- Abfragen: Ihnen ermöglichen, Fragen zu den gesammelten Daten zu stellen.
Prometheus hilft Ihnen, einen klaren Überblick über die Vorgänge in Ihrem Kubernetes-Cluster zu erhalten.
Das „Scraping“-Modell von Prometheus
Prometheus verwendet zum Sammeln von Metriken ein „Pull“-Modell. Anstatt dass Anwendungen Daten an Prometheus senden, ruft Prometheus die Metriken aktiv von ihnen ab, also per „Scraping“.
Im Allgemeinen funktioniert das folgendermaßen:
- Ihre Anwendung stellt Metriken an einem bestimmten HTTP-Endpunkt bereit (häufig
/metrics). - Prometheus wird mit einer Liste von Zielen konfiguriert (z. B. mit der IP-Adresse und dem Port Ihrer Anwendung).
- In regelmäßigen Abständen sendet Prometheus eine HTTP-Anfrage an den
/metrics-Endpunkt jedes Ziels. - Das Ziel antwortet mit seinen aktuellen Metriken, die Prometheus anschließend speichert.
Metriken: Schlüssel-Wert-Paare
Prometheus speichert Daten als Zeitreihen: Datenströme aus Werten mit Zeitstempeln. Jede Zeitreihe wird eindeutig durch einen Metriknamen und eine Gruppe von Schlüssel-Wert-Paaren identifiziert, die Labels genannt werden.
Beispiel: http_requests_total{method="GET", path="/api"}
Prometheus verfügt über grundlegende Metriktypen:
- Counter: Ein kumulativer Messwert, der nur zunimmt (z. B. die Gesamtzahl der Anfragen).
- Gauge: Ein Wert, der steigen oder fallen kann (z. B. die aktuelle CPU-Auslastung).
- Histogramm/Summary: Zum Erfassen von Beobachtungen und Zählen dieser in konfigurierbaren Buckets (z. B. Anfragedauern).
Anwendungen Metriken „sprechen“ lassen
Damit Prometheus Metriken per Scraping erfassen kann, muss Ihre Anwendung sie in einem von Prometheus verstandenen Format bereitstellen. Dies geschieht normalerweise über einen HTTP-Endpunkt.
Für viele Programmiersprachen gibt es Clientbibliotheken, mit denen Sie Ihren Code einfach instrumentieren können:
- Counter bei Ereignissen erhöhen.
- Gauges auf den aktuellen Zustand setzen.
- Die Dauer von Vorgängen erfassen.
Sehen wir uns ein sehr einfaches Beispiel für eine Anwendung an, die eine grundlegende Counter-Metrik bereitstellt.
Python-Anwendung stellt Metriken bereit
Hier sehen Sie eine kleine Python-Flask-Anwendung, die eine einfache Counter-Metrik bereitstellt. Sie simuliert das Zählen von Seitenaufrufen.
Führen Sie diesen Code aus und rufen Sie anschließend /metrics in Ihrem Browser oder Terminal auf (besuchen Sie beispielsweise nach dem Start http://localhost:5000/metrics).
from flask import Flask
from prometheus_client import Counter, generate_latest
import time
app = Flask(__name__)
c = Counter('my_app_requests_total', 'Total requests to my app')
@app.route('/')
def hello():
c.inc() # Increment the counter
return "Hello, CoddyKit!"
@app.route('/metrics')
def metrics():
return generate_latest().decode('utf-8')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)Prometheus in Ihrem Cluster
In Kubernetes wird Prometheus für eine effiziente Bereitstellung häufig zusammen mit dem Prometheus Operator eingesetzt. Dieser Operator unterstützt Sie bei der Verwaltung von Prometheus-Instanzen und -Konfigurationen.
Wichtige Kubernetes-Ressourcen für Prometheus:
- ServiceMonitor: Gibt Prometheus an, *wo* Metrik-Endpunkte zu finden sind (z. B. welche Services und Pods per Scraping erfasst werden sollen).
- PodMonitor: Ähnlich wie ServiceMonitor, richtet sich jedoch direkt an Pods.
Mit diesen Ressourcen kann Prometheus Metriken Ihrer bereitgestellten Anwendungen automatisch entdecken und per Scraping erfassen.
Grafana: der Maestro für Dashboards
Während Prometheus Metriken sammelt und speichert, ist Grafana Ihr bevorzugtes Werkzeug für deren Visualisierung. Es handelt sich um eine Open-Source-Webanwendung für Analysen und interaktive Visualisierungen.
Mit Grafana können Sie:
- Übersichtliche und informative Dashboards erstellen.
- Mehrere Datenquellen abfragen (z. B. Prometheus).
- Auf Grundlage von Schwellenwerten für Metriken Alerts einrichten.
Grafana verwandelt rohe Metrikdaten in verwertbare Erkenntnisse.
Grafana und Prometheus: ein starkes Duo
Grafana speichert Metrikdaten nicht selbst, sondern fragt Daten aus externen Datenquellen ab. Um Ihre Kubernetes-Metriken zu visualisieren, konfigurieren Sie Prometheus in Grafana als Datenquelle.
Schritte:
- Fügen Sie in Grafana eine neue Datenquelle hinzu.
- Wählen Sie „Prometheus“ als Typ aus.
- Geben Sie die URL Ihres Prometheus-Servers an.
- Erstellen Sie Dashboards mithilfe der Abfragesprache von Prometheus, PromQL!
Mit dieser Kombination haben Sie die vollständige Kontrolle über das Monitoring Ihres Clusters.
Testen Sie Ihr Wissen!
Jetzt können Sie Ihr Verständnis von Prometheus und Grafana überprüfen!
Rückblick: Metriken und Visualisierung
Sehr gut! In dieser Lektion haben Sie Folgendes gelernt:
- Die Bedeutung von Metriken für die Observability.
- Prometheus als leistungsstarkes System zum Abrufen und Speichern von Zeitreihenmetriken.
- Wie Anwendungen Metriken bereitstellen, damit Prometheus sie erfassen kann.
- Grafana zum Erstellen aussagekräftiger Dashboards und Visualisieren Ihrer Metrikdaten.
Das Verständnis dieser Werkzeuge ist entscheidend, damit Ihre Kubernetes-Anwendungen fehlerfrei und leistungsfähig bleiben. Erkunden Sie weiter, wie Sie Ihre eigenen Anwendungen instrumentieren können!
Häufig gestellte Fragen
Ist die Lektion „Metriken mit Prometheus und Grafana“ kostenlos?
Ja — der vollständige Text von „Metriken mit Prometheus und Grafana“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Metriken mit Prometheus und Grafana“?
Richten Sie Prometheus zum Erfassen von Cluster- und Anwendungsmetriken ein und visualisieren Sie diese mit Grafana. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Metriken mit Prometheus und Grafana“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Logging mit kubectl logs
- Metriken mit Prometheus und Grafana
- Health Checks: Liveness- und Readiness-Probes
- Verteiltes Tracing und Events