advanced

Distributed tracing

Propagate trace context across services, чтобы latency, errors, retries и fan-out paths диагностировались from one request.

Tracing следует за одним request через сервисы по trace и span IDs в headers (W3C trace context). Каждый span фиксирует timing, service name и errors — fan-out, retry duplication и slow hops в одном waterfall.

Компромисс: overhead instrumentation и storage против mean time to diagnose cross-service incidents.

На интервью: parent-child spans; как retries видны в traces; sampling при высоком QPS.

Типовые ошибки: broken context на async boundaries; нет spans у message consumers; 100% sampling в production.

Чеклист:

  • Trace context на HTTP, gRPC и messages.
  • Имена spans по операциям, не только class names.
  • Связывайте logs и metrics с trace IDs.
  • Adaptive sampling под нагрузкой.