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