ОтелНоопПропагатор
Пустой пропагатор контекста (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
ОтелГлобальный.УстановитьПропагаторы(Новый ОтелНоопПропагатор());