PromQL: Übung
Vorbereitung: zweiten Node monitoren
Ergänze deine Prometheus-Konfiguration um das Monitoring-Target epimetheus, welches sich unter 159.100.250.46:9100 erreichen lässt. Dies ermöglicht den Vergleich deiner eigenen VM mit einer etwas jüngeren aber gleich ausgestatteten VM. Wenn du in Übung 5 von letzter Woche bereits eine zweite Quelle konfiguriert hast, hast du nun drei Quellen.
Siehe auch Übung 2 von letzter Woche, wenn du nicht mehr weisst, wie man Prometheus konfiguriert.
Verwende für die folgenden Übungen das Web-UI von Prometheus, welches du im Browser via http://DEINE-IP-ADRESSE:9090 erreichst. Halte zu jeder Übung die Abfrage und deren Ergebnisse fest.
Übung 1
Betrachte die Metrik node_systemd_units, welche die Anzahl von system-Units (u.a. Services) angibt. Erstelle nun die folgenden Abfragen:
- Die Summe aller Units pro Server.
- Die Summe aller laufenden (
state="active") Units pro Server. - Die Summe aller laufenden Units über alle Server gerechnet.
- Die Summe aller Units nach Server und Zustand (
state) gruppiert.
Übung 2
Betrachte die Metrik promhttp_metric_handler_requests_total, welche die Anzahl von Requests angibt, die Prometheus zum Einsammeln von Metriken abgesetzt hat. Erstelle folgende Abfragen:
- Die Anzahl aller erfolgreichen Requests (
code="200"). - Die Anzahl aller erfolgreichen Requests (
code="200") der letzten 48 Stunden. - Die Anzahl aller erfolgreichen Requests (
code="200") der letzten 48 Stunden gruppiert nach Server (instance).
Übung 3
Betrachte die Metriken prometheus_http_request_duration_seconds_count und prometheus_http_request_duration_seconds_sum. Diese geben an, wie viele Anfragen an Prometheus gestellt worden sind bzw. wie lange diese Abfragen gedauert haben. Erstelle folgende Abfragen:
- Die durchschnittliche Zeit für eine Abfrage (
handler="/api/v1/query) in Millisekunden. - Die durchschnittliche Zeit für eine Abfrage (
handler="/api/v1/query) in der letzten halben Stunde in Millisekunden. - Die durchschnittliche Zeit für den Metrics-Endpoint (
handler="/metrics") in Millisekunden. - Die durchschnittliche Zeit für den Metrics-Endpoint (
handler="/metrics") in den letzten 10 Minuten in Millisekunden.
Übung 4
Die Metrik prometheus_http_request_duration_seconds_bucket enthält ein Histogramm über die Requestdauern. Erstelle für die beiden Endpoints /api/v1/query (Abfragen an Prometheus) und /metrics (Metrik-Scraping von Prometheus an sich selber) folgende Abfragen für die letzten 24 Stunden:
- Die Mediandauer der Abfragen.
- Die Dauer, die nur von 5% der Anfragen unterschritten wird.
- Die Dauer, die nur von 5% der Anfragen überschritten wird.
Tipp: Du musst zuerst eine Rate bilden, bevor du die Quantile bestimmen kannst.
Übung 5
Suche dir weitere interessante Metriken heraus, beispielsweise zum Netzwerkverkehr (node_net*). Versuche damit weitere Auswertungen zu machen, wobei du die Art der Metrik beachten musst. Dokumentiere die Abfragen mit ihrem Zweck und Ergebnis.