Observability, Health Checks und Graceful Shutdown implementieren #12

Closed
opened 2026-07-17 09:05:50 +02:00 by frank · 1 comment
Owner

Teil von #1.

Ziel

Beide Betriebsmodi sind im Betrieb diagnostizierbar, ohne Secrets oder sensible Webinhalte offenzulegen, und fahren kontrolliert herunter.

Scope

  • Strukturierte Logs mit log/slog.
  • Konfigurierbare Level und Text-/JSON-Ausgabe.
  • Korrelationsfelder: MCP Request-ID sofern verfügbar, Tunnel Request-ID, Proxy-Identität und Dauer.
  • Redaction für Authorization, Cookie, Set-Cookie, Proxy-Authorization, Shared Keys und konfigurierbare Header.
  • Request-/Response-Bodies standardmäßig nie loggen.
  • Health:
    • liveness des Prozesses
    • readiness des MCP-Servers abhängig von einer gesunden Proxy-Verbindung
    • Status ohne interne Ziel- oder Secret-Details
  • Basis-Metriken über eine abstrahierte interne Schnittstelle, auch wenn ein Prometheus-Endpoint erst später kommt:
    • aktive Proxy-Verbindungen
    • In-Flight-Requests
    • Dauer und Fehler nach stabiler Kategorie
    • Reconnects, Auth-Fehler, Timeouts, Truncations und Policy-Denials
  • SIGINT/SIGTERM: neue Requests stoppen, laufende Requests bis Deadline drainen, Goaway senden, HTTP-Server Shutdown und Idle-Verbindungen schließen.
  • Panics an Servergrenzen abfangen, loggen und den betroffenen Request sicher fehlschlagen lassen.

Akzeptanzkriterien

  • Readiness ist false ohne Proxy und true mit gesunder Verbindung.
  • Shutdown beendet einen Idle-Prozess sofort und respektiert die Drain-Deadline bei laufenden Requests.
  • Tests bestätigen Redaction aller Standard-Sensitive-Header.
  • Logs sind maschinenlesbar und enthalten stabile Fehlercodes.
  • Keine Goroutine-Leaks nach wiederholtem Start/Stop in Tests.

Referenzen

Teil von #1. ## Ziel Beide Betriebsmodi sind im Betrieb diagnostizierbar, ohne Secrets oder sensible Webinhalte offenzulegen, und fahren kontrolliert herunter. ## Scope - Strukturierte Logs mit log/slog. - Konfigurierbare Level und Text-/JSON-Ausgabe. - Korrelationsfelder: MCP Request-ID sofern verfügbar, Tunnel Request-ID, Proxy-Identität und Dauer. - Redaction für Authorization, Cookie, Set-Cookie, Proxy-Authorization, Shared Keys und konfigurierbare Header. - Request-/Response-Bodies standardmäßig nie loggen. - Health: - liveness des Prozesses - readiness des MCP-Servers abhängig von einer gesunden Proxy-Verbindung - Status ohne interne Ziel- oder Secret-Details - Basis-Metriken über eine abstrahierte interne Schnittstelle, auch wenn ein Prometheus-Endpoint erst später kommt: - aktive Proxy-Verbindungen - In-Flight-Requests - Dauer und Fehler nach stabiler Kategorie - Reconnects, Auth-Fehler, Timeouts, Truncations und Policy-Denials - SIGINT/SIGTERM: neue Requests stoppen, laufende Requests bis Deadline drainen, Goaway senden, HTTP-Server Shutdown und Idle-Verbindungen schließen. - Panics an Servergrenzen abfangen, loggen und den betroffenen Request sicher fehlschlagen lassen. ## Akzeptanzkriterien - Readiness ist false ohne Proxy und true mit gesunder Verbindung. - Shutdown beendet einen Idle-Prozess sofort und respektiert die Drain-Deadline bei laufenden Requests. - Tests bestätigen Redaction aller Standard-Sensitive-Header. - Logs sind maschinenlesbar und enthalten stabile Fehlercodes. - Keine Goroutine-Leaks nach wiederholtem Start/Stop in Tests. ## Referenzen - Go slog: https://pkg.go.dev/log/slog - http.Server.Shutdown: https://pkg.go.dev/net/http#Server.Shutdown
Author
Owner

🤖 forge agent started

  • Agent: codex
  • Model: gpt-5.6-sol
  • Mode: pr
  • Trigger: assignee=agent|+5 mapped

Observability, Health Checks und Graceful Shutdown implementieren — Teil von #1.

🤖 **forge agent started** - Agent: `codex` - Model: `gpt-5.6-sol` - Mode: `pr` - Trigger: `assignee=agent|+5 mapped` Observability, Health Checks und Graceful Shutdown implementieren — Teil von #1.
frank 2026-07-17 14:27:03 +02:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
ai-tools/private-proxy-mcp#12
No description provided.