Distributed tracing на собеседовании системного аналитика

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Зачем разбирать на собесе

Tracing — основа debugging микросервисов. На собесе SA: «как trace request», «когда tracing нужен».

Spans и traces

Trace. End-to-end request path through distributed system.

Span. Один operation внутри trace (function call, DB query, HTTP request).

Trace: User checkout
  Span: API gateway (50ms)
    Span: Auth service (10ms)
    Span: Order service (35ms)
      Span: DB query (25ms)
      Span: Notify event publish (5ms)

Visualized как tree / waterfall.

Span content:

  • Name.
  • Start / end time.
  • Parent span.
  • Tags (key-value, HTTP method, user_id).
  • Logs (events).
  • Status.

Context propagation

Trace ID + parent span — passed между services.

HTTP. Header traceparent (W3C trace context).

traceparent: 00-{trace_id}-{span_id}-{flags}

Messaging. Embedded в message metadata.

SDK. OpenTelemetry libraries handle automatically.

Sampling

Все requests trace — too much. Sample decision.

Head-based sampling. При начале — decide trace или нет.

Tail-based. Decide после full trace (e.g., always trace errors).

Adaptive. Lower sampling on high traffic.

Typical 1-10% sampling в production.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

OpenTelemetry

Industry standard observability framework.

  • Vendor-neutral.
  • SDKs for Java, Python, Go, JS, .NET и др.
  • Auto-instrumentation многих frameworks.
  • Collector — receives, processes, exports.
from opentelemetry import trace
tracer = trace.get_tracer(__name__)

with tracer.start_as_current_span("process_order"):
    # logic here

OpenTelemetry поглощает старые: OpenTracing, OpenCensus.

Tools

Jaeger. Open source, popular.

Tempo (Grafana). Cheap storage.

Zipkin. Twitter, classic.

Honeycomb. SaaS, отличный UX.

DataDog APM. Commercial.

В РФ: чаще open source (Jaeger / Tempo).

Связанные темы

FAQ

Это официальная информация?

Нет. Статья основана на документации OpenTelemetry, Jaeger.


Тренируйте системный анализ — откройте тренажёр с 1500+ вопросами для собесов.