ОтелПростойПроцессорСпанов
Простой (синхронный) процессор спанов.
Описание
Экспортирует спаны синхронно в момент их завершения. Не буферизует данные — каждый завершённый спан немедленно передаётся экспортеру. Подходит для разработки и тестирования; в продакшне рекомендуется использовать ОтелПакетныйПроцессорСпанов.
Аналог Java SDK: SimpleSpanProcessor.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Экспортер | Произвольный | — | Экспортер спанов (должен реализовывать интерфейс экспортера) |
Методы
ПриНачале
Вызывается при начале спана. В простом процессоре не выполняет действий.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Спан | ОтелСпан | — | Начавшийся спан |
РодительскийКонтекст | Произвольный | — | Родительский контекст |
ПриЗавершении
Вызывается при завершении спана. Синхронно экспортирует спан.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Спан | ОтелСпан | — | Завершённый спан |
СброситьБуфер
Синхронизирует незавершённые операции экспорта: в пределах таймаута дожидается экспорта, начатого в другом потоке, затем сбрасывает буфер экспортера.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах (0 — без ограничения) |
Возвращает: ОтелРезультатЭкспорта — результат сброса буфера экспортера; таймаут, если экспорт в другом потоке не завершился за срок
Закрыть
Завершает работу процессора: дожидается текущего экспорта, сбрасывает буфер экспортера (СброситьБуфер) и закрывает экспортер — в пределах общего срока. Экспортер закрывается и после сбоя сброса буфера. Повторный вызов ничего не делает и возвращает успех.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах (0 — без ограничения) |
Возвращает: ОтелРезультатЗакрытия — ошибка сброса буфера или закрытия экспортера; иначе таймаут, если истёк срок; иначе успех
Пример
// OTLP HTTP-экспортер (из подсистемы Экспорт)
Экспортер = Новый ОтелЭкспортерСпанов(Новый ОтелHttpТранспорт("http://localhost:4318"));
Процессор = Новый ОтелПростойПроцессорСпанов(Экспортер);
Провайдер = Новый ОтелПостроительПровайдераТрассировки()
.ДобавитьПроцессор(Процессор)
.Построить();