Observability & Betrieb
Logs, Metriken, Traces, Health, SLOs und Fehleranalyse im Enterprise-Betrieb.
Drei Signale plus Kontext
Observability bedeutet, das System aus seinen Signalen verstehen zu können: Logs erklären Ereignisse, Metriken zeigen Trends und SLO-Verletzungen, Traces zeigen verteilte Aufrufketten. Ohne Korrelation über Request-ID, Trace-ID und fachliche IDs bleibt Fehleranalyse langsam.
| Signal | Frage | Beispiel |
|---|---|---|
| Logs | Was ist passiert? | Order 123 konnte PartnerRating nicht laden |
| Metriken | Wie oft und wie schnell? | p95 latency, error rate, queue lag |
| Traces | Wo hängt die Kette? | Gateway -> Order -> Billing -> Partner API |
| Events | Welche fachlichen Zustände entstanden? | OrderPlaced, InvoiceCreated |
public class OrderTracingService {
private final Tracer tracer;
public void placeOrder(PlaceOrderCommand command) {
Span span = tracer.spanBuilder("order.place")
.setAttribute("customer.id", command.customerId().value().toString())
.startSpan();
try (Scope ignored = span.makeCurrent()) {
// Fachlogik bleibt gleich; Trace-Kontext wandert über HTTP/Kafka weiter.
handle(command);
} catch (Exception ex) {
span.recordException(ex);
span.setStatus(StatusCode.ERROR);
throw ex;
} finally {
span.end();
}
}
}
Health Checks richtig bauen
Readiness und Liveness müssen unterschiedliche Fragen beantworten. Eine DB-Störung kann Readiness beeinflussen, aber ein Service muss nicht sofort gekillt werden. Ein schlechter Liveness-Check kann bei externer Störung eine Neustart-Schleife erzeugen.
| Check | Frage | Sollte prüfen |
|---|---|---|
| Startup | Ist die Anwendung fertig initialisiert? | Migrationen, Cache-Warmup, kritische Konfiguration |
| Readiness | Kann diese Instanz Traffic annehmen? | DB erreichbar, Queue-Verarbeitung bereit, lokale Ressourcen |
| Liveness | Ist der Prozess intern kaputt? | Deadlock, fataler interner Zustand, nicht externe Partnerabhängigkeit |
SLO-orientierte Diagnose
Enterprise-Betrieb braucht Ziele: Verfügbarkeit, Latenz, Fehlerrate und Datenqualität. Metriken sind nicht nur Dashboards, sondern Entscheidungsgrundlage für Architektur: Caching, Partitionierung, Backpressure, Skalierung und Priorisierung.