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