Observability-Dashboards mit Claude konfigurieren: PromQL, Panels und Alert-Schwellenwerte
AI generated
Claude
>_
Claude AI · Observability · Grafana & Prometheus
Observability-Dashboards mit Claude konfigurieren
Von generiertem Panel-JSON bis zu Alert-Schwellenwerten ohne Alert-Fatigue

Ein durchdachtes Observability-Dashboard entsteht selten im ersten Anlauf. Meistens wächst die Metrik-Landschaft organisch, Panels werden hastig zusammengeklickt und Alert-Schwellenwerte irgendwann geraten, weil niemand Zeit hatte, sie sauber herzuleiten. Claude ersetzt das Domänenwissen des Teams nicht, liefert aber in Sekunden Panel-Entwürfe, PromQL-Reviews und Schwellenwert-Vorschläge, die als solider Ausgangspunkt für die eigentliche fachliche Entscheidung dienen.

13 Min. Lesezeit Grafana-JSON generieren PromQL-Review Alert-Schwellenwerte Alert-Fatigue vermeiden

1. Warum Dashboards und Alerts so oft hinterherhinken

Observability-Setups wachsen in den meisten Teams organisch mit den Services mit. Ein neuer Endpunkt bekommt eine Handvoll Metriken, jemand baut schnell ein Panel dazu, und Monate später kann niemand mehr erklären, warum der Latenz-Alert ausgerechnet bei 800 Millisekunden auslöst. Das Werkzeug ist selten das Problem, Grafana und Prometheus sind ausgereift und gut dokumentiert, sondern die fehlende Zeit, Dashboards und Schwellenwerte sauber durchzudenken, bevor der nächste Sprint beginnt und die nächste Baustelle ruft.

Genau hier lohnt sich der produktive Einsatz von Claude als schneller Sparringspartner. Er liefert Panel-Entwürfe, prüft bestehende PromQL-Ausdrücke auf typische Fehler und schlägt Schwellenwerte basierend auf mitgelieferten historischen Werten vor. Die eigentliche Entscheidung, welche Signale für einen konkreten Service wirklich relevant sind, bleibt weiterhin beim Team, aber der Weg dorthin wird deutlich kürzer, weil das mühsame erste Grundgerüst nicht mehr von Hand getippt werden muss.

2. Grafana-Dashboard-JSON aus einer Beschreibung generieren lassen

Der naheliegendste Einstieg ist, Claude eine textuelle Beschreibung der gewünschten Panels zu geben und daraus valides Dashboard-JSON erzeugen zu lassen, das sich direkt per Provisioning oder manuellem Import in Grafana laden lässt. Entscheidend ist dabei, ausreichend Kontext mitzuliefern: welche Datenquelle verwendet wird, wie die Metriken tatsächlich heißen und welche Grafana-Schema-Version im Einsatz ist, damit die generierten Panels ohne Nacharbeit funktionieren und keine veralteten Feldnamen enthalten.

In der Praxis funktioniert das am besten iterativ. Zuerst lässt man ein Grundgerüst mit den wichtigsten Panels generieren, importiert das JSON lokal in eine Test-Instanz und gibt danach konkretes Feedback zu einzelnen Panels, etwa dass die Einheit falsch ist oder eine Legende fehlt. Claude passt dann gezielt genau diesen Teil des JSON an, ohne den Rest des Dashboards zu verändern, was gerade bei größeren Dashboards mit vielen Reihen deutlich schneller geht als eine komplette Neugenerierung.


{
  "title": "Checkout-Service Überblick",
  "panels": [
    {
      "type": "timeseries",
      "title": "Request-Latenz p95",
      "targets": [
        {
          "expr": "histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{service=\"checkout\"}[5m])) by (le))",
          "legendFormat": "p95 Latenz"
        }
      ],
      "fieldConfig": {
        "defaults": { "unit": "s" }
      }
    }
  ]
}

3. PromQL-Queries von Claude prüfen und verbessern lassen

