Skip to content

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

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

Описание ​

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

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

Конструктор ​

bsl
Новый ОтелЭкспортерЛогов(Транспорт, ПутьСигнала, ТаймаутМс, НовыйЗакрыватьТранспорт)
ПараметрТипПо умолчаниюОписание
ТранспортОтелHttpТранспорт, ОтелGrpcТранспорт, ОтелКонсольныйТранспорт, ОтелВПамятьТранспорт—Транспорт для отправки данных
ПутьСигналаСтрока"/v1/logs"Путь OTLP-адреса для отправки логов
ТаймаутМсЧисло10000Таймаут экспорта в миллисекундах (OTLP Timeout), 0 — без ограничения
НовыйЗакрыватьТранспортБулевоЛожьИстина — транспорт создала библиотека (автоконфигурация, файл конфигурации), экспортер закрывает его вместе с собой. Ложь — транспорт передал пользователь и закрывает его сам: один транспорт может обслуживать несколько экспортеров

Методы ​

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

Экспортирует массив записей логов в пределах срока. По спецификации OTel Export() не должен блокироваться бесконечно: срок экспорта — меньший из таймаута вызова и таймаута экспортера (незаданный или 0 таймаут не ограничивает). Отправка идёт в вызывающем потоке, транспорт получает время, оставшееся до срока.

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

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

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

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

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

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

Закрыть ​

Завершает работу экспортера. После вызова метод Экспортировать() возвращает Ложь. Если транспорт создала библиотека (НовыйЗакрыватьТранспорт), первый вызов закрывает и транспорт. Операция идемпотентна: повторные вызовы ничего не делают.

Возвращает: ОтелРезультатЗакрытия — результат закрытия; ошибка, если не удалось закрыть транспорт

Пример ​

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

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

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

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

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