Distributed tracing на собеседовании системного аналитика
Карьерник — 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.
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 hereOpenTelemetry поглощает старые: OpenTracing, OpenCensus.
Tools
Jaeger. Open source, popular.
Tempo (Grafana). Cheap storage.
Zipkin. Twitter, classic.
Honeycomb. SaaS, отличный UX.
DataDog APM. Commercial.
В РФ: чаще open source (Jaeger / Tempo).
Связанные темы
- Logging strategy для SA
- SLA SLO SLI для SA
- Service mesh для SA
- Микросервисы vs монолит для SA
- Подготовка к собесу системного аналитика
FAQ
Это официальная информация?
Нет. Статья основана на документации OpenTelemetry, Jaeger.
Тренируйте системный анализ — откройте тренажёр с 1500+ вопросами для собесов.