Экспорт с помощью OTLP

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

Протокол OpenTelemetry (OTLP) — основной сетевой протокол для обмена телеметрическими данными между службами и приложениями, поддерживаемыми OpenTelemetry.

Ключ-АСТРОМ предоставляет собственные конечные точки OTLP со следующими сервисами:

  • SaaS-платформа
  • Экземпляры АктивногоШлюза
  • Настройки ЕдиногоАгента

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

Пути загрузки по умолчанию

Пути приема, используемые Ключ-АСТРОМ для отдельных типов сигналов, соответствуют стандартным путям OpenTelemetry.

Тип сигнала Путь
Трассировки /v1/traces
Метрики /v1/metrics
Логи /v1/logs

В зависимости от конфигурации, вам может потребоваться добавить эти пути по отдельности к базовым URL-адресам следующих конечных точек сервиса при указании URL-адресов экспорта. Это можно сделать либо в коде, либо с помощью ручного инструментария , либо с помощью стандартных переменных среды.

Экспорт в SaaS и АктивныйШлюз

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

Тип АктивногоШлюза Базовый URL-адрес
Ключ-АСТРОМ SaaS https://{your-environment-id}.live.dynatrace.com/api/v2/otlp
Окружающая среда АктивногоШлюза1 https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/otlp
Контейнерная среда АктивногоШлюза2 https://{your-activegate-domain}/e/{your-environment-id}/api/v2/otlp
1Окружающая среда АктивногоШлюза по умолчанию прослушивает порт 9999. Если вы изменили этот порт, укажите его в URL-адресе.

2Для этой установки требуется PersistentVolumeClaim.


Следующие примеры URL-адресов иллюстрируют комбинации базовых URL-адресов и путей для типов сигналов.

Тип ActiveGate Тип сигнала URL
SaaS Трассировки https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces
Метрики https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/metrics
Логи https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/logs
Окружающая среда АктивногоШлюза1 Трассировки https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/otlp/v1/traces
Метрики https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/otlp/v1/metrics
Логи2 https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/otlp/v1/logs
1Окружающая среда АктивногоШлюза по умолчанию прослушивает порт 9999. Если вы изменили этот порт, укажите его в URL-адресе.

2Для этой установки требуется PersistentVolumeClaim.

Экспортировать детали

Вызовы к этим конечным точкам API должны соответствовать следующим деталям протокола:

  • Использование HTTP—gRPC пока не поддерживается
  • Использование двоичного формата Protocol Buffers — JSON пока не поддерживается.

Аутентификация

Аутентификация осуществляется с использованием токена доступа API и заголовка HTTP Authorization.

Authorization: Api-Token dt.....

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

Тип сигнала Область доступа
Трассировки openTelemetryTrace.ingest
Метрики metrics.ingest
Логи logs.ingest

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

Требования к сети

Убедитесь, что выполняются следующие условия:

  • TCP-порт не заблокирован Поскольку связь OTLP с АктивнымШлюзом осуществляется через порты 443 (для SaaS и Managed) или 9999 (для Environment АктивныхШлюзов), убедитесь, что соответствующий порт TCP не заблокирован брандмауэром или любым другим решением по управлению сетью, которое вы можете использовать.
  • Хранилище доверенных сертификатов вашей системы обновлено. Чтобы избежать возможных проблем с SSL-сертификатами из-за просроченных или отсутствующих корневых сертификатов по умолчанию, убедитесь, что хранилище доверенных сертификатов вашей системы обновлено.

Экспорт в Collector

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

Дополнительные сведения о настройке экземпляра Collector см. в разделе Ключ-АСТРОМ Collector.

Преобразование gRPC

Поскольку Ключ-АСТРОМ в настоящее время требует экспорта OTLP с HTTP, вы можете использовать Collector для преобразования экспорта gRPC в HTTP.

Более подробную информацию см. в разделе Преобразование OTLP gRPC.

Аутентификация и TLS

Необходимость использования TLS и аутентификации запросов к коллектору зависит от его настроек/конфигурации. По умолчанию приёмник OTLP настроен на протокол HTTP с открытым текстом и не требует аутентификации.

Окончательное исходящее соединение от Collector к Ключ-АСТРОМ всегда требует аутентификации и TLS.

Требования к сети

Убедитесь, что выполняются следующие условия:

  • Сетевые порты не заблокированы Убедитесь, что сетевые порты, требуемые настроенными экземплярами приемника, не блокируются брандмауэром или любым другим решением по управлению сетью, используемым в рамках вашей инфраструктуры.

Экспорт в ЕдиныйАгент (только трассировки)

