„Warum ist dieser API-Call so langsam?” In einem Monolithen öffnet man einen Profiler. Bei Microservices? Der Request geht durch API Gateway, Auth, Order, Inventory, Payment Service… Distributed Tracing mit Jaeger gibt uns die Antworten.
Wie Tracing funktioniert¶
Jeder Request erhält eine eindeutige Trace ID. Beim Aufruf eines weiteren Services wird die Trace ID in HTTP-Headern weitergegeben. Jeder Service erstellt Spans. Das Ergebnis: ein Wasserfall-Diagramm des gesamten Requests.
Jaeger — von Uber zur CNCF¶
Jaeger wurde von Uber entwickelt und 2017 an die CNCF übergeben. Es implementiert den OpenTracing-Standard und unterstützt mehrere Programmiersprachen.
Sampling-Strategien¶
- Constant — 1 % aller Requests
- Probabilistic — adaptiver Prozentsatz
- Rate Limiting — max. N Traces/Sek. pro Service
Wir verwenden Rate Limiting: 2 Traces/Sek. Ausreichend für Troubleshooting, handhabbar für den Storage.
Integration mit Prometheus und Grafana¶
Von Grafana aus können Sie direkt zu einem Jaeger-Trace springen — per Klick von einer Metrik zu einem konkreten Request. Diese Integration ist entscheidend für effizientes Troubleshooting.
Distributed Tracing ist die dritte Säule der Observability¶
Logs, Metriken, Traces — die drei Säulen der Observability. Ohne Tracing operieren Sie halb blind. Jaeger mit OpenTracing ist unsere Wahl.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns