Kurzfassung
Distributed Tracing ist eine Observability-Technik, die den Weg einer Anfrage durch ein verteiltes System aufzeichnet und an jedem Service-Hop Timing- und Kontextmetadaten anhängt, um den vollständigen Ausführungspfad zu rekonstruieren.
Was ist Distributed Tracing?
In einer Microservices-Architektur kann eine einzelne Benutzeraktion Dutzende von Services durchlaufen. Wenn etwas schief läuft oder die Leistung nachlässt, ist es ohne Tracing nahezu unmöglich, die Ursache zu finden. Distributed Tracing löst dieses Problem, indem eine eindeutige Trace-ID in jede Anfrage injiziert und über HTTP-Header oder Messaging-Metadaten propagiert wird.
Jeder Service erstellt einen Span — eine zeitlich begrenzte Arbeitseinheit — und meldet ihn an ein Tracing-Backend. Das Backend setzt Spans zu einem Trace zusammen: einer visuellen Zeitleiste, die zeigt, welche Services wann aufgerufen wurden und wie lange jeder Aufruf dauerte. So lässt sich auf einen Blick erkennen, welcher Service Latenz eingeführt oder einen Fehler geworfen hat.
Standards wie OpenTelemetry, OpenTracing und OpenCensus definieren die Kontextpropagierung; Tools wie Jaeger, Zipkin, Honeycomb und Datadog APM bieten Speicherung und Visualisierung.
Warum ist Distributed Tracing relevant?
- Ursachenisolierung: Identifiziert genau, welcher Service oder Datenbankaufruf eine Verlangsamung verursacht hat
- Abhängigkeitskartierung: Deckt unerwartete Service-Abhängigkeiten in komplexen Systemen auf
- SLO-Debugging: Zeigt, welche Operationen Latenzbudgets überschreiten
- Incident Response: Reduziert die mittlere Zeit zur Störungsbehebung durch vollständigen Anfrage-Kontext