Экспорт с помощью 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 |
Если вам необходимо использовать сжатие контента, выполните экспорт в SaaS, Collector или АктивныШлюз.
Чтобы отправлять трассировки в ЕдиныйАгент, необходимо сначала включить контроллер выполнения расширений. Это можно сделать глобально для всей среды, для групп хостов или только для отдельных хостов.
Включить на уровне среды
- Перейдите в раздел Настройки и выберите Предпочтения > Контроллер Расширений.
- Включите опцию Включить контроллер выполнения расширений.
- Включите функцию Включить локальный HTTP Metric, Log and Event Ingest API.
Включить для группы хостов
- Перейдите в раздел Состояние развертывания, а затем выберите ЕдиныеАгенты.
- На странице развертывания ЕдиногоАгента отключите опцию Показывать новые развертывания ЕдиногоАгента.
- Отфильтруйте таблицу по
Host groupи выберите группу хостов, которую вы хотите настроить. Свойство Группа хостов не отображается, если выбранный хост не принадлежит ни одной группе хостов. Отобразится страница развёртывания ЕдиногоАгента, отфильтрованная по выбранной группе хостов. Для каждого указанного хоста есть ссылкаHost group:<group name>, где<group name>— имя группы хостов, которую нужно настроить. - Выберите название группы хостов в любой строке. Поскольку вы отфильтровали данные по группе хостов, все отображаемые хосты относятся к одной и той же группе.
- В настройках группы хостов выберите Контроллер Расширений.
- Включите опцию Включить контроллер выполнения расширений.
Включить для одного хоста
- Перейдите в раздел Хосты (последняя версия Ключ-АСТРОМ).
- Найдите и выберите свой хост, чтобы отобразить страницу обзора хоста.
- В правом верхнем углу страницы обзора хоста выберите Дополнительно ( … ) > Настройки.
- В настройках группы хостов выберите Контроллер Расширений.
- Включите опцию Включить контроллер выполнения расширений.
При включении 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 |
|---|---|---|
|
|
|