Newer
Older
- [X] Informieren Sie sich auf der Website https://leischner.inf.h-brs.de/netlab/services.html über Prometheus-Targets im Netzlabor.
- [X] Gibt es im Internet noch weitere frei verfügbare Targets für Prometheus? Welche haben Sie gefunden?
- [X] Integrieren Sie verschiedene remote Targets Ihrer Wahl in Ihre Prometheus-Applikation, mindestens jedoch:
den NodeExplorer und den cAdvisor auf Ihrem Server moni21 ,
den NodeExplorer und den cAdvisor auf dem produktiven Dockerhost dh.docklab.de.
Damit Ihre Targets mit den Targets im Netzlabor kompatibel sind, verwenden Sie für Ihre Targets das Label hostname, um den Hostnamen anzugeben.
- [X] Wie kann man feststellen, welche Metriken das Prometheus-Target NodeExporter liefert? Wo findet man eine Beschreibung dieser Metriken?
https://github.com/prometheus/node_exporter
- [X] Was genau beschreibt die Metrik node_boot_time_seconds und die Metrik node_time_seconds ? Von welchem Typ sind diese Metriken?
node_boot_time_seconds = Zeitpunkt des Systemstart in sec
node_time_seconds = Timestamp in sec
- [ ] Fragen Sie diese Metrik direkt über Prometheus-Graph ab. Was genau wird Ihnen hierbei von Prometheus geliefert?
???
- [X] Geben Sie ein Kommando ein, mit dem sich die Up-Time des Servers moni21 ermitteln lässt.
node_time_seconds - node_boot_time_seconds
- [ ] Überprüfen Sie, ob das Ergebnis plausibel ist. Wie gehen Sie dabei vor?
- [X] Erstellen Sie ein Grafana-Dashboard Praktikumsblatt5, das auf einem Panel P1 die Up-Time von moni21 anzeigt.
- [X] Was genau beschreibt die Metrik node_cpu_seconds_total ? Geben Sie eine genaue Definition dieser Metrik. Von welchem Typ sind die Werte dieser Metrik?
Was ist bei diesem Typ zu beachten? Wo können bei diesem Datentyp überraschende Probleme auftreten? Von welcher Einheit sind die Werte?
Die Zeit in der die CPU im Systmmodus war in sec je Minue Systemzeit
- [X] Fragen Sie diese Metrik direkt über Prometheus-Graph ab. Was genau wird Ihnen hierbei von Prometheus geliefert?
???
- [X] Schränken Sie die Abfrage auf die CPU-Zeiten im User-Modus ein. Mit welchem Kommando machen Sie das? Was erhalten Sie? Wie sieht der (zeitliche)
sum by (mode) (rate(container_cpu_user_seconds_total[15s])) *100
- [X] Angezeigt werden die CPU-Sekunden für alle CPUs seit dem Start der jeweiligen Server. Diese Werte interessieren uns aber eigentlich nicht.
Wir wollen wissen, wie die CPUs ausgelastet sind. Das heißt, wir wollen wissen, wie stark die CPU-Zeiten ansteigen.
Steigt eine CPU-Zeit stark an, dann leistet diese CPU viel.
sum by (mode) (rate(container_cpu_user_seconds_total[15s])) *100
- [X] Fragen Sie den Range-Vektor für die letzten 60 Sekunden von den CPU-Zeiten im User-Modus eingeschränkt auf den host moni21 ab.
Mit welchem Kommando machen Sie das? Was erhalten Sie?
## Aufgabe 4 - Monitoring CPU-Last (Deeper Dive)
- [X] Wenden Sie auf den Range-Vektor aus Aufgabe 3e) die Prometheus-Funktion rate an. Was ist das Ergebnis auf der Console?
Was genau macht diese Funktion rate ? Wie sieht der Graph zu Ihrem Ergebnis aus?
- [X] Was ist der Unterschied zwischen der Funktion rate und irate ? Was ist ein typischer Anwendungsfall von irate?
Wann sollte irate nicht verwendet werden und warum nicht?
irate gibt den untrschied der letzten beiden Punkte aus, rate den gesamtwert seit beginn.
- [X] Berechnen Sie nun für jeden Server (nicht nur für moni21) die Gesamtauslastung der CPU im user-Mode.
Wie sieht Ihre Abfrage aus? Welche Funktion haben Sie hierzu verwendet? Wie "funktioniert" Ihre Abfrage?
Warum empfiehlt es sich nicht die Funktion sum zu verwenden, um die Gesamtauslastung zu berechnen?
Wie sieht der Graph zu Ihrem Ergebnis aus?
- [X] Erweitern Sie Ihr Grafana-Dashboard Praktikumsblatt5 mit einem Panel P2, das die Usermode-CPU-Lasten mit der rate-Funktion
und einem Panel P3, das die Usermode-CPU-Lasten mit der irate-Funktion berechnet .
- [X] Erweitern Sie Ihr Grafana-Dashboard Praktikumsblatt5 mit einem Panel P4, das nur für den Server moni21 die Usermode-CPU-Lasten
sowohl mit der rate-Funktion als auch mit der irate-Funktion berechnet. Wählen Sie für den Range-Bereich ein geeignetes Intervall!
Hiermit lassen sich die Ergebnisse dieser beiden Funktionen vergleichen.
Beantworten Sie die folgenden Fragen zum Reading 4 "PromQL" klar und präzise:
- [ ] Was ist eine Metrik? Welche Rolle spielen die Labels?
- [ ] Welche Metriktypen gibt es in Prometheus? Geben Sie ein Beispiel für jeden Metriktyp an.
- [ ] Was ist ein Instant Vektor?
- [ ] Was ist ein Range Vektor?