Ein zweiter, oft unterschätzter Einsatzbereich ist das reine Query-Review. Viele PromQL-Ausdrücke, die man in gewachsenen Dashboards findet, verwenden rate() mit einem viel zu kurzen Zeitfenster, vergessen die Aggregation über Labels mit by (le) vor histogram_quantile() oder mischen Counter- und Gauge-Metriken in derselben Formel, was zu irreführenden Kurven führt. Claude erkennt solche Muster zuverlässig, wenn man die vorhandenen Queries einfach einfügt und um eine kurze Erklärung der Metrik-Typen bittet.

Besonders wertvoll ist das bei Übernahme fremder Dashboards, etwa nach einem Teamwechsel oder bei der Migration eines Community-Dashboards aus dem Grafana-Marktplatz. Statt jede Query mühsam manuell nachzuvollziehen, lässt man Claude eine Liste von Auffälligkeiten erstellen, priorisiert nach Wahrscheinlichkeit eines echten Fehlers, und arbeitet diese Liste gezielt ab, statt blind zu vertrauen, dass ein importiertes Dashboard schon richtig sein wird.


# Vorher: falsches Zeitfenster, keine Aggregation nach le
rate(http_request_duration_seconds_bucket[30s])

# Nachher, nach Claude-Review: korrektes Fenster
# und korrekte Aggregation vor histogram_quantile
histogram_quantile(
  0.95,
  sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service)
)

4. Sinnvolle Alert-Schwellenwerte durchdenken statt raten

Statische Schwellenwerte wie ein fester Wert von 500 Millisekunden für die Latenz sind fast immer ein Kompromiss aus Bauchgefühl und Zeitdruck. Sinnvoller ist es, Claude die tatsächliche Verteilung der letzten Wochen zu geben, etwa als exportierte CSV-Datei mit stündlichen Perzentilwerten, und daraus einen Schwellenwert ableiten zu lassen, der sich am realen Normalzustand orientiert statt an einer runden Zahl. Ein Latenz-Alert, der beim 99. Perzentil der letzten dreißig Tage plus einem Sicherheitsaufschlag ansetzt, löst deutlich seltener grundlos aus als ein geratener Fixwert.

Ebenso hilfreich ist es, Claude explizit nach dem Trade-off zwischen Sensitivität und Reaktionszeit fragen zu lassen. Ein zu enger Schwellenwert erzeugt ständig Fehlalarme bei normalen Lastspitzen, ein zu weiter Schwellenwert lässt echte Probleme lange unbemerkt. Claude kann für unterschiedliche Metrik-Typen konkrete Vorschläge liefern, etwa Perzentil-basierte Schwellenwerte für Latenz und trendbasierte Vorhersagen für Ressourcenverbrauch, statt überall dieselbe starre Prozentregel anzuwenden.


groups:
  - name: checkout-latency
    rules:
      - alert: CheckoutLatencyHigh
        expr: |
          histogram_quantile(0.95,
            sum(rate(http_request_duration_seconds_bucket{service="checkout"}[5m])) by (le)
          ) > 0.9
        for: 10m
        labels:
          severity: warning
        annotations:
          summary: "Checkout p95-Latenz über historischem Normalwert"

5. Alert-Fatigue vermeiden: weniger, aber relevantere Alerts

Alert-Fatigue entsteht, wenn ein Team über Wochen mit Alarmen bombardiert wird, von denen die meisten harmlos sind, bis irgendwann auch der echte Vorfall im Rauschen untergeht und niemand mehr sofort reagiert. Ein bewährter Schritt ist, Claude die komplette Liste aller aktiven Alert-Regeln vorzulegen und nach Auffälligkeiten fragen zu lassen: doppelte Alerts, die dieselbe Ursache beschreiben, Alerts ohne klare Handlungsanweisung in der Annotation oder Regeln, die seit Monaten nie ausgelöst haben und vermutlich falsch konfiguriert sind.

