Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Einen Dienst überwachen: Metriken und Alarme

Nach dieser Lektion: Ich kann an Metriken erkennen, ob ein Dienst gesund ist.

Lektion, 50 Min.4 BefehleObservability-Lab: Prometheus und Grafana, mit einer Alarmregel, die Lernende selbst schreiben

Die Kasse hängt, und keiner weiß es

Wer einen Dienst überwacht, misst laufend, ob er funktioniert und wie schnell er antwortet. So merkst du eine Störung vor den Nutzenden.

Der Onlineshop eines Sportgeschäfts antwortet plötzlich nach zehn Sekunden. Kundinnen und Kunden brechen ab. Ohne Messung erfährt das Geschäft es erst aus den schlechten Bewertungen.

Am Ende dieser Lektion

Notiz

Ich kann an Metriken erkennen, ob ein Dienst gesund ist.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Metrikeine Zahl, die ein Dienst über sich meldetnginx_up
Prometheusein Programm, das Metriken sammelt und speichert
Grafanaein Programm, das Metriken als Diagramm zeigt
Ratewie viel pro Sekunde passiert
Perzentilder Wert, unter dem ein bestimmter Anteil aller Messungen liegt
Alarmeine Regel, die meldet, wenn ein Wert zu schlecht wird

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Bevor du anfängst

Notiz

Drück oben in der Leiste auf Lab starten. Das Lab startet mehrere Dienste und braucht eine Minute. Jede Schaltfläche Ausführen tippt ihren Befehl in dein Terminal. Dein Terminal erreicht jeden Dienst unter seinem Namen.

Ein Dienst meldet Zahlen über sich selbst

Ein kleines Hilfsprogramm liest die Statusseite eines Dienstes und schreibt sie als Metriken auf. Jede Metrik hat einen Namen und eine Zahl.

Prometheus fragt diese Zahlen alle paar Sekunden ab und speichert sie. Grafana malt daraus Diagramme.

Drei Arten von Zahlen

ArtWas sie tutBeispiel
ZählerSteigt nur, wird nie kleinerAlle Anfragen seit dem Start
MesswertGeht rauf und runterVerbindungen gerade jetzt
LebenszeichenIst 1 oder 0nginx_up: 1 heißt, der Dienst antwortet

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Den Dienst app einmal anfragen

Befehl
curl http://app:8080/

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Metrik nginx_up beim Hilfsprogramm lesen

Befehl
curl -s http://exporter:9113/metrics | grep nginx_up

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Rate sagt, wie viel pro Sekunde geschieht

Ein Zähler allein sagt wenig. Wichtig ist, wie schnell er steigt.

Nimm zwei Ablesungen. Zieh die erste von der zweiten ab und teile durch die Sekunden dazwischen. Das Ergebnis ist die Rate.

Beispiel: Anfragen pro Sekunde

ZeitZählerRechnung
Beim Start der Messung1200
60 Sekunden später15001500 minus 1200 ist 300
Rate300 geteilt durch 60 ist 5 Anfragen pro Sekunde

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Den Dienst fünfmal anfragen

Befehl
curl -s "http://app:8080/?n=[1-5]"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Prometheus nach nginx_up fragen

Befehl
curl -s "http://prometheus:9090/api/v1/query?query=nginx_up"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Der Durchschnitt versteckt die langsamen Anfragen

Zehn Antwortzeiten in Millisekunden: neunmal um 20, einmal 900. Der Durchschnitt ist 109,2. Das sagt nichts über die meisten Nutzenden.

Besser ist ein Perzentil. Sortier die Werte, nimm die Zahl, die bei p Prozent der Liste steht, und lies sie ab. Beim 90. Perzentil liegt neun von zehn Anfragen darunter oder darauf.

Beispiel: zehn Antwortzeiten sortiert

Platz12345678910
Zeit in ms192020212122222324900
Rang für p = 909 (90 Prozent von 10)

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein häufiger Fehler

Warnung

Viele glauben, der Durchschnitt zeige, wie es den meisten Nutzenden geht. Das stimmt nicht. Ein einziger sehr langsamer Wert zieht ihn weit nach oben, und viele langsame Werte verschwinden zwischen schnellen. Nimm das Perzentil, wenn du die langsamen Fälle sehen willst.

Ein Alarm meldet schlechte Werte

Niemand schaut den ganzen Tag auf ein Diagramm. Darum gibt es Alarme: eine Regel mit einer Grenze und einer Wartezeit.

Ein Alarm wartet erst ab, ob der Wert nur kurz schlecht ist. So bleibt er stumm bei kleinen Aussetzern und meldet sich bei echten Störungen.

Die drei Zustände eines Alarms

ZustandDas bedeutet
InaktivDer Wert ist in Ordnung
WartendDer Wert ist zu schlecht, aber noch nicht lange genug
FeuerndDer Wert war lange genug zu schlecht, jemand wird gerufen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Weiterführend: eine Grenze festlegen

Stell dir vor, der Onlineshop soll alarmieren, wenn mehr als 5 von 100 Anfragen mit einem Fehler enden und das drei Minuten lang so bleibt.

Schreib die Regel in einem Satz auf, mit Grenze und Wartezeit. Das Schreiben der echten Regel im Lab ist die Aufgabe dieses Labs.

Über dieses Lab und seinen Quellcode: Observability-Lab: Prometheus und Grafana, mit einer Alarmregel, die Lernende selbst schreiben

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.