Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Monitor теперь поддерживает собственную обработку сигналов по протоколу OpenTelemetry (OTLP). Данные телеметрии можно отправлять непосредственно из приложений с инструментированием OpenTelemetry в Azure Monitor.
Это важно
- Эта функция доступна в предварительной версии. Предварительные версии функций предоставляются без соглашения об уровне обслуживания и не рекомендуется для рабочих нагрузок.
- Дополнительные сведения см. в разделе Supplemental Terms of Use for Microsoft Azure Previews.
Обзор
Azure Monitor может получать сигналы OTLP через три механизма приема:
- OpenTelemetry Collector — отправка данных непосредственно в облачные конечные точки приема данных Azure Monitor из любого развертывания сборщика OTel.
- Azure Monitor Агент (AMA) — сбор данных из приложений, работающих на Azure виртуальных машинах, Масштабируемые наборы виртуальных машин или серверах с поддержкой Azure Arc.
- Azure Kubernetes Service (AKS) дополнение — сбор телеметрии из контейнерных приложений в кластерах AKS. Дополнительную информацию см. в Enable Azure Monitor OpenTelemetry для кластеров Kubernetes.
В этой статье описывается метод сборщика OTel для сбора сигналов OTLP.
Предпосылки
- подписка Azure: если у вас нет подписки, создайте подписку Azure бесплатно.
- Инструментированное приложение с использованием OpenTelemetry SDK (любой поддерживаемый язык)
- Для развертываний сборщика OpenTelemetry: сборщик версии 0.132.0 или более поздней с расширением проверки подлинности Azure.
Настройка приема данных OTLP
Вы можете настроить прием данных OTLP в Azure Monitor с помощью одного из двух подходов. Подход на основе Application Insights рекомендуется для большинства сценариев, так как он автоматизирует создание ресурсов и обеспечивает встроенные возможности устранения неполадок.
Вариант 1. Создание ресурса Application Insights с поддержкой OTLP (рекомендуется)
Этот метод автоматически подготавливает все необходимые Azure ресурсы и настраивает их связи. Вы можете использовать Application Insights для мониторинга производительности приложений, распределенной трассировки и анализа сбоев.
Зарегистрируйте функции предварительного просмотра и провайдера Application Insights OTLP.
az feature register --name OtlpApplicationInsights --namespace Microsoft.Insights az feature list -o table --query "[?contains(name, 'Microsoft.Insights/OtlpApplicationInsights')].{Name:name,State:properties.state}" az provider register -n Microsoft.InsightsНа портале Azure создайте ресурс Application Insights.
На вкладке "Основные сведения" установите флажок "Включить поддержку OTLP ".
Завершите процесс создания ресурсов.
После развертывания перейдите на страницу обзора ресурса Application Insights.
Скопируйте следующие значения в разделе сведений о подключении OTLP .
- Идентификатор ресурса правила сбора данных (DCR)
- URL-адреса конечной точки для трассировок, журналов и метрик (если вы используете сборщик OpenTelemetry)
Перейдите к настройке сборщика OpenTelemetry.
Вариант 2. Оркестрация ресурсов вручную
Этот параметр требует вручную создавать и настраивать конечные точки сбора данных (DCE), правила сбора данных (DCR) и целевые рабочие области. Используйте этот подход, если вам нужны пользовательские конфигурации или требуется повторно использовать существующие ресурсы.
Создание целевых рабочих областей
Если у вас нет рабочих областей, создайте следующие ресурсы в том же регионе Azure:
- Log Analytics рабочая область (LAW) — хранит данные журнала и трассировки
- Рабочая область Monitor Azure (AMW) - хранит данные метрик
Запишите идентификаторы ресурсов обеих рабочих областей для последующего использования.
(Необязательно) Создание ресурса Application Insights
Чтобы включить возможности устранения неполадок Application Insights с данными OTLP, выполните приведенные ниже действия.
- Создайте ресурс Application Insights в том же регионе, где находятся ваши рабочие области.
- Снимите флажок "Включить поддержку OTLP ", чтобы избежать создания повторяющихся ресурсов.
- Скопируйте идентификатор ресурса Application Insights.
Замечание
Если пропустить этот шаг, необходимо изменить шаблон ARM в следующем разделе, чтобы удалить ссылки Application Insights.
Развертывание конечной точки сбора данных и правила
- На портале Azure найдите Deploy настраиваемый шаблон и выберите его.
- Выберите Создать собственный шаблон в редакторе.
- Скопируйте содержимое шаблона из репозитория сообщества Azure Monitor Community.
- Вставьте шаблон в редактор и обновите параметры с идентификаторами ресурсов рабочей области и (необязательно) идентификатором ресурса Application Insights.
- В этом примере имя потока из шаблона DCR сообщества используется для создания URL-адреса. При необходимости можно изменить имя потока в определении DCR и сопоставить его при создании имени DCE. Имя потока должно начинаться с
Custom-Metrics-, затем с буквы, а затем с любого сочетания буквенно-цифровых символов,-и_. - Задайте расположение, соответствующее региону рабочей области.
- Просмотрите и создайте развертывание.
- После завершения развертывания перейдите к созданному DCR и скопируйте его идентификатор ресурса на странице обзора .
Настройка сборщика OpenTelemetry
Замечание
- В следующей конфигурации сборщика используются компоненты из проекта OpenTelemetry Collector Contrib и Azure Authentication Extension для отправки данных телеметрии в Azure Monitor. Вы также можете создать пользовательское распределение с помощью Конструктора Сборщика OpenTelemetry с компонентами из основного и дополнительного репозиториев.
- Поддержка этих компонентов с открытым исходным кодом предоставляется исключительно через каналы сообщества. Чтобы отправить отчеты об ошибках, запросить новые функции или сообщить о других проблемах, создайте новую проблему в общедоступном репозитории.
- Поддержка Azure доступна для служб и ресурсов Azure, включая Application Insights, Azure Monitor и рабочие области Log Analytics, а также Правила сбора данных и Конечные точки сбора данных.
Настройка аутентификации Microsoft Entra
Сборщик OpenTelemetry требует аутентификации Microsoft Entra для отправки данных в Azure Monitor.
Для виртуальных машин Azure и наборов масштабируемых виртуальных машин:
- Включите системное управляемое удостоверение для вашего вычислительного ресурса.
- Назначьте роль Monitoring Metrics Publisher управляемому удостоверению.
- Чтобы использовать удостоверение, назначаемое системой, оставьте
managed_identityраздел пустым в конфигурации сборщика.
Для сред, не связанных с Azure:
Настройте расширение проверки подлинности Azure в вашем сборщике с корректным удостоверением Microsoft Entra.
extensions:
azureauth/monitor:
managed_identity:
client_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # Your identity client ID
scopes:
- https://monitor.azure.com/.default
Для удостоверений рабочей нагрузки, главных субъектов службы или других удостоверений Microsoft Entra укажите client_id удостоверения, необходимого для проверки подлинности.
Предоставление разрешений правилу сбора данных
Удостоверение, с помощью которого ваш сборщик данных должно иметь разрешение на запись данных в DCR:
Перейдите к DCR на портале Azure.
Выберите элемент управления доступом (IAM) в области навигации слева.
Выберите Добавить>Добавить назначение ролей.
Выберите Monitoring Metrics Publisher и выберите Next.
Screenshot, показывающий выбор роли Monitoring Metrics Publisher.
Чтобы назначить доступ, выберите «Пользователь», «Группа» или «Принципал службы».
Выберите участников и выберите приложение или управляемое удостоверение.
Нажмите кнопку "Проверить и назначить" , чтобы сохранить назначение роли.
Создание URL-адресов конечных точек
Если вы создали ресурсы с помощью метода Application Insights, у вас уже есть URL-адреса конечных точек из раздела сведений о подключении OTLP. Перейдите к настройке конфигурации сборщика обновлений.
При необходимости можно изменить имя потока в определении правила сбора данных (DCR), но имя потока, используемое в DCR, должно точно соответствовать имени потока, используемому при создании URL-адреса конечной точки сбора данных (DCE), и это соответствие учитывает регистр. Имя потока должно начинаться с Custom-Metrics-, за которым следует буква, а затем любое сочетание буквенно-цифровых символов, дефисов (-) или подчеркивания (_). При изменении имени потока необходимо обновить все ссылки на имя потока в шаблоне DCR и убедиться, что URL-адрес DCE использует одно и то же значение.
Для управляемых вручную ресурсов создайте URL-адреса конечной точки:
Перейдите к конечной точке сбора данных на портале Azure.
Выберите представление JSON на странице обзора .
Скопируйте значения конечных точек
logsIngestionиmetricsIngestion."logsIngestion": { "endpoint": "https://<name>.<location>-1.ingest.monitor.azure.com" }, "metricsIngestion": { "endpoint": "https://<name>.<location>-1.metrics.ingest.monitor.azure.com" }Перейдите к Правилу Сбора Данных и скопируйте неизменяемый идентификатор на странице Обзор.
Создайте URL-адреса конечной точки с помощью этого шаблона:
Конечная точка метрик:
https://<metrics-dce-domain>/datacollectionRules/<dcr-immutable-id>/streams/Custom-Metrics-OTEL/otlp/v1/metricsКонечная точка журналов:
https://<logs-dce-domain>/datacollectionRules/<dcr-immutable-id>/streams/Microsoft-OTLP-Logs/otlp/v1/logsКонечная точка трассировки:
https://<logs-dce-domain>/datacollectionRules/<dcr-immutable-id>/streams/Microsoft-OTLP-Traces/otlp/v1/tracesЗамечание
Конечная точка трассировки использует домен DCE журналов.
Обновление конфигурации сборщика
Настройте сборщик OpenTelemetry с расширением аутентификации и конечными точками Azure Monitor. Ниже приведен пример конфигурации:
receivers:
otlp:
protocols:
grpc:
endpoint: localhost:4317
http:
endpoint: localhost:4318
processors:
batch:
extensions:
azureauth/monitor:
use_default: true
scopes:
- https://monitor.azure.com/.default
exporters:
otlphttp/azuremonitor:
traces_endpoint: "https://<logs-dce-domain>/datacollectionRules/<dcr-immutable-id>/streams/<strong>Microsoft-OTLP-Traces</strong>/otlp/v1/traces"
logs_endpoint: "https://<logs-dce-domain>/datacollectionRules/<dcr-immutable-id>/streams/<strong>Microsoft-OTLP-Logs</strong>/otlp/v1/logs"
metrics_endpoint: "https://<metrics-dce-domain>/datacollectionRules/<dcr-immutable-id>/streams/microsoft-otelmetrics/otlp/v1/metrics"
auth:
authenticator: azureauth/monitor
service:
extensions:
- azureauth/monitor
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/azuremonitor]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/azuremonitor]
logs:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/azuremonitor]
Это важно
Интерфейсы Application Insights, включая предварительно созданные панели мониторинга и запросы, ожидают и требуют метрик OTLP с дельта-временностью и экспоненциальной агрегацией гистограммы.
Если вы выдаете метрики OTLP из пакета SDK OpenTelemetry, настройте экспортирующий модуль OTLP для формирования метрик с временной дельтой. Дополнительные сведения см. в разделе "Экспортеры метрик" — OTLP.
Если сборщик OpenTelemetry получает метрики OTLP в кумулятивной шкале времени, добавьте
processors: [cumulativetodelta]в раздел метрик конфигурации сборщика OpenTelemetry для преобразования в дельта-шкалу времени. Дополнительные сведения см. в разделе cumulativetodeltaprocessor на GitHub.