ОтелЭкспортерСпанов
Экспортер завершённых спанов трассировки в формате OTLP.
Описание
Реализует экспорт спанов по спецификации OpenTelemetry (OtlpSpanExporter). Отправляет завершённые спаны на адрес /v1/traces через любой транспорт: ОтелHttpТранспорт, ОтелGrpcТранспорт или ОтелВПамятьТранспорт.
Все методы (Экспортировать, СброситьБуфер, Закрыть) безопасны для конкурентного вызова: признак закрытия хранится в АтомарноеБулево. Экспорт выполняется асинхронно через Обещания, что гарантирует ограничение по времени без блокировки потока.
Конструктор
Новый ОтелЭкспортерСпанов(Транспорт, ПутьСигнала, ТаймаутМс)| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Транспорт | ОтелHttpТранспорт, ОтелGrpcТранспорт, ОтелВПамятьТранспорт | — | Транспорт для отправки данных |
ПутьСигнала | Строка | "/v1/traces" | Путь OTLP-адреса для отправки спанов |
ТаймаутМс | Число | 10000 | Таймаут экспорта в миллисекундах |
Методы
Экспортировать
Экспортирует массив завершённых спанов. По спецификации OTel Export() не должен блокироваться бесконечно — операция ограничивается таймаутом.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МассивСпанов | Массив из ОтелСпан | — | Спаны для экспорта |
Таймаут | Число | Неопределено | Таймаут в миллисекундах; если не задан — используется значение из конструктора |
Возвращает: Булево — Истина, если экспорт успешен; Ложь при ошибке или таймауте
СброситьБуфер
Принудительно отправляет все накопленные данные. Для синхронного экспортера операция не требуется — всегда возвращает успех.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах (0 — без ограничения) |
Возвращает: ОтелРезультатЭкспорта — результат операции
Закрыть
Завершает работу экспортера. После вызова метод Экспортировать() возвращает Ложь. Операция идемпотентна.
Возвращает: ОтелРезультатЗакрытия — результат закрытия
Пример
#Использовать opentelemetry
// Создать экспортер с HTTP-транспортом
Транспорт = Новый ОтелHttpТранспорт("http://localhost:4318");
Экспортер = Новый ОтелЭкспортерСпанов(Транспорт);
// С gRPC
Транспорт = Новый ОтелGrpcТранспорт("http://localhost:4317");
Экспортер = Новый ОтелЭкспортерСпанов(Транспорт);
// Для тестирования — в памяти
ТестТранспорт = Новый ОтелВПамятьТранспорт();
Экспортер = Новый ОтелЭкспортерСпанов(ТестТранспорт);
// Закрыть после использования
Экспортер.Закрыть();