OTel Collector

Тема дорожной карты · Observability

OpenTelemetry Collector (otel-collector) — это независимый от поставщика прокси и конвейер обработки данных телеметрии, работающий между инструментированными приложениями и бэкендами наблюдаемости. Он принимает метрики, логи и трассировки по протоколу OTLP (а также многим другим, включая Prometheus, Jaeger, Zipkin и Fluent Bit), применяет преобразования в настраиваемой цепочке процессоров и экспортирует данные в один или несколько бэкендов одновременно. Коллектор конфигурируется через YAML-файл — как правило, otel-collector-config.yaml — разделённый на секции receivers, processors, exporters и service с описанием конвейеров. Среди часто используемых процессоров: batch (для буферизации и сокращения количества запросов на экспорт), memory_limiter (для предотвращения OOM-крашей под нагрузкой), attributes (для добавления или изменения метаданных телеметрии) и filter (для отбрасывания нежелательных данных до их попадания в бэкенды). Запуск otel-collector в инфраструктуре отделяет инструментирование приложения от конфигурации бэкенда, упрощая добавление новых бэкендов наблюдаемости, применение сэмплирования и обеспечение управления данными без изменения кода приложений.

Как это работает

OTel Collector (OTel) — vendor-neutral стандарт инструментирования. Спеки покрывают API + SDK + протокол (OTLP — gRPC или HTTP). Auto-instrumentation библиотеки — для популярных фреймворков. OTel Collector — sidecar/daemon, принимающий OTLP + роутящий в backends (Prometheus, Loki, Tempo, Jaeger, vendor API). Один API + SDK для метрик, логов, traces. Поддерживается CNCF, принят AWS, Google, Microsoft, Datadog, Splunk, Yandex.

Когда применять

OpenTelemetry — для любого нового проекта; нет причин запираться в vendor SDK. Auto-instrumentation сначала (покрывает 80% без изменения кода). Collector — для централизации роутинга; смена backend без переинструментирования приложений. Для метрик OTel может заменить Prometheus client libs или кормить Prometheus через OTLP-receiver; оба работают.

Типичные ошибки

Ловушки OTel Collector: ручное инструментирование, когда сработала бы auto-instrumentation (DRY + баги); запуск Collector с дефолт-конфигом во внутренний API production (нет auth + TLS — защитите); pre-OTel и post-OTel SDK в одном проекте (путано, хрупко); не выставлены resources service.name + service.version (traces без provenance).

Связанные понятия

Полезные ресурсы