Request Tracing
Übersicht
Request Tracing ermöglicht es, detaillierte Informationen über jeden HTTP-Request zu erfassen, der eine Route durchläuft. Es dient als Troubleshooting-Tool wenn eine Route nicht wie erwartet funktioniert — statt zu raten warum ein Request fehlschlägt, sieht der Admin exakt was passiert: Methode, URI, Status-Code, Remote-IP und Response-Details.
Funktionsweise
Request Tracing basiert auf dem caddy-trace Plugin für Caddy. Wenn Tracing für eine Route aktiviert ist, wird ein trace-Handler in die Caddy-Handler-Chain eingefügt. Dieser Handler loggt für jeden Request zwei Einträge:
- Incoming Request: Methode, URI, Host, Remote-IP, User-Agent, Headers, Query-Parameter
- Outgoing Response: Status-Code, Response-Größe, Response-Headers
Die Trace-Einträge werden in Echtzeit im Debug-Tab des Edit-Route-Modals angezeigt, mit automatischem Refresh alle 3 Sekunden.
Handler-Position in der Route-Chain
1. defender (Bot-Blocker)
2. trace (Request-Tracing) ← loggt den gesamten Lifecycle
3. headers (Custom Headers)
4. rate_limit
5. mirror (Request Mirroring)
6. encode (Komprimierung)
7. reverse_proxy (Backend)
Konfiguration
Tracing aktivieren
- Route öffnen (Edit-Modal → Debug-Tab)
- Request Tracing Toggle aktivieren
- Route speichern
Trace-Einträge anzeigen
Im Debug-Tab erscheinen die Einträge automatisch (Auto-Refresh alle 3 Sekunden):
| Spalte | Beschreibung |
|---|---|
| Zeit | Zeitstempel des Requests (HH:MM:SS) |
| Methode | HTTP-Methode (GET, POST, PUT, DELETE, etc.) |
| URI | Angefragter Pfad (z.B. /api/data) |
| Status | HTTP-Status-Code mit Farbcodierung (Grün=2xx, Gelb=4xx, Rot=5xx) |
| Remote-IP | IP-Adresse des anfragenden Clients |
Anwendungsbeispiele
Route gibt 502 zurück
Tracing aktivieren, Request senden, im Debug-Tab erscheint z.B.:
21:45:54 GET / 502 10.8.0.3
Status 502 = Backend nicht erreichbar → Peer offline oder Port falsch.
Redirect-Schleife
Im Debug-Tab sieht man mehrere 302-Einträge hintereinander:
21:46:01 GET / 302 10.8.0.3
21:46:01 GET /login 302 10.8.0.3
21:46:01 GET / 302 10.8.0.3
Redirect-Schleife zwischen / und /login → Auth-Konfiguration prüfen.
Request kommt nicht an
Tracing aktivieren, Request senden — kein Eintrag im Debug-Tab. Der Request erreicht die Route gar nicht → DNS-Problem oder Caddy-Config prüfen.
Einschränkungen
- Nur HTTP-Routen: L4/TCP-Routen unterstützen kein Tracing
- Keine Persistenz: Trace-Daten werden nur in der Log-Datei gespeichert, nicht in der Datenbank
- Kein Export: Trace-Einträge können nicht als CSV/JSON exportiert werden
- Kein URI-Filter: Alle Requests an die Route werden getraced
- Performance: Bei hochfrequentierten Routen nur temporär aktivieren