PromQL Abfragen schreiben
Ziel
In diesem Projekt lernen Sie, wie man PromQL-Abfragen formuliert, um Metriken im Explore Tab von Grafana abzufragen. Sie werden:
- erste einfache PromQL-Abfragen schreiben
- mit Filtern, Labels und Zeitintervallen arbeiten
- eigene Abfragen und Abfragen in Grafana Explore untersuchen
Hilfsmittel
- Verwenden Sie die Prometheus Doku als Referenz.
TODO: Grafana Login erklären
Aufgabe 1 – Erste Metriken anzeigen
- Öffnen Sie den Explore Tab in der Grafana Web-Oberfläche .
- Stellen Sie sicher, dass oben rechts
Code
ausgewählt ist. - Geben Sie
up
als Query ein. - Drücken Sie „Run querry“.
Die up
Metrik zeigt an, ob ein Target erreichbar ist. Der Wert ist 1 bei Erfolg, 0 bei Nichterreichbarkeit.
Aufgabe 2 – Labels nutzen
- Filtern Sie nach
node_exporter
Targets mit derjob
-Bezeichnungnode-exporter
. - Filtern Sie nach einem bestimmten Node Exporter.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
Beispiel:
up{job="node-exporter", instance="10.0.0.1:9100"}
Aufgabe 3 – CPU-Auslastung berechnen
- Finden Sie die Metrik
node_cpu_seconds_total
. - Nutzen Sie die
rate
-Funktion, um die Idle Zeit über 5 Minuten zu berechnen.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
rate(node_cpu_seconds_total[5m])
- Filtern Sie nur nach
mode=idle
.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
rate(node_cpu_seconds_total{mode="idle"}[5m])
- Bilden Sie den Duchschnitt über alle CPUs einer Node.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance)
- Berechnen Sie den Anteil der CPU-Zeit, die nicht im Idle-Modus ist.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
1 - avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance)
Aufgabe 4 – Filesystem Auslastung
- Finden Sie die Metriken
node_filesystem_size_bytes
undnode_filesystem_free_bytes
. - Berechnen Sie, wie viel Prozent des Dateisystems belegt sind für Devices mit
mountpoint="/"
.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
Beispiel:
1-node_filesystem_free_bytes{mountpoint="/"}/node_filesystem_size_bytes{mountpoint="/"}
Aufgabe 5 – Aggregationen
- Verwenden Sie
avg
,sum
,min
,max
Funktionen. - Berechnen Sie:
- die durchschnittliche CPU-Auslastung über alle Nodes
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
Beispiel:
1 - avg(rate(node_cpu_seconds_total{mode="idle"}[5m]))
- den minimalen freien Speicher aller Systeme für den
mountpoint="/"
.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
Beispiel:
min(node_filesystem_free_bytes{mountpoint="/"})
- die Summe aller empfangenen Netzwerkbytes (
node_network_receive_bytes_total
) für alle Nodes amdevice="enp7s0"
.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
Beispiel:
sum(node_network_receive_bytes_total{device="enp7s0"})
Aufgabe 7 – Abfragen kombinieren (optional)
- Berechnen Sie die belegte Speichermenge je Node in Prozent. Nutzen Sie die
Metriken
node_memory_MemAvailable_bytes
undnode_memory_MemTotal_bytes
.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes
on
und group_left
.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
(node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * on(instance) group_left(nodename) node_uname_info