Skip to content

ОтелЭкспортерМетрик

Экспортер метрик в формате OTLP.

Описание

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

Поддерживает типы метрик: Сумма, Датчик, Гистограмма, ЭкспоненциальнаяГистограмма. Перед отправкой выполняет валидацию совместимости агрегаций и темпоральности.

Все методы безопасны для конкурентного вызова. Поля состояния либо иммутабельны (назначаются в конструкторе), либо хранятся в АтомарноеБулево.

Конструктор

bsl
Новый ОтелЭкспортерМетрик(
    Транспорт,
    СелекторВременнойАгрегации,
    ПутьСигнала,
    ТаймаутМс
)
ПараметрТипПо умолчаниюОписание
ТранспортОтелHttpТранспорт, ОтелGrpcТранспорт, ОтелВПамятьТранспортТранспорт для отправки данных
СелекторВременнойАгрегацииУниФункцияНеопределеноФункция-селектор: Применить(ТипИнструмента) → Число; определяет временну́ю агрегацию для каждого типа инструмента
ПутьСигналаСтрока"/v1/metrics"Путь OTLP-адреса для отправки метрик
ТаймаутМсЧисло10000Таймаут экспорта в миллисекундах

Методы

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

Экспортирует данные метрик. Перед отправкой валидирует совместимость типов метрик и темпоральности. По спецификации OTel не блокируется бесконечно.

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

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

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

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

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

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

Закрыть

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

ПараметрТипПо умолчаниюОписание
ТаймаутМсЧисло30000Таймаут операции в миллисекундах

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

ПринудительноВыгрузитьСРезультатом

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

ПараметрТипПо умолчаниюОписание
ТаймаутМсЧисло30000Таймаут операции в миллисекундах

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

ПолучитьВременнуюАгрегацию

Возвращает временну́ю агрегацию для указанного типа инструмента.

ПараметрТипПо умолчаниюОписание
ТипИнструментаСтрокаТип инструмента: "counter", "up_down_counter", "histogram", "gauge" и т.д.

Возвращает: Число — значение из ОтелВременнаяАгрегация

Пример

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

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

// С кастомным селектором временной агрегации
// (функция, которая возвращает тип агрегации по типу инструмента)
Транспорт = Новый ОтелGrpcТранспорт("http://localhost:4317");
Экспортер = Новый ОтелЭкспортерМетрик(Транспорт, МойСелектор);

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