Wiki
DevOps

OpenTelemetry — что это простыми словами

OpenTelemetry (OTel) — вендор-нейтральный стандарт telemetry: metrics, traces, logs. SDK для 11 языков. Отправляет данные в Jaeger, Tempo, Prometheus, Datadog.

OpenTelemetry (OTel) — открытый стандарт CNCF для сбора traces, metrics, logs из приложений. Объединил OpenTracing (2016) + OpenCensus (2018) в 2019. Цель — избавить разработчиков от вендор-lock-in монитрногов.

Три пиллара observability: (1) Metrics — числовые ряды (CPU%, request count), (2) Logs — текстовые события, (3) Traces — путь запроса через микросервисы (span'ы). OTel даёт единый SDK для всех трёх на 11 языках (Go, Python, Java, Node, .NET, Ruby, PHP, C++, Rust, Erlang, Swift).

Архитектура: SDK в приложении генерирует telemetry → OTel Collector (агент/шлюз) агрегирует и трансформирует → бэкенды: Prometheus (metrics), Jaeger/Tempo (traces), Loki (logs), Datadog, New Relic, Honeycomb. Меняете бэкенд — код приложения не трогается.

Практика: инструментация HTTP-сервера — 5 строк кода, вы уже видите trace-graph каждого запроса через свои микросервисы. Auto-instrumentation для популярных фреймворков (Express, Flask, Spring) — 0 строк кода, инжектится агентом.

Частые вопросы

OTel + Datadog?
Да, Datadog принимает OTLP. Полезно, если вдруг захотите слезть с Datadog — не переписывать инструментацию.
Overhead?
1-3 % CPU и памяти. Приемлемо для 99 % production.

Смотрите также