Aus dieser Analyse lässt sich meist eine konkrete Konsolidierungsliste ableiten, etwa mehrere separate Fehlerquoten-Alerts pro Endpunkt zu einem einzigen, nach Service gruppierten Alert mit Label-basierter Aufschlüsselung zusammenzufassen. Wichtig ist, jede Konsolidierung im Team gegenzuprüfen, denn Claude kennt die organisatorischen Gründe für manche scheinbar redundante Regel nicht automatisch, etwa wenn zwei Teams bewusst getrennte Alerts für denselben Service benötigen, weil sie unterschiedliche Verantwortungsbereiche haben.

6. Multi-Window-Multi-Burn-Rate-Alerts mit Claude entwerfen

Ein Muster aus dem Google-SRE-Workbook, das in vielen Teams noch ungenutzt bleibt, sind Multi-Window-Multi-Burn-Rate-Alerts für SLO-Fehlerbudgets. Statt eines einzelnen starren Schwellenwerts kombiniert man ein kurzes und ein langes Zeitfenster: Nur wenn beide Fenster gleichzeitig eine erhöhte Burn-Rate zeigen, löst der Alert wirklich aus. Das reduziert Fehlalarme durch kurze Ausreißer drastisch, ohne die Reaktionszeit bei echten, anhaltenden Problemen zu verschlechtern.

Die Formeln dafür sind nicht komplex, aber fehleranfällig beim ersten Selbstschreiben, insbesondere die korrekte Berechnung der Burn-Rate aus dem Fehlerbudget und der SLO-Zielgröße. Claude eignet sich gut, um aus einer gegebenen SLO-Definition, etwa 99,9 Prozent Erfolgsquote über 30 Tage, direkt die passenden Prometheus-Regeln für mehrere Fenster und Schweregrade abzuleiten, inklusive der üblichen Kombination aus einem 5-Minuten- und einem 1-Stunden-Fenster für kritische Alerts sowie einem 6-Stunden- und 3-Tage-Fenster für weniger dringende Warnungen.


- alert: ErrorBudgetBurnRateCritical
  expr: |
    (
      sum(rate(http_requests_total{status=~"5..",service="checkout"}[5m]))
      /
      sum(rate(http_requests_total{service="checkout"}[5m]))
    ) > (14.4 * 0.001)
    and
    (
      sum(rate(http_requests_total{status=~"5..",service="checkout"}[1h]))
      /
      sum(rate(http_requests_total{service="checkout"}[1h]))
    ) > (14.4 * 0.001)
  labels:
    severity: critical

7. Dashboard-Varianten für unterschiedliche Zielgruppen ableiten

Ein technisch tiefes SRE-Dashboard mit zwanzig Panels ist für eine Führungskraft, die einmal täglich einen kurzen Blick auf die Systemgesundheit werfen möchte, wenig hilfreich. Statt ein zweites Dashboard komplett von Hand nachzubauen, lässt sich Claude bitten, aus dem bestehenden, detaillierten Dashboard-JSON eine reduzierte Variante mit nur den vier oder fünf aussagekräftigsten Panels abzuleiten, ergänzt um verständlichere Titel ohne interne Fachbegriffe.

Dasselbe Prinzip funktioniert auch umgekehrt: aus einem einfachen Überblicksdashboard eine detailliertere Debugging-Variante für den nächsten Incident ableiten, mit zusätzlichen Panels für einzelne Instanzen, Datenbankverbindungspools oder Warteschlangenlängen. Weil die Grundstruktur des JSON dabei erhalten bleibt, lassen sich beide Varianten parallel pflegen, ohne dass Änderungen an der einen Version manuell in die andere übertragen werden müssen.

8. Claude Code direkt im Grafana-Provisioning-Repository einsetzen

Teams, die Dashboards und Alerts als Code in einem Git-Repository mit Grafana-Provisioning verwalten, profitieren davon, Claude Code direkt in diesem Repository arbeiten zu lassen, statt JSON-Schnipsel manuell zwischen einem Chat-Fenster und der Codebasis hin und her zu kopieren. Claude Code sieht dann die bereits vorhandenen Dashboards, kann den etablierten Stil übernehmen und neue Panels konsistent zu den bestehenden benennen, statt bei jedem neuen Dashboard wieder bei null anzufangen.

