Observability, Runbooks & Betrieb
Ein Enterprise-System ist erst fertig, wenn Betrieb und Fehlerdiagnose mitgedacht sind.
LogsMetricsTracesRunbooks
Signale
| Signal | Antwortet auf |
|---|---|
| Logs | Was ist im Prozess passiert? |
| Metrics | Wie verhält sich das System quantitativ? |
| Traces | Wo ging Zeit oder Fehler über Systemgrenzen verloren? |
| Events/Audit | Welche fachliche Tatsache wurde erzeugt? |
Trace
TraceId und CorrelationId müssen durch REST, Messaging, Batch und SOAP weitergegeben werden.
Trace Context für Adapter
public final class TraceContext { // Pattern: Context Object
private final String traceId;
private final String correlationId;
public Map<String, String> asHeaders() {
return Map.of("X-Trace-Id", traceId, "X-Correlation-Id", correlationId);
}
}
Metriken
- Order creation rate
- Billing error rate
- Outbox backlog
- Consumer lag
- HTTP latency p95/p99
- DB pool exhaustion
Logs
Logs sind strukturiert, maschinenlesbar und enthalten keine Secrets. Stacktraces ohne Kontext reichen nicht.
Runbook
| Störung | Prüfen | Aktion |
|---|---|---|
| Outbox wächst | DB Lock, Broker erreichbar, Relay Logs | Relay skalieren oder fehlerhafte Nachricht isolieren |
| Billing Fehler 5xx | Trace, SOAP Endpoint, Timeout | Circuit Breaker öffnen lassen, Retry prüfen |
| Readiness false | DB/Broker/Config | Traffic stoppen, Ursache beheben |
SLO
Ein gutes SLO ist fachlich: 99,5% der Bestellungen werden innerhalb von 2 Sekunden angenommen; 99,9% der Outbox-Events werden innerhalb von 60 Sekunden publiziert.