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

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

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

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

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

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

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

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

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

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

file_format: '1.0-rc.1'

resource:
  attributes_list: ${OTEL_RESOURCE_ATTRIBUTES}
  detection/development:
    detectors:
      - service: # буде додавати "service.instance.id" та "service.name" з OTEL_SERVICE_NAME

propagator:
  composite:
    - tracecontext:
    - baggage:

tracer_provider:
  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 (2a3c5648)