„Proč je ten API call pomalý?” V monolitu otevřete profiler. V mikroslužbách? Request projde API gateway, auth, order, inventory, payment service… Distributed tracing s Jaegerem nám dává odpovědi.
Jak tracing funguje¶
Každý request dostane unikátní trace ID. Při volání další služby se trace ID propaguje v HTTP headerech. Každá služba vytváří spany. Výsledek: waterfall diagram celého requestu.
Jaeger — od Uberu do CNCF¶
Jaeger vyvinul Uber, v 2017 daroval CNCF. Implementuje OpenTracing standard, podporuje multiple jazyky.
Sampling strategie¶
- Constant — 1 % všech requestů
- Probabilistic — adaptivní procento
- Rate limiting — max N traces/sec per službu
My používáme rate limiting: 2 traces/sec. Dostatečné pro troubleshooting, únosné pro storage.
Integrace s Prometheus a Grafana¶
Z Grafany můžete přejít přímo na Jaeger trace — kliknutím z metriky na konkrétní request. Tato integrace je klíčová pro efektivní troubleshooting.
Distributed tracing je třetí pilíř observability¶
Logy, metriky, traces — tři pilíře observability. Bez tracingu operujete napůl slepí. Jaeger s OpenTracing je naše volba.