ОтелТокенКонтекста
Токен (Token) контекста по спецификации OpenTelemetry Context API.
Описание
Возвращается из ОтелКонтекст.ПрисоединитьКонтекст() и должен быть передан в ОтелКонтекст.ОтсоединитьКонтекст() для восстановления предыдущего контекста. Поддерживает RAII-паттерн через метод Закрыть().
Аналоги: Java Scope, Python opentelemetry.context.Token, Go detach token.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ПараметрГлубина | Число | 0 | Глубина стека контекстов на момент присоединения |
ПараметрИдПотока | Строка | "" | Идентификатор потока, в котором был выдан токен |
Методы
Отсоединен
Возвращает признак того, что токен уже отсоединён (Detach был вызван).
Возвращает: Булево — Истина, если токен отсоединён
ПометитьОтсоединенным
Помечает токен как отсоединённый. Внутренний метод, вызывается из ОтелКонтекст.ОтсоединитьКонтекст().
Закрыть
Отсоединяет контекст, восстанавливая предыдущий (сахар над ОтелКонтекст.ОтсоединитьКонтекст). Повторный вызов идемпотентен.
Пример
bsl
// RAII-паттерн
Токен = Спан.СделатьТекущим();
Попытка
// ... работа в контексте спана ...
Исключение
Спан.ЗаписатьИсключение(ИнформацияОбОшибке());
КонецПопытки;
Токен.Закрыть(); // обязательно вызвать перед Завершить()
Спан.Завершить();
// Явный Detach
Токен = ОтелКонтекст.ПрисоединитьКонтекст(Контекст);
// ... работа ...
ОтелКонтекст.ОтсоединитьКонтекст(Токен);