Skip to content

ОтелАвтоконфигурация

Модуль автоматической конфигурации SDK на основе переменных окружения и YAML-файла.

Описание

Реализует спецификацию OpenTelemetry SDK Environment Variable Specification. Читает конфигурацию из переменных окружения или YAML-файла (при установленной OTEL_CONFIG_FILE).

Основная точка входа — функция Инициализировать().

Поддерживаемые переменные окружения

ПеременнаяОписание
OTEL_CONFIG_FILEПуть к YAML-файлу конфигурации
OTEL_SERVICE_NAMEИмя сервиса (атрибут ресурса)
OTEL_RESOURCE_ATTRIBUTESАтрибуты ресурса в формате key=val,key2=val2
OTEL_EXPORTER_OTLP_ENDPOINTАдрес OTLP-экспортера
OTEL_EXPORTER_OTLP_PROTOCOLПротокол (grpc, http/protobuf)
OTEL_TRACES_SAMPLERСтратегия семплирования (always_on, always_off, traceidratio, parentbased_always_on, parentbased_always_off, parentbased_traceidratio)
OTEL_TRACES_SAMPLER_ARGАргумент семплера (доля для traceidratio)
OTEL_PROPAGATORSПропагаторы через запятую (tracecontext, baggage)
OTEL_SDK_DISABLEDОтключить SDK (true/false)
OTEL_LOG_LEVELУровень логирования SDK

Функции

Инициализировать

Главная функция инициализации. Конфигурирует SDK по переменным окружения (или YAML-файлу), регистрирует провайдеры в ОтелГлобальный и возвращает готовый SDK.

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

Возвращает: ОтелSdk — инициализированный объект SDK


СоздатьМенеджерПараметровПоУмолчанию

Создаёт менеджер параметров, читающий конфигурацию из переменных окружения.

Возвращает: МенеджерПараметров — объект для передачи в Инициализировать()


СоздатьРесурс

Создаёт ресурс из параметров конфигурации.

ПараметрТипПо умолчаниюОписание
МенеджерПараметровПроизвольныйМенеджер параметров
ПользовательскийРесурсОтелРесурсНеопределеноДополнительный ресурс, объединяется с автоматически созданным

Возвращает: ОтелРесурс


СоздатьТранспорт

Создаёт транспорт для экспортеров на основе параметров конфигурации.

ПараметрТипПо умолчаниюОписание
МенеджерПараметровПроизвольныйМенеджер параметров

Возвращает: транспортный объект для экспортера


СоздатьПровайдерТрассировки

Создаёт и конфигурирует провайдер трассировки.

ПараметрТипПо умолчаниюОписание
МенеджерПараметровПроизвольныйМенеджер параметров

Возвращает: ОтелПровайдерТрассировки


СоздатьПровайдерЛогирования

Создаёт и конфигурирует провайдер логирования.

ПараметрТипПо умолчаниюОписание
МенеджерПараметровПроизвольныйМенеджер параметров

Возвращает: провайдер логирования


СоздатьПровайдерМетрик

Создаёт и конфигурирует провайдер метрик.

ПараметрТипПо умолчаниюОписание
МенеджерПараметровПроизвольныйМенеджер параметров

Возвращает: провайдер метрик

Пример

bsl
// Минимальная инициализация по переменным окружения
// (OTEL_SERVICE_NAME, OTEL_EXPORTER_OTLP_ENDPOINT должны быть установлены)
Сдк = ОтелАвтоконфигурация.Инициализировать();

Трассировщик = Сдк.ПолучитьТрассировщик("мой-сервис");

// Расширенная инициализация с пользовательским ресурсом
МенеджерПараметров = ОтелАвтоконфигурация.СоздатьМенеджерПараметровПоУмолчанию();
ПользовательскийРесурс = Новый ОтелПостроительРесурса()
    .ДобавитьАтрибут("deployment.environment", "production")
    .Построить();
ИтоговыйРесурс = ОтелАвтоконфигурация.СоздатьРесурс(
    МенеджерПараметров,
    ПользовательскийРесурс
);

// При завершении работы
Сдк.Закрыть(30000);

YAML-конфигурация

При установленной переменной OTEL_CONFIG_FILE читается YAML-файл:

yaml
service:
  name: мой-сервис
exporters:
  otlp:
    endpoint: http://localhost:4317
    protocol: grpc
traces:
  sampler:
    name: parentbased_traceidratio
    args: "0.1"

См. также