Der Workflow bleibt dabei bewusst überprüfbar: Claude Code ändert die Dateien im Arbeitsverzeichnis, das Team sieht den vollständigen Diff über das übliche Versionskontrollsystem, bevor irgendetwas committet oder gar in die produktive Grafana-Instanz deployt wird. Gerade bei Alert-Regeln, deren Fehlkonfiguration im schlimmsten Fall dazu führt, dass niemand mehr benachrichtigt wird, ist dieser Zwischenschritt der Code-Review nicht verhandelbar.


cd observability-as-code
claude "Aktualisiere alerts/checkout.yaml: füge eine
Multi-Window-Burn-Rate-Regel für das 99,9-Prozent-SLO hinzu,
im gleichen Stil wie alerts/payment.yaml"

git diff alerts/checkout.yaml
# Review, dann committen
git add alerts/checkout.yaml
git commit -m "Burn-Rate-Alert für Checkout-SLO ergänzen"

9. Grenzen: Claude kennt euer System nicht automatisch

Claude kennt weder die tatsächlichen Metrik-Namen eures Systems noch die reale Verteilung eurer Latenzwerte, solange diese Informationen nicht explizit mitgegeben werden. Ohne konkreten Kontext generiert das Modell plausibel aussehende, aber möglicherweise falsche Metrik-Bezeichnungen oder Schwellenwerte, die an keiner realen Beobachtung hängen. Jede generierte Query und jeder vorgeschlagene Schwellenwert muss deshalb gegen echte Daten geprüft werden, bevor er produktiv scharf geschaltet wird.

Bewährt hat sich ein gestufter Rollout: neue Alert-Regeln zunächst im reinen Beobachtungsmodus ohne Benachrichtigung laufen lassen, eine Woche lang das Auslöseverhalten gegen echte Betriebsdaten beobachten und erst danach die tatsächliche Alarmierung aktivieren. Claude liefert den fachlich fundierten Startpunkt und beschleunigt die Erstellung erheblich, die Verantwortung für die tatsächliche Freigabe und die endgültige Kalibrierung bleibt aber beim Team, das die Konsequenzen eines Fehlalarms oder eines verpassten echten Vorfalls trägt.

Alert-Typ Empfohlener Schwellenwert-Ansatz Zeitfenster Risiko bei zu enger Schwelle
Latenz p99 Historisches 95. Perzentil der letzten 30 Tage plus Puffer 5 bis 10 Minuten Ständige Fehlalarme bei normalen Lastspitzen
Fehlerquote SLO-basierte Burn-Rate statt fixem Prozentwert Kurzfenster 5 Minuten, Langfenster 1 Stunde Schleichende Qualitätsverschlechterung bleibt unbemerkt
Speicherauslastung Trendbasierte Vorhersage statt starrem Prozentwert 30 bis 60 Minuten Alarm erst wenn bereits Speicherknappheit droht
Warteschlangenlänge Verhältnis zur Verarbeitungsrate statt Absolutwert 10 Minuten Alarm ignoriert saisonale Lastschwankungen
Sättigung von CPU und IO Kombination aus Schwelle und Mindestdauer 15 Minuten Kurzfristige Spitzen lösen unnötige Eskalation aus

Mironsoft

KI-gestützte Entwicklung, Agenten-Workflows und Team-Prozesse

Claude oder andere KI-Tools im Team einsetzen, aber ohne klaren Workflow?

Wir richten KI-gestützte Entwicklungs-Workflows für Teams ein, von CLAUDE.md-Konventionen über Subagenten-Strategien bis zu Code-Review-Prozessen, die menschliche Kontrolle und KI-Tempo verbinden.

Workflow-Setup

CLAUDE.md, Projektkonventionen und Tool-Berechtigungen für das Team sauber einrichten.

Agenten-Strategie

Subagenten- und Automatisierungs-Workflows für wiederkehrende Entwicklungsaufgaben aufbauen.

Team-Onboarding

Entwickler im produktiven, sicheren Umgang mit KI-Coding-Assistenten schulen.

10. Zusammenfassung

Observability-Dashboards mit Claude: Häufige Fragen

