Lektion 6 12 Min.

Debugging in der Produktion

Produktionsprobleme debuggen — strukturiertes Logging, Error-Tracking, Monitoring und KI-gestuetzte Log-Analyse, wenn du Bugs nicht lokal reproduzieren kannst.

🔄 Quick Recall: In der vorherigen Lektion hast du haeufige Bug-Muster kennengelernt — Off-by-One, Null-Referenzen, Race Conditions, Async-Fehler. Du weisst jetzt, wie du Bugs anhand ihrer Symptome erkennen kannst. Jetzt debuggen wir in der Umgebung, in der du keine Breakpoints setzen und keine Print-Statements einfuegen kannst: Produktion.

Produktions-Debugging unterscheidet sich grundlegend vom lokalen Debugging. Du kannst keinen Debugger anschliessen, keine Print-Statements einfuegen und das Problem nicht auf Knopfdruck reproduzieren. Deine Werkzeuge sind Logs, Error-Tracking, Monitoring und die Spuren, die der Bug hinterlassen hat.

Strukturiertes Logging

Unstrukturiertes Log (schwer zu analysieren):

Error processing request for user Max

Strukturiertes Log (abfragbar und analysierbar):

{"level": "error", "timestamp": "2026-02-27T08:15:23Z", "service": "api",
 "action": "process_order", "user_id": "usr_123", "order_id": "ord_456",
 "error": "InsufficientBalance", "balance": 45.50, "required": 89.99,
 "duration_ms": 234}

Der Unterschied: Unstrukturierte Logs sind Freitext, den du manuell durchlesen musst. Strukturierte Logs sind maschinenlesbar — du kannst sie filtern, gruppieren und von KI analysieren lassen.

Was auf welchem Level loggen:

LevelWann loggenWas einschliessen
ERROROperation fehlgeschlagenException, Stack Trace, Kontext (Nutzer, Request, Daten)
WARNUnerwartet, aber behandeltWas unerwartet war, welcher Fallback genutzt wurde
INFOWichtige GeschaeftsereignisseRequest empfangen/abgeschlossen, Meilensteine, Timing
DEBUGDetaillierte Diagnose-InfosVariablenwerte, Entscheidungspfade (in Produktion deaktivieren)

Quick Check: Warum sollte DEBUG-Level in Produktion deaktiviert sein? (Antwort: DEBUG-Logs erzeugen enorme Datenmengen, die (a) Speicherkosten verursachen, (b) die Performance der Anwendung beeintraechtigen koennen, (c) wichtige Error-Logs in einer Flut von Informationen untergehen lassen und (d) moeglicherweise sensible Daten wie Variablenwerte loggen.)

Error-Tracking

Error-Tracking-Tools (Sentry, Bugsnag, Datadog) erfassen Exceptions mit Kontext:

Erfasste DatenWarum wichtig
Stack TraceWo im Code der Fehler aufgetreten ist
Request-KontextWelche Eingabe den Fehler ausgeloest hat
Nutzer-InfoWer betroffen ist (anonymisiert)
UmgebungBrowser, OS, API-Version
HaeufigkeitWie viele Nutzer betroffen, Trend steigend oder fallend?
Erstes/letztes AuftretenWann hat das angefangen? Korreliert mit Deployments?

KI-Prompt fuer Fehler-Untersuchung:

„Mein Error-Tracking zeigt diesen wiederkehrenden Fehler: [FEHLERMELDUNG + STACK TRACE]. Er betrifft [N] Nutzer pro Stunde. Er begann am [DATUM]. Hier ist das Deployment-Changelog: [AENDERUNGEN]. Analysiere: (1) Welche Code-Aenderung hat das wahrscheinlich eingefuehrt? (2) Was ist die wahrscheinliche Ursache? (3) Was sollte ich zuerst untersuchen?"

KI-gestuetzte Log-Analyse

KI-Prompt fuer Mustererkennung:

„Hier sind Logs von 50 fehlgeschlagenen Requests: [LOGS]. Und hier 10 erfolgreiche Requests zum Vergleich: [LOGS]. Identifiziere: (1) Welche Muster haben die fehlgeschlagenen Requests gemeinsam? (2) Was unterscheidet fehlgeschlagene von erfolgreichen Requests? (3) Was ist die wahrscheinlichste Ursache? (4) Welches zusaetzliche Logging wuerde bei der Diagnose helfen?"

Debugging ohne Reproduktion

Wenn du einen Bug lokal nicht reproduzieren kannst:

TechnikWann einsetzen
Log-AnalyseFehlgeschlagene vs. erfolgreiche Request-Logs vergleichen
Error-TrackingStack Trace, Kontext und Haeufigkeit analysieren
Feature FlagsFeatures schrittweise ein-/ausschalten zur Isolation
Canary DeploymentFix an kleinem Prozentsatz deployen, ueberwachen
KorrelationsanalysePruefen ob Fehler mit Tageszeit, Nutzertyp oder Region korrelieren

Quick Check: Dein Monitoring zeigt, dass die Fehlerrate um genau 14:15 Uhr von 0,1% auf 5% gestiegen ist. Was ist der schnellste Weg, die Ursache zu finden? (Antwort: Pruefen, was sich um 14:15 geaendert hat: (1) Gab es ein Deployment? CI/CD-Pipeline checken. (2) Wurde eine Dependency aktualisiert? Paketversionen pruefen. (3) Hat ein externer Service sich geaendert? Status-Seiten von Drittanbietern checken. (4) Hat sich das Traffic-Muster geaendert? Load-Metriken pruefen. Der exakte Zeitpunkt schraenkt die Untersuchung dramatisch ein.)

Key Takeaways

  • Strukturiertes Logging (JSON-Format mit Zeitstempel, Level, Kontext, Dauer) ist das Fundament von Produktions-Debugging — unstrukturierter Text ist bei 10.000+ Eintraegen kaum durchsuchbar, waehrend strukturierte Logs KI-Analyse und automatische Mustererkennung ermoeglichen
  • Error-Tracking-Tools erfassen, was Print-Statements nicht koennen: Stack Traces mit vollem Kontext (Nutzer, Request, Umgebung), Haeufigkeitstrends und Korrelation mit Deployments — generische „Internal Server Error"-Meldungen bedeuten, dass dein Error-Tracking mehr Detail braucht
  • KI ist stark bei Log-Analyse: fehlgeschlagene und erfolgreiche Request-Logs zusammen einfuegen, und KI findet Muster (gemeinsame Merkmale, fehlende Felder, Timing-Korrelationen), die manuell Stunden dauern wuerden

Up Next

In der naechsten Lektion lernst du die Ursachenanalyse — die 5-Warum-Methode, um das eigentliche Problem zu finden und zu beheben, statt nur Symptome zu flicken.

Wissenscheck

1. Nutzer melden, dass deine App in Produktion 'langsam' ist. Lokal laeuft alles schnell. Dein Logging zeigt nur 'Request empfangen' und 'Response gesendet'. Wie diagnostizierst du das Performance-Problem?

2. Dein Error-Tracking-Tool (Sentry, Bugsnag o.Ae.) zeigt 500 Fehler pro Stunde auf einem Endpoint. Die Fehlermeldung: 'Internal Server Error'. Mehr Informationen hast du nicht. Was ist dein erster Schritt?

3. Du hast Logs von 10.000 Requests. 50 davon sind fehlgeschlagen, mit verschiedenen Fehlermeldungen. Du musst das gemeinsame Muster finden. Wie hilft KI hier?

Beantworte alle Fragen zum Prüfen

Erst das Quiz oben abschließen

Passende Skills