ЕдиныйАгент предоставляет специальную конечную точку OTLP для экспорта OpenTelemetry только на локальный хост и только на трассировки.

  • Только локально означает, что ЕдиныйАгент предоставляет конечную точку исключительно на 127.0.0.1 (localhost)
  • Только трассировки означает, что ЕдиныйАгент принимает только информацию трассировки, а не метрики или логи.
Поддержка кодирования контента

ЕдиныйАгент пока не поддерживает сжатие контента с использованием HTTP-заголовка. Обратите на это особое внимание при инструментировании приложения Ruby Content-Encoding, поскольку OpenTelemetry SDK для Ruby по умолчанию использует Content-Encoding: gzip.

Если вам необходимо использовать сжатие контента, выполните экспорт в SaaS, Collector или АктивныШлюз.

Чтобы отправлять трассировки в ЕдиныйАгент, необходимо сначала включить контроллер выполнения расширений. Это можно сделать глобально для всей среды, для групп хостов или только для отдельных хостов.

Включить на уровне среды

  1. Перейдите в раздел Настройки и выберите Предпочтения > Контроллер Расширений.
  2. Включите опцию Включить контроллер выполнения расширений.
  3. Включите функцию Включить локальный HTTP Metric, Log and Event Ingest API.

Включить для группы хостов

  1. Перейдите в раздел Состояние развертывания, а затем выберите ЕдиныеАгенты.
  2. На странице развертывания ЕдиногоАгента отключите опцию Показывать новые развертывания ЕдиногоАгента.
  3. Отфильтруйте таблицу по Host group и выберите группу хостов, которую вы хотите настроить. Свойство Группа хостов не отображается, если выбранный хост не принадлежит ни одной группе хостов. Отобразится страница развёртывания ЕдиногоАгента, отфильтрованная по выбранной группе хостов. Для каждого указанного хоста есть ссылка Host group: <group name>, где <group name>— имя группы хостов, которую нужно настроить.
  4. Выберите название группы хостов в любой строке. Поскольку вы отфильтровали данные по группе хостов, все отображаемые хосты относятся к одной и той же группе.
  5. В настройках группы хостов выберите Контроллер Расширений.
  6. Включите опцию Включить контроллер выполнения расширений.

Включить для одного хоста

  1. Перейдите в раздел Хосты (последняя версия Ключ-АСТРОМ).
  2. Найдите и выберите свой хост, чтобы отобразить страницу обзора хоста.
  3. В правом верхнем углу страницы обзора хоста выберите Дополнительно ( … ) > Настройки.
  4. В настройках группы хостов выберите Контроллер Расширений.
  5. Включите опцию Включить контроллер выполнения расширений.

При включении EEC установки ЕдиногоАгента на соответствующих хостах начнут принимать трассировки OTLP по URL http://localhost:14499/otlp/v1/traces.

ЕдиныйАгент использует TCP-порт 14499 в качестве порта по умолчанию для этой конечной точки. Вы можете изменить порт с помощью oneagentctl.

EEC недоступен в конфигурациях контейнеров

Конечная точка приема данных EEC доступна только при развертывании Full-Stack и Infrastructure Monitoring. Она недоступна при контейнерных конфигурациях. Используйте АктивныйШлюз в качестве конечной точки экспорта для контейнерных приложений.

Экспортирт деталей

Вызовы к этим конечным точкам API должны соответствовать следующим деталям протокола:

  • Использование HTTP—gRPC пока не поддерживается
  • Использование двоичного формата Protocol Buffers — JSON пока не поддерживается.
  • Не поддерживает сжатие контента с использованием заголовка Content-Encoding.

Аутентификация

Поскольку ЕдиныйАгент является локальной конечной точкой, для него не требуется аутентификация.

Требования к сети

  • Убедитесь, что для используемого TCP-порта нет локальных ограничений (по умолчанию: 14499) Поскольку связь OTLP является исключительно локальной, не нужно особо настраивать сеть, если только вы не ограничили связь по локальной сети. В этом случае вам нужно убедиться, что на используемый порт TCP (по умолчанию: 14499) нет локальных ограничений.

Сравнение конечных точек

API приема данных Конечная точка ЕдиногоАгента Collector
  • Поддерживает все сигналы OpenTelemetry (трейсы, метрики, логи)
  • Нет автоматического пополнения информации
  • SSL и аутентификация
  • Поддержка сжатия контента (с использованием Content-Encoding)
  • Нет поддержки метрик и логов (только трассировки)
  • Автоматическое пополнение информации
  • Нет аутентификации
  • Нет поддержки сжатия контента (с использованием Content-Encoding)
  • Поддержка преобразования сигналов, редактирования данных и пакетирования
  • Поддержка gRPC и JSON