advanced

OpenTelemetry

Инструментируйте приложения vendor-neutral API, SDK, exporters, propagation контекста и semantic conventions.

OpenTelemetry (OTel) — vendor-neutral API, SDK и semantic conventions для traces, metrics и logs. Instrument один раз, экспорт в Jaeger, Tempo, Datadog, Honeycomb или облака через OTLP.

					import { NodeSDK } from '@opentelemetry/sdk-node';
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';

const sdk = new NodeSDK({
  traceExporter: otlpExporter,
  instrumentations: [getNodeAutoInstrumentations()],
});
await sdk.start();
				

| Часть | Роль | |-------|------| | API | Tracer/meter в коде приложения | | SDK | Sampling, batching, export | | Collector | Приём, обработка, маршрутизация | | Semantic conventions | Стандартные имена атрибутов |

Auto-instrumentation быстро покрывает HTTP и драйверы БД; manual spans на бизнес-границах. Контролируйте cardinality кастомных атрибутов.

На интервью: OTel vs proprietary agents, паттерны деплоя collector и смена exporter без переinstrumentation.

Типовые ошибки: двойная instrumentation; export всего с debug cardinality; collector как узкое место без масштабирования.

Компромисс — переносимость и стандарты против сложности setup для маленьких команд.

Чеклист:

  • Auto-instrumentation для HTTP/DB.
  • Export через OTLP в collector или vendor.
  • Semantic conventions для атрибутов.
  • Sampling и batch до export.