Skip to content

ОтелНоопПропагатор ​

Пустой пропагатор контекста (no-op): ничего не внедряет и не извлекает.

Описание ​

Методы те же, что у остальных пропагаторов (Внедрить, Извлечь, Поля), но носитель и контекст не меняются. SDK возвращает этот пропагатор, когда пропагация не настроена или отключена:

  • ОтелГлобальный.ПолучитьПропагаторы() — если пропагаторы не установлены через ОтелГлобальный.УстановитьПропагаторы() и у глобального SDK их нет (SDK не зарегистрирован или собран без пропагаторов). Так выполняется требование спецификации (раздел Propagators API, Global Propagators): API использует no-op пропагаторы, пока они не настроены явно;
  • ОтелАвтоконфигурация.СоздатьПропагаторы() — если в OTEL_PROPAGATORS есть значение none (остальные значения списка тогда игнорируются с предупреждением в логе). Этот пропагатор получает SDK из ОтелАвтоконфигурация.Инициализировать(), в том числе отключённый (OTEL_SDK_DISABLED=true);
  • ОтелКонфигурационнаяФабрика.СоздатьПропагаторы() — если в файле конфигурации нет секции propagator, в ней не задано ни одного пропагатора или задан none (none вместе с другими пропагаторами — ошибка: фабрика выбрасывает исключение). Этот пропагатор получает SDK из ОтелКонфигурационнаяФабрика.Создать(), в том числе созданный ОтелАвтоконфигурация.Инициализировать() по файлу из OTEL_CONFIG_FILE; при disabled: true пропагаторы SDK не задаются.

Пропагатор не хранит состояния: экземпляр можно создать и установить самому, например чтобы отключить пропагацию глобально.

Конструктор ​

bsl
Новый ОтелНоопПропагатор()

Методы ​

Внедрить ​

Ничего не делает: носитель не меняется.

ПараметрТипПо умолчаниюОписание
КонтекстСоответствие, ФиксированноеСоответствие—Контекст; не используется
НосительПроизвольный—Носитель заголовков; не меняется
СеттерОтелСеттерТекстовойКартыНеопределеноНе используется

Извлечь ​

Возвращает переданный контекст без изменений (тот же объект); носитель не читается.

ПараметрТипПо умолчаниюОписание
КонтекстСоответствие, ФиксированноеСоответствие—Входной контекст
НосительПроизвольный—Носитель заголовков; не читается
ГеттерОтелГеттерТекстовойКартыНеопределеноНе используется

Возвращает: Соответствие, ФиксированноеСоответствие — переданный Контекст


Поля ​

Возвращает список полей пропагатора — он пуст.

Возвращает: Массив — пустой массив (новый при каждом вызове)

Пример ​

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

// Пропагаторы не настроены ни явно, ни в SDK: глобальный пропагатор - ОтелНоопПропагатор
Пропагаторы = ОтелГлобальный.ПолучитьПропагаторы();

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

// Отключить пропагацию глобально, даже если у SDK пропагаторы настроены:
// установленные явно пропагаторы важнее пропагаторов SDK
ОтелГлобальный.УстановитьПропагаторы(Новый ОтелНоопПропагатор());

См. также ​