Grafana Dashboards & Monitoring¶
Grafana ist die zentrale Visualisierungs-Plattform der Open Data Infrastruktur (ODI) zur Überwachung des Systemzustands, der Auslastung und der Fehleranalyse in den Umgebungen Stage und Produktion.
Ordner-Konzept¶
Die Dashboards sind in Grafana nach der Frage sortiert, die man beantworten will – nicht nach Technik. Stage und Produktion haben dieselbe Struktur.
| Ordner | Frage | Zeithorizont | Zielgruppe |
|---|---|---|---|
| Startseite („ODI – Übersicht“) | „Ist alles grün?“ | jetzt | alle |
| Betrieb – Lagebild | „Wie geht es dem System gerade?“ | Minuten bis Stunden | Betrieb |
| Betrieb – Fehleranalyse | „Was ist bei diesem Fehler passiert?“ | einzelner Vorfall | Support, Entwicklung |
| Betrieb – Komponenten | „Wie geht es meinem Fachbereich?“ | jetzt | Fachteams |
| Reports | „Wie wird die Plattform genutzt?“ | Tage bis Wochen, aufsummiert | Projektleitung, Fachseite |
Dieselbe Tabelle steht in Grafana als Wegweiser (einklappbare Zeile am Ende der Startseite). Jedes Dashboard trägt seinen Ordner-Zweck in der Beschreibung und verlinkt oben rechts zurück zum Wegweiser.
Die Ordner haben feste uids und damit in Stage und Produktion dieselben URLs: /dashboards/f/betrieb-lagebild, /dashboards/f/betrieb-fehleranalyse, /dashboards/f/betrieb-komponenten, /dashboards/f/reports.
Die Startseite beginnt mit einer Ampel-Zeile: CPU, Memory, nicht laufende Pods, Restarts, Gateway-Requests, 5xx-Quote und Latenz p95 der letzten Stunde sowie Volumes über 75 %. Ein Klick auf eine Kachel öffnet das passende Detail-Dashboard.
Neues Dashboard anlegen
Ein neues Dashboard kommt in den Ordner, dessen Frage es beantwortet. Die uid folgt dem Präfix des Ordners: betrieb-…, fach-… bzw. report-…, mit Versions-Suffix -v1. Die Dashboards werden aus dem Git-Repo provisioniert (je Ordner eine ConfigMap grafana.dashboard-<ordner>.configmap.yaml unter clusters/<env>/grafana-loki/grafana/). Änderungen in der Grafana-Oberfläche werden beim nächsten Provisioning überschrieben.
Übersicht der Dashboards¶
1. Dashboard: Fehleranalyse & Logging¶
Das Fehleranalyse-Dashboard ist die primäre Anlaufstelle für den Support und den operativen Betrieb bei der Identifikation und Analyse von Störungen.
Direktlinks zum Fehleranalyse & Request ID Suche Dashboard
Hauptkomponenten:¶
- Fehler-Rate über Zeit (Graph): Visualisiert die Anzahl von
ERROR- undWARN-Einträgen pro Service im zeitlichen Verlauf. - HTTP Status-Codes: Trennung zwischen kritischen Server-Fehlern (
5xx) und Client-Fehlern (4xx). !!! note "Log-Level bei unbekannten Routen (404)" Unbekannte Routen und nicht gefundene Ressourcen (404 Not Found) werden gezielt mit dem Log-LevelWARNgeloggt, um das Fehler-Log frei von Hintergrundrauschen (z. B. fehlerhaften Crawler-Anfragen) zu halten. Echte Server-Fehler (5xx) werden strikt alsERRORerfasst. - Zentraler Log-Stream: Live-Anzeige aller eingehenden Logs aus den Namespaces
odi-*,odwundkeycloak, filterbar nach Namespace, Service, Log-Level und Freitext. Dienste ohne JSON-Ausgabe bekommen ihr Level von Promtail (siehe Dienste ohne JSON-Logging). - Request ID Filter (Correlation Tracing): Eingabefeld zur Filterung des gesamten Dashboards auf eine spezifische
requestId(siehe Fehleranalyse & Request ID).
2. Service & Cluster Monitoring¶
Diese Dashboards bieten Echtzeit-Einblicke in die Systemleistung und Ressourcennutzung der Kubernetes-Cluster:
- Pod Resource Usage: Auslastung von CPU, Arbeitsspeicher (Memory) und Netzwerk-I/O aller Microservices (
odi-metadata-service,odi-ckan-service,odi-staging-backend,odi-schema-backend,odi-masterportal-serviceusw.). - HTTP Request Rate & Latency: Durchsatz (Requests/sec) und Antwortzeiten (Percentiles p50, p90, p99) pro Endpunkt.
- Container Restarts & Uptime: Früherkennung von OOM-Kills (Out Of Memory) oder Crash-Loops einzelner Microservices.
3. Dashboard: Gateway-Logs (Envoy)¶
Im Ordner Betrieb – Fehleranalyse zeigt dieses Dashboard die Access-Logs des Envoy Gateway als Log-Stream, aufgebaut wie die Request-ID-Suche.
Direktlinks
- 🚀 Produktion (Prod): https://grafana.odi.schleswig-holstein.de/d/betrieb-gateway-logs-v1
- 🧪 Staging (Stage): https://grafana.odi-stage.schleswig-holstein.de/d/betrieb-gateway-logs-v1
- Requests nach Status: gestapelte Balken pro Statusklasse über die Zeit.
- Access-Logs: eine lesbare Zeile pro Request (
Status Methode Host+Pfad · Dauer · Client-IP), rot = 5xx, gelb = 4xx bzw. abgebrochen. Aufklappen zeigt alle Felder wierequest_id,upstream_cluster,user_agentundresponse_flags. - Gateway-Controller-Logs: eingeklappte Zeile mit den Logs des Envoy-Gateway-Controllers (Konfiguration, Zertifikate, Routen).
Filter: Host, Upstream und Request-ID (Regex), Methode und Status (Auswahl), Freitext-Suche.
4. Report: Gateway-Requests (Envoy)¶
Der Report im Ordner Reports wertet alle Requests aus, die über das Envoy Gateway (Gateway API) in den Cluster kommen. Quelle sind die JSON-Access-Logs des Gateways in Loki (Aufbewahrung 90 Tage).
Direktlinks
- 🚀 Produktion (Prod): https://grafana.odi.schleswig-holstein.de/d/report-gateway-requests-v1
- 🧪 Staging (Stage): https://grafana.odi-stage.schleswig-holstein.de/d/report-gateway-requests-v1
- Kennzahlen: Requests, 4xx- und 5xx-Quote, Latenz p95, ausgelieferte Datenmenge, Unique Client-IPs.
- Verläufe: Requests nach Statusklasse und Methode, Latenz-Perzentile (p50/p95/p99), Datenvolumen.
- Pro Host / pro Upstream: Requests, Fehlerquoten, p95 und Datenmenge je Domain bzw. je HTTPRoute.
- Top-Listen: langsamste Pfade, Pfade mit den meisten Fehlern, User-Agents, Envoy-Fehlerflags (z. B.
UF= Upstream nicht erreichbar,UT= Upstream-Timeout). - Rohdaten: gefilterte Requests als Tabelle; ein Klick auf die Request-ID öffnet die Request-ID-Suche.
Filter: Host und Upstream als Regex (z. B. schema.*), Methode und Status als Auswahl.
Pfad-Tabellen zeigen nur die letzten 24 Stunden
Über längere Zeiträume gibt es am Gateway zu viele verschiedene Pfade (Scanner, gehashte Asset-Dateien, IDs in der URL), als dass Loki sie gruppieren könnte. Die Pfad-Tabellen zählen daher fest die letzten 24 h, nur eigene Hosts (*.schleswig-holstein.de), ohne statische Dateien und Query-String. Zahlen und UUIDs im Pfad werden zu :id zusammengefasst.
Abgrenzung: Für den Live-Blick auf Angriffe und Fehler ist HTTP-Traffic & Security im Ordner Betrieb – Lagebild gedacht. Der Report zeigt die Nutzung über Tage und Wochen.
Zugänge & Umgebungen¶
Grafana ist für befugte Personen über die internen Monitoring-Ingresses der jeweiligen Umgebung erreichbar:
| Umgebung | Grafana Hauptseite | Direktlink: Fehleranalyse (Request ID Suche) |
|---|---|---|
| Produktion (Prod) | https://grafana.odi.schleswig-holstein.de |
🚀 Request ID Suche Dashboard (Prod) |
| Staging (Stage) | https://grafana.odi-stage.schleswig-holstein.de |
🧪 Request ID Suche Dashboard (Stage) |
Tipps zur effizienten Nutzung¶
- Zeitfenster eingrenzen: Verwende oben rechts in Grafana ein enges Zeitfenster (z. B. Last 15 minutes oder den genauen Zeitraum eines gemeldeten Fehlers), um relevante Log-Streams schnell einzugrenzen.
- Auto-Refresh aktivieren: Schalte bei Live-Deployments oder Wartungen das automatische Aktualisierungsintervall (z.B. 5s oder 10s) ein.
- Log-Zeile aufklappen: Klicke im Log-Stream auf eine fehlerhafte Zeile, um den vollständigen interaktiven JSON-Baum mit allen Details zu öffnen.
