Декларативна конфігурація

Декларативна конфігурація використовує файл YAML замість змінних середовища.

Цей підхід корисний, коли:

  • У вас є багато параметрів конфігурації для налаштування.
  • Ви хочете використовувати параметри конфігурації, які недоступні як змінні середовища.

Підтримувані мови

Наступні SDK OpenTelemetry підтримують декларативну конфігурацію:

Детальнішу інформацію див. у Матриці відповідності

Початок роботи

  1. Збережіть наступний файл конфігурації як otel-config.yaml.
  2. Встановіть зміну оточення OTEL_CONFIG_FILE=/path/to/otel-config.yaml

Рекомендований файл конфігурації:

# otel-getting-started.yaml є хорошою відправною точкою для налаштування SDK, включаючи експорт на
# localhost через OTLP.
#
# ПРИМІТКА: За винятком синтаксису підстановки змінних середовища (тобто ${MY_ENV}), SDK ігнорують
# змінні середовища при інтерпретації файлів конфігурації. Це включає ігнорування всіх змінних середовища,
# визначених у https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/.
#
# Для документації схеми, включаючи обовʼязкові властивості, семантику, стандартну поведінку тощо,
# див. https://github.com/open-telemetry/opentelemetry-configuration/blob/main/schema-docs.md

file_format: "1.0"

resource:
  # Читання атрибутів ресурсу зі змінної середовища OTEL_RESOURCE_ATTRIBUTES.
  # Це добре узгоджується з OpenTelemetry Operator та іншими методами розгортання.
  attributes_list: ${OTEL_RESOURCE_ATTRIBUTES}
  detection/development: # /development властивості можуть не підтримуватися у всіх SDK
    detectors:
      - service: # додасть "service.instance.id" та "service.name" зі змінної середовища OTEL_SERVICE_NAME
      - host:
      - process:
      - container:

propagator:
  composite:
    - tracecontext:
    - baggage:

# Читання точки доступу бекенду зі змінної середовища OTEL_EXPORTER_OTLP_ENDPOINT.
# Це добре узгоджується з OpenTelemetry Operator та іншими методами розгортання.

tracer_provider:
  sampler:
    parent_based:
      root:
        always_on:
  processors:
    - batch:
        exporter:
          otlp_http:
            endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:-http://localhost:4318}/v1/traces

meter_provider:
  readers:
    - periodic:
        exporter:
          otlp_http:
            endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:-http://localhost:4318}/v1/metrics

logger_provider:
  processors:
    - batch:
        exporter:
          otlp_http:
            endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:-http://localhost:4318}/v1/logs

Змінні середовища

  • Декларативна конфігурація підтримує синтаксис для читання змінних середовища.
  • Усі змінні середовища ігноруються, якщо ви явно не додасте їх до файлу конфігурації.

Наприклад, якщо ви встановите:

OTEL_RESOURCE_ATTRIBUTES=service.version=1.1,deployment.environment.name=staging

Наступна конфігурація створіть ресурс з service.version=1.1 та deployment.environment.name=staging:

resource:
  attributes_list: ${OTEL_RESOURCE_ATTRIBUTES}

Конфігурація міграції

Якщо ваша поточна конфігурація базується на змінних середовища, ви можете використовувати конфігурацію міграції як відправну точку для переходу на декларативну конфігурацію.

Доступні параметри конфігурації

Повний перелік параметрів конфігурації можна знайти в прикладі kitchen sink.

Точка доступу для кожного окремого сигналу

Якщо у вас є різні точки доступу для трасування, метрик та логів, використовуйте наступну конфігурацію при використанні otlp_http:

OTLP HTTP ExporterЗначення Endpoint
Трейси${OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:-http://localhost:4318/v1/traces}
Метрики${OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:-http://localhost:4318/v1/metrics}
Логи${OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:-http://localhost:4318/v1/logs}

Експортер gRPC

Замість otlp_http ви також можете використовувати otlp_grpc для експорту через gRPC:

otlp_grpc:
  endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:-http://localhost:4317}

Атрибути ресурсів

Рекомендований підхід до встановлення атрибутів ресурсів — через змінні середовища, оскільки він добре працює з інструментами, що встановлюють змінні середовища, такими як OpenTelemetry Operator для Kubernetes.

Однак ви також можете встановити атрибути ресурсів безпосередньо у файлі конфігурації:

resource:
  attributes:
    - name: service.name
      value: shopping_cart
    - name: deployment.environment.name
      value: staging

Востаннє змінено December 26, 2024: [uk] Ukrainian documentation for OpenTelemetry (cf1a5745)