Skip to content

B3 пропагатор для OpenTelemetry OneScript SDK

Quality GateCoverageBugsCode SmellsTelegram

Что это такое

B3 (Zipkin) пропагатор для OpenTelemetry SDK на OneScript.

B3 — формат заголовков трассировки, изначально разработанный в Zipkin и широко используемый в экосистеме микросервисов (Istio, Envoy, Spring Cloud Sleuth и другие).

Почему отдельный пакет?

Согласно спецификации OpenTelemetry Propagators Distribution, официальный список пропагаторов MUST be distributed as separate, optional packages. Этот пакет — отдельная поставка B3-пропагатора, чтобы основной SDK не нёс зависимостей на не-W3C форматы.

Установка

sh
opm install opentelemetry-propagator-b3

Быстрый старт

bsl
#Использовать opentelemetry
#Использовать opentelemetry-propagator-b3

// По умолчанию single-header формат: b3: {trace}-{span}-{sampled}
Пропагатор = Новый ОтелB3Пропагатор();

// Multi-header формат: X-B3-TraceId, X-B3-SpanId, X-B3-Sampled
Пропагатор = Новый ОтелB3Пропагатор(ОтелФорматB3.Мульти());

// Внедрить контекст в исходящий запрос
Носитель = Новый Соответствие();
Пропагатор.Внедрить(ОтелКонтекст.Текущий(), Носитель);

// Извлечь контекст из входящего запроса
КонтекстВходящий = Пропагатор.Извлечь(Новый Соответствие(), ВходящиеЗаголовки);

Поддерживаемые форматы

ФорматКонстантаЗаголовки
single (по умолчанию)ОтелФорматB3.Одиночный()b3: {traceId}-{spanId}-{sampled}-{parentSpanId}
multiОтелФорматB3.Мульти()X-B3-TraceId, X-B3-SpanId, X-B3-Sampled, X-B3-Flags

При извлечении контекста оба формата поддерживаются одновременно: single-header (b3) имеет приоритет над multi-header (X-B3-*).

Требования совместимости

  • OneScript >= 1.0.0
  • OpenTelemetry SDK для OneScript >= 1.0.0

API

Полная документация по публичному интерфейсу: API Reference