ОтелАвтоконфигурация
Модуль автоматической конфигурации 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
СоздатьМенеджерПараметровПоУмолчанию
Создаёт менеджер параметров, читающий конфигурацию из переменных окружения.
Возвращает: МенеджерПараметров — объект для передачи в Инициализировать()
СоздатьРесурс
Создаёт ресурс из параметров конфигурации.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МенеджерПараметров | Произвольный | — | Менеджер параметров |
ПользовательскийРесурс | ОтелРесурс | Неопределено | Дополнительный ресурс, объединяется с автоматически созданным |
Возвращает: ОтелРесурс
СоздатьТранспорт
Создаёт транспорт для экспортеров на основе параметров конфигурации.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МенеджерПараметров | Произвольный | — | Менеджер параметров |
Возвращает: транспортный объект для экспортера
СоздатьПровайдерТрассировки
Создаёт и конфигурирует провайдер трассировки.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МенеджерПараметров | Произвольный | — | Менеджер параметров |
Возвращает: ОтелПровайдерТрассировки
СоздатьПровайдерЛогирования
Создаёт и конфигурирует провайдер логирования.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МенеджерПараметров | Произвольный | — | Менеджер параметров |
Возвращает: провайдер логирования
СоздатьПровайдерМетрик
Создаёт и конфигурирует провайдер метрик.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МенеджерПараметров | Произвольный | — | Менеджер параметров |
Возвращает: провайдер метрик
Пример
// Минимальная инициализация по переменным окружения
// (OTEL_SERVICE_NAME, OTEL_EXPORTER_OTLP_ENDPOINT должны быть установлены)
Сдк = ОтелАвтоконфигурация.Инициализировать();
Трассировщик = Сдк.ПолучитьТрассировщик("мой-сервис");
// Расширенная инициализация с пользовательским ресурсом
МенеджерПараметров = ОтелАвтоконфигурация.СоздатьМенеджерПараметровПоУмолчанию();
ПользовательскийРесурс = Новый ОтелПостроительРесурса()
.ДобавитьАтрибут("deployment.environment", "production")
.Построить();
ИтоговыйРесурс = ОтелАвтоконфигурация.СоздатьРесурс(
МенеджерПараметров,
ПользовательскийРесурс
);
// При завершении работы
Сдк.Закрыть(30000);YAML-конфигурация
При установленной переменной OTEL_CONFIG_FILE читается YAML-файл:
service:
name: мой-сервис
exporters:
otlp:
endpoint: http://localhost:4317
protocol: grpc
traces:
sampler:
name: parentbased_traceidratio
args: "0.1"