Переменные SDK
Поведение OpenTelemetry SDK управляется через переменные среды, которые настраивают различные аспекты сбора, обработки и экспорта telemetry. Пользовательский ресурс Instrumentation позволяет задавать эти переменные, чтобы настраивать, как ваши инструментированные приложения создают и отправляют данные telemetry.
Содержание
Общие переменные среды SDKИдентификация сервисаНастройка экспортераНастройка OTLP endpointНастройка протоколаНастройка переменных SDK в Instrumentation CRНастройка семплированияНастройка propagationНастройка пакетной обработкиНастройка логированияПриоритет переменныхОбщие переменные среды SDK
Следующие переменные среды обычно используются для настройки поведения OpenTelemetry SDK:
Идентификация сервиса
OTEL_SERVICE_NAME— задает логическое имя сервисаOTEL_RESOURCE_ATTRIBUTES— указывает дополнительные атрибуты ресурса в виде пар «ключ-значение»
Настройка экспортера
OTEL_TRACES_EXPORTER— настраивает exporter для trace (например,otlp,jaeger,zipkin)OTEL_METRICS_EXPORTER— настраивает exporter для metrics (например,otlp,prometheus)OTEL_LOGS_EXPORTER— настраивает exporter для logs (например,otlp)
Настройка OTLP endpoint
OTEL_EXPORTER_OTLP_ENDPOINT— задает OTLP endpoint для всех signalsOTEL_EXPORTER_OTLP_TRACES_ENDPOINT— задает OTLP endpoint специально для tracesOTEL_EXPORTER_OTLP_METRICS_ENDPOINT— задает OTLP endpoint специально для metricsOTEL_EXPORTER_OTLP_LOGS_ENDPOINT— задает OTLP endpoint специально для logs
Настройка протокола
OTEL_EXPORTER_OTLP_PROTOCOL— указывает OTLP protocol (grpcилиhttp/protobuf)OTEL_EXPORTER_OTLP_TRACES_PROTOCOL— protocol для tracesOTEL_EXPORTER_OTLP_METRICS_PROTOCOL— protocol для metrics
Настройка переменных SDK в Instrumentation CR
Вы можете задавать переменные среды SDK в пользовательском ресурсе Instrumentation:
Эти переменные автоматически внедряются в контейнеры инструментированных приложений.
Настройка семплирования
Управляйте поведением семплирования trace с помощью следующих переменных:
OTEL_TRACES_SAMPLER— стратегия семплирования (например,always_on,always_off,traceidratio,parentbased_always_on)OTEL_TRACES_SAMPLER_ARG— аргумент для sampler (например, коэффициент семплирования дляtraceidratio)
Пример настройки:
Эта конфигурация семплирует 10% trace, при этом учитывая решения о семплировании родительского span.
Настройка propagation
Настройте форматы распространения context:
OTEL_PROPAGATORS— список propagator, разделенный запятыми (например,tracecontext,baggage,b3)
Пример:
Настройка пакетной обработки
Управляйте тем, как telemetry data пакетируется перед экспортом:
OTEL_BSP_SCHEDULE_DELAY— интервал задержки между пакетными экспортами (миллисекунды)OTEL_BSP_EXPORT_TIMEOUT— максимальное время ожидания экспорта (миллисекунды)OTEL_BSP_MAX_QUEUE_SIZE— максимальный размер очереди для пакетированияOTEL_BSP_MAX_EXPORT_BATCH_SIZE— максимальный размер пакета для экспорта
Настройка логирования
Настройте поведение логирования SDK:
OTEL_LOG_LEVEL— уровень логирования SDK (например,debug,info,warn,error)
Переменные среды SDK соответствуют спецификации OpenTelemetry. Полный список доступных переменных и их описания см. в OpenTelemetry Environment Variable Specification.
Приоритет переменных
Если одна и та же переменная определена в нескольких местах, применяется следующий порядок приоритета (от высшего к низшему):
- Переменные среды, заданные непосредственно в спецификации pod
- Переменные среды из Instrumentation CR
- Значения по умолчанию из библиотеки instrumentation
Используйте Instrumentation CR для задания общей конфигурации для нескольких приложений и при необходимости переопределяйте отдельные значения в спецификациях отдельных pod.