Skip to content

ОтелТокенКонтекста

Токен (Token) контекста по спецификации OpenTelemetry Context API.

Описание

Возвращается из ОтелКонтекст.ПрисоединитьКонтекст() и должен быть передан в ОтелКонтекст.ОтсоединитьКонтекст() для восстановления предыдущего контекста. Поддерживает RAII-паттерн через метод Закрыть().

Аналоги: Java Scope, Python opentelemetry.context.Token, Go detach token.

Конструктор

ПараметрТипПо умолчаниюОписание
ПараметрГлубинаЧисло0Глубина стека контекстов на момент присоединения
ПараметрИдПотокаСтрока""Идентификатор потока, в котором был выдан токен

Методы

Отсоединен

Возвращает признак того, что токен уже отсоединён (Detach был вызван).

Возвращает: БулевоИстина, если токен отсоединён


ПометитьОтсоединенным

Помечает токен как отсоединённый. Внутренний метод, вызывается из ОтелКонтекст.ОтсоединитьКонтекст().


Закрыть

Отсоединяет контекст, восстанавливая предыдущий (сахар над ОтелКонтекст.ОтсоединитьКонтекст). Повторный вызов идемпотентен.

Пример

bsl
// RAII-паттерн
Токен = Спан.СделатьТекущим();
Попытка
    // ... работа в контексте спана ...
Исключение
    Спан.ЗаписатьИсключение(ИнформацияОбОшибке());
КонецПопытки;
Токен.Закрыть(); // обязательно вызвать перед Завершить()
Спан.Завершить();

// Явный Detach
Токен = ОтелКонтекст.ПрисоединитьКонтекст(Контекст);
// ... работа ...
ОтелКонтекст.ОтсоединитьКонтекст(Токен);

См. также