Skip to content

ОтелЭкспортерЛогов

Экспортер записей логов в формате OTLP.

Описание

Реализует экспорт логов по спецификации OpenTelemetry (OtlpLogExporter). Отправляет записи логов на адрес /v1/logs через любой транспорт: ОтелHttpТранспорт, ОтелGrpcТранспорт или ОтелВПамятьТранспорт.

Scope и resource читаются из каждой записи при формировании пакета OTLP. Все методы безопасны для конкурентного вызова: признак закрытия хранится в АтомарноеБулево. Экспорт выполняется асинхронно через Обещания с ограничением по таймауту.

Конструктор

bsl
Новый ОтелЭкспортерЛогов(Транспорт, ПутьСигнала, ТаймаутМс)
ПараметрТипПо умолчаниюОписание
ТранспортОтелHttpТранспорт, ОтелGrpcТранспорт, ОтелВПамятьТранспортТранспорт для отправки данных
ПутьСигналаСтрока"/v1/logs"Путь OTLP-адреса для отправки логов
ТаймаутМсЧисло10000Таймаут экспорта в миллисекундах

Методы

Экспортировать

Экспортирует массив записей логов. По спецификации OTel Export() не должен блокироваться бесконечно — операция ограничивается таймаутом.

ПараметрТипПо умолчаниюОписание
МассивЗаписейМассив из ОтелЗаписьЛогаЗаписи логов для экспорта
ТаймаутЧислоНеопределеноТаймаут в миллисекундах; если не задан — используется значение из конструктора

Возвращает: БулевоИстина, если экспорт успешен; Ложь при ошибке или таймауте

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

Принудительно отправляет все накопленные данные. Для синхронного экспортера операция не требуется — всегда возвращает успех.

ПараметрТипПо умолчаниюОписание
ТаймаутМсЧисло0Таймаут в миллисекундах (0 — без ограничения)

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

Закрыть

Завершает работу экспортера. После вызова метод Экспортировать() возвращает Ложь. Операция идемпотентна.

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

Пример

bsl
#Использовать opentelemetry

// Создать экспортер с HTTP-транспортом
Транспорт = Новый ОтелHttpТранспорт("http://localhost:4318");
Экспортер = Новый ОтелЭкспортерЛогов(Транспорт);

// С gRPC
Транспорт = Новый ОтелGrpcТранспорт("http://localhost:4317");
Экспортер = Новый ОтелЭкспортерЛогов(Транспорт);

// Интеграция с logos через аппендер
Транспорт = Новый ОтелHttpТранспорт("http://localhost:4318");
Экспортер = Новый ОтелЭкспортерЛогов(Транспорт);
// Используется совместно с ОтелАппендерLogos для автоматической отправки логов

// Закрыть после использования
Экспортер.Закрыть();