ОтелW3CBaggageПропагатор
Пропагатор Baggage по спецификации W3C Baggage.
Описание
Обеспечивает внедрение и извлечение Baggage в/из HTTP-заголовков по спецификации W3C Baggage.
Используемый заголовок: baggage
Формат: key1=value1,key2=value2;metadata
Значения кодируются percent-encoding по спецификации W3C Baggage. Общий размер заголовка ограничен 8192 байтами: если значение превышает ограничение, заголовок не внедряется и записывается предупреждение в лог.
Использует ОтелГеттерТекстовойКарты и ОтелСеттерТекстовойКарты по умолчанию.
Конструктор
Конструктор без параметров.
Новый ОтелW3CBaggageПропагатор()Методы
Внедрить
Внедряет Baggage из контекста в заголовок baggage носителя. Если Baggage отсутствует или пустое — ничего не делает.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие | — | OTel Context |
Носитель | Произвольный | — | Носитель заголовков |
Сеттер | ОтелСеттерТекстовойКарты | Стандартный сеттер | Объект для записи в носитель |
Извлечь
Извлекает Baggage из заголовка baggage носителя в новый контекст. Если заголовок отсутствует — возвращает исходный контекст без изменений.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие | — | Входной OTel Context |
Носитель | Произвольный | — | Носитель заголовков |
Геттер | ОтелГеттерТекстовойКарты | Стандартный геттер | Объект для чтения из носителя |
Возвращает: Соответствие — новый контекст с Baggage (или входной контекст, если заголовок отсутствует)
Поля
Возвращает список HTTP-заголовков, используемых пропагатором.
Возвращает: Массив из Строка — ["baggage"]
Пример
#Использовать opentelemetry
Пропагатор = Новый ОтелW3CBaggageПропагатор();
// Создать контекст с Baggage
Багаж = Новый ОтелПостроительBaggage()
.Установить("user.id", "42")
.Установить("tenant", "acme")
.Построить();
Контекст = ОтелКонтекст.КонтекстСBaggage(ОтелКонтекст.Текущий(), Багаж);
// Внедрить в заголовки
Заголовки = Новый Соответствие();
Пропагатор.Внедрить(Контекст, Заголовки);
// baggage: user.id=42,tenant=acme
// Извлечь из входящих заголовков
ВходящиеЗаголовки = Новый Соответствие();
ВходящиеЗаголовки.Вставить("baggage", "user.id=42,tenant=acme");
НовыйКонтекст = Пропагатор.Извлечь(Новый Соответствие(), ВходящиеЗаголовки);