Пакеты запроса OTLP

Материал из Документация Ключ-АСТРОМ

В следующем примере конфигурации показано, как настроить экземпляр Collector и его собственный пакетный процессор для постановки в очередь и пакетной обработки запросов OTLP, а также повышения пропускной способности.

Рекомендуемая конфигурация

Для оптимальной производительности вашего экземпляра Collector мы рекомендуем применять эту конфигурацию во всех настройках.

Если вы используете другие процессоры, убедитесь, что пакетный процессор настроен последним в вашем конвейере.

Предустановка

  • Один из следующих дистрибутивов Collector с пакетным процессором:
  • URL-адрес конечной точки API Ключ-АСТРОМ, на которую следует экспортировать данные.
  • Токен API с соответствующей областью доступа (требуется только для SaaS и АктивногоШлюза)

Информацию о настройке коллектора с использованием указанной ниже конфигурации см. в разделах Развертывание коллектора и Конфигурация коллектора.

Демо конфигурация

receivers:

  otlp:

    protocols:

      grpc:

        endpoint: 0.0.0.0:4317

      http:

        endpoint: 0.0.0.0:4318

processors:

  batch/traces:

    send_batch_size: 5000

    send_batch_max_size: 5000

    timeout: 60s

  batch/metrics:

    send_batch_size: 3000

    send_batch_max_size: 3000

    timeout: 60s

  batch/logs:

    send_batch_size: 1800

    send_batch_max_size: 2000

    timeout: 60s

exporters:

  otlphttp:

    endpoint: ${env:DT_ENDPOINT}

    headers:

      Authorization: "Api-Token ${env:DT_API_TOKEN}"

service:

  pipelines:

    traces:

      receivers: [otlp]

      processors: [batch/traces]

      exporters: [otlphttp]

    metrics:

      receivers: [otlp]

      processors: [batch/metrics]

      exporters: [otlphttp]

    logs:

      receivers: [otlp]

      processors: [batch/logs]

      exporters: [otlphttp]

Компоненты

Для нашей конфигурации мы настраиваем следующие компоненты.

Приемники

В разделе receivers мы указываем стандартный приемник otlp, как активный компонент приемника для нашего экземпляра Collector.

Это сделано для демонстрационных целей. Вы можете указать здесь любой другой допустимый получатель (например, zipkin).

Процессоры

В разделе processors мы указываем отдельный batch процессор для каждого телеметрического сигнала со следующими параметрами:

  • send_batch_size: устанавливает минимальное количество записей, которые процессор поместит в очередь перед отправкой всего пакета.
  • send_batch_max_size: устанавливает максимальное количество записей, которое может содержать пакет. При большем количестве записей пакет будет разбит на более мелкие.
  • timeout: определяет интервал времени, по истечении которого будет отправлен пакет. Пакет отправляет timeout только в том случае, если условие send_batch_size не достигнуто.

При такой конфигурации сборщик помещает записи телеметрии в очередь пакетами, обеспечивая хороший баланс между размером и количеством экспортных запросов к API Ключ-АСТРОМ.

Значения размера пакетов

На конечный размер пакета влияет не только количество отдельных записей телеметрии, но и количество связанных с ними атрибутов и их размер.

Например, атрибуты диапазонов/метрик/логов могут увеличить размер пакета при том же количестве записей в зависимости от количества/величины атрибутов.

Используйте указанные выше значения конфигурации в качестве отправной точки, но обязательно адаптируйте их к объему своих данных и соблюдайте ограничения API Ключ-АСТРОМ для каждого типа сигнала (трасировки, метрики, логи), чтобы избежать отклонения запросов.

Метрики самоконтроля АктивногоШлюза можно использовать для диагностики отклоненных запросов. Например, можно использовать фильтрацию dsfm:active_gate.rest.request_count по размеру operation (POST /otlp/v1/<...> для захвата OTLP) и разделение по response_code. Запросы большого размера отклоняются с кодом статуса HTTP 413.

Другой альтернативой является проверка логов Collector на наличие сообщений об ошибках, таких как: HTTP Status Code 413, Message=Max Payload size of.

Экспортеры

В разделе exporters мы указываем экспортер otlphttp по умолчанию и настраиваем его с помощью URL-адреса нашего API Ключ-АСТРОМ и требуемого токена аутентификации.

Для этой цели мы устанавливаем следующие две переменные среды и ссылаемся на них в значениях конфигурации для endpoint и Authorization.

  • DT_ENDPOINT содержит базовый URL-адрес конечной точки API Ключ-АСТРОМ (например, https://{your-environment-id}.live.dynatrace.com/api/v2/otlp)
  • DT_API_TOKEN содержит токен API

Сервисные контейнеры

В разделе service мы собираем наши объекты приемника и экспортера в конвейеры для трассировок, метрик и логов и включаем наш пакетный процессор, ссылаясь на processors для каждого соответствующего конвейера.