Skip to content

ОтелПроцессорСобытийВSpanEvents

Процессор-мост Logs → Span Events (Event Bridge) по спецификации OpenTelemetry.

Описание

При появлении записи лога с непустым ИмяСобытия и наличии активного записываемого Span перекладывает событие в Span.ДобавитьСобытие(). Это позволяет использовать единый Logs API для эмиссии событий и автоматически получать span events в trace-данных.

Реализует ИнтерфейсПроцессорЛогов. Соответствует спецификации Logs SDK §48.

Поведение:

  • Запись без ИмяСобытия — пропускается.
  • Нет активного записываемого Span — пропускается.
  • Иначе — Span.ДобавитьСобытие(ИмяСобытия, Атрибуты, Время).

Процессор не экспортирует логи. Регистрируйте его вместе с ОтелПростойПроцессорЛогов или ОтелПакетныйПроцессорЛогов, если запись должна попасть и в логи, и в span events.

Методы

ПриПоявлении

Преобразует лог-событие в Span Event, если есть активный записываемый спан. Ошибки добавления события не пробрасываются наружу.

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

Включен

Возвращает Истина, если процессор не закрыт.

ПараметрТипПо умолчаниюОписание
КонтекстСоответствие, НеопределеноНеопределеноЯвный контекст
ОбластьИнструментированияОтелОбластьИнструментированияНеопределеноScope логгера
СтепеньСерьезностиЧисло0Номер серьезности
ИмяСобытияСтрока""Имя события

Возвращает: Булево


СброситьБуфер

Процессор не буферизует — всегда возвращает Успех.

ПараметрТипПо умолчаниюОписание
ТаймаутМсЧисло0Не используется

Возвращает: ОтелРезультатЭкспорта


Закрыть

Завершает работу процессора. После вызова ПриПоявлении игнорирует записи.

ПараметрТипПо умолчаниюОписание
ТаймаутМсЧисло0Не используется

Возвращает: ОтелРезультатЗакрытия

Пример

bsl
// Регистрация вместе с основным процессором
Провайдер = Новый ОтелПостроительПровайдераЛогирования()
    .УстановитьРесурс(Ресурс)
    .ДобавитьПроцессор(Новый ОтелПростойПроцессорЛогов(Экспортер))
    .ДобавитьПроцессор(Новый ОтелПроцессорСобытийВSpanEvents())
    .Построить();

// Запись попадёт и в логи, и в span events активного спана
Запись = Логгер.СоздатьЗаписьЛога();
Запись
    .УстановитьИмяСобытия("user.login")
    .УстановитьАтрибут("user.id", "42");
Логгер.Записать(Запись);