Dashboard-JSON

Claude generiert Grundgerüste aus Beschreibungen, das Team verfeinert Panels und Einheiten iterativ.

PromQL-Review

Claude findet typische Fehler wie falsche rate-Fenster oder fehlende Aggregation vor histogram_quantile.

Schwellenwerte

Historische Perzentile und SLO-Burn-Raten statt geratener Prozentwerte.

Alert-Fatigue

Weniger, aber aussagekräftigere Alerts durch Konsolidierung und mehrstufige Burn-Rate-Fenster.

11. FAQ: Observability-Dashboards mit Claude: Häufige Fragen

1Kann Claude vollständige Grafana-Dashboards komplett eigenständig bauen?
Claude generiert ein valides Grundgerüst aus einer Beschreibung, benötigt dafür aber die tatsächlichen Metrik-Namen und die verwendete Grafana-Schema-Version. Die Feinabstimmung von Einheiten, Legenden und Schwellenwerten sollte danach immer gegen echte Daten geprüft werden.
2Wie liefere ich Claude genug Kontext für realistische PromQL-Queries?
Am zuverlässigsten funktioniert es, die tatsächlichen Metrik-Namen aus Prometheus, ein Beispiel für bestehende Queries im Projekt und die relevanten Label-Namen mitzugeben, statt Claude raten zu lassen, wie eure Metriken heißen könnten.
3Was ist der häufigste PromQL-Fehler, den Claude im Review findet?
Am häufigsten sind zu kurze Zeitfenster bei rate-Berechnungen und fehlende Aggregation nach dem le-Label vor histogram_quantile, wodurch Perzentilwerte falsch oder gar nicht berechnet werden.
4Wie hilft Claude gegen Alert-Fatigue konkret?
Claude analysiert die vorhandene Alert-Liste auf Duplikate, fehlende Handlungsanweisungen und nie ausgelöste Regeln und schlägt eine konkrete Konsolidierung vor, die das Team anschließend fachlich gegenprüft.
5Was sind Multi-Window-Multi-Burn-Rate-Alerts?
Ein Alert-Muster aus dem Google-SRE-Workbook, bei dem ein kurzes und ein langes Zeitfenster gleichzeitig eine erhöhte Fehlerbudget-Burn-Rate zeigen müssen, bevor ein Alert auslöst. Das reduziert Fehlalarme durch kurze Ausreißer erheblich.
6Sollte ich Claude generierte Alert-Schwellenwerte sofort produktiv scharf schalten?
Nein. Empfohlen ist ein gestufter Rollout: neue Regeln zunächst ohne Benachrichtigung im Beobachtungsmodus laufen lassen, das reale Auslöseverhalten eine Weile beobachten und erst danach die Alarmierung aktivieren.
7Kann Claude Code direkt in einem Grafana-Provisioning-Repository arbeiten?
Ja, Claude Code kann bestehende Dashboard- und Alert-Dateien im Repository lesen, den etablierten Stil übernehmen und Änderungen als normalen Diff vorschlagen, der vor dem Commit im Team geprüft wird.
8Wie leite ich aus einem detaillierten SRE-Dashboard eine einfache Übersicht ab?
Claude kann aus dem bestehenden Dashboard-JSON eine reduzierte Variante mit den wichtigsten Panels und verständlicheren Titeln ableiten, ohne dass das Dashboard komplett neu gebaut werden muss.
9Woher weiß Claude, welcher Schwellenwert für meinen Service sinnvoll ist?
Das weiß Claude nicht automatisch. Erst wenn historische Messwerte, etwa als exportierte Perzentilwerte der letzten Wochen, mitgegeben werden, kann ein am realen Normalzustand orientierter Vorschlag entstehen.
10Ersetzt Claude die fachliche SRE-Erfahrung im Team?
Nein. Claude beschleunigt das Erstellen von Grundgerüsten, Reviews und Vorschlägen erheblich, die Entscheidung über tatsächliche Relevanz, Priorität und Freigabe von Alerts bleibt Aufgabe des Teams mit seinem Domänenwissen.