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:

  1. Die Summe aller Units pro Server.
  2. Die Summe aller laufenden (state="active") Units pro Server.
  3. Die Summe aller laufenden Units über alle Server gerechnet.
  4. 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:

  1. Die Anzahl aller erfolgreichen Requests (code="200").
  2. Die Anzahl aller erfolgreichen Requests (code="200") der letzten 48 Stunden.
  3. 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:

  1. Die durchschnittliche Zeit für eine Abfrage (handler="/api/v1/query) in Millisekunden.
  2. Die durchschnittliche Zeit für eine Abfrage (handler="/api/v1/query) in der letzten halben Stunde in Millisekunden.
  3. Die durchschnittliche Zeit für den Metrics-Endpoint (handler="/metrics") in Millisekunden.
  4. 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:

  1. Die Mediandauer der Abfragen.
  2. Die Dauer, die nur von 5% der Anfragen unterschritten wird.
  3. 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.