Ответ
Для построения полноценной системы observability, включая трейсинг, я использую комбинацию следующих инструментов, где каждый выполняет свою роль:
-
Инструментация кода: OpenTelemetry (OTel)
- Это стандарт де-факто для сбора телеметрии (трейсов, метрик, логов). Его главное преимущество — независимость от вендора. Вы инструментируете код один раз и можете отправлять данные в любой бэкенд (Jaeger, Prometheus, Datadog и т.д.).
// Пример инициализации трассировщика с экспортом в Jaeger import ( "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/exporters/jaeger" "go.opentelemetry.io/otel/sdk/trace" sdktrace "go.opentelemetry.io/otel/sdk/trace" ) func initTracer() (*sdktrace.TracerProvider, error) { // Создаем экспортер, который будет отправлять данные в Jaeger exporter, err := jaeger.New(jaeger.WithCollectorEndpoint()) if err != nil { return nil, err } // Создаем провайдер трассировки с батчером для эффективности tp := sdktrace.NewTracerProvider( sdktrace.WithBatcher(exporter), ) otel.SetTracerProvider(tp) return tp, nil }
-
Бэкенд для хранения и визуализации трейсов: Jaeger
- Популярное open-source решение для анализа распределенных трейсов. Отлично интегрируется с OpenTelemetry и Kubernetes. Позволяет визуализировать цепочки вызовов между микросервисами, находить узкие места и ошибки.
- Как более легковесную альтернативу можно рассмотреть Zipkin.
-
Метрики и алертинг: Prometheus + Grafana
- Prometheus используется для сбора и хранения метрик (например,
http_requests_total
,request_latency_seconds
). Grafana — для их визуализации на дашбордах. Трейсы помогают понять, почему что-то произошло, а метрики показывают, что произошло в системе.
- Prometheus используется для сбора и хранения метрик (например,
-
Логирование: ELK Stack / Loki / ClickHouse
- Для агрегации и анализа логов. Современные системы позволяют коррелировать логи с трейсами по
TraceID
, что дает полную картину запроса: от логов конкретного сервиса до его пути по всей системе.
- Для агрегации и анализа логов. Современные системы позволяют коррелировать логи с трейсами по