Zum Inhalt

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.

Grafana Fehleranalyse & Logging Dashboard

Hauptkomponenten:

  • Fehler-Rate über Zeit (Graph): Visualisiert die Anzahl von ERROR- und WARN-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-Level WARN geloggt, um das Fehler-Log frei von Hintergrundrauschen (z. B. fehlerhaften Crawler-Anfragen) zu halten. Echte Server-Fehler (5xx) werden strikt als ERROR erfasst.
  • Zentraler Log-Stream: Live-Anzeige aller eingehenden Logs aus den Namespaces odi-*, odw und keycloak, 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-service usw.).
  • 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.

  • 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 wie request_id, upstream_cluster, user_agent und response_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).

  • 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

  1. 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.
  2. Auto-Refresh aktivieren: Schalte bei Live-Deployments oder Wartungen das automatische Aktualisierungsintervall (z.B. 5s oder 10s) ein.
  3. Log-Zeile aufklappen: Klicke im Log-Stream auf eine fehlerhafte Zeile, um den vollständigen interaktiven JSON-Baum mit allen Details zu öffnen.