Автоинструментация, также называемая мониторингом среды выполнения, — это самый простой способ включить Application Insights для службы приложений Azure без изменения кода или необходимости в сложных настройках. На основе конкретного сценария оцените, требуется ли более расширенный мониторинг с помощью ручного инструментирования.
Примечание.
Поддержка приема ключей инструментирования будет завершена 31 марта 31, 2025 г. Прием ключей инструментирования будет и дальше осуществляться, но мы больше не будем предоставлять обновления или поддержку для этой функции.
Перейдите на строки подключения, чтобы использовать новые возможности.
Включить Application Insights
Внимание
Если обнаружены как автоинструментация, так и ручное инструментирование с использованием SDK, учитываются только параметры ручного инструментирования. Это соглашение предотвращает отправку повторяющихся данных. Дополнительные сведения см. в разделе "Устранение неполадок".
Автоинструментация в портале Azure
Выберите Application Insights в меню навигации слева службы приложений и нажмите кнопку "Включить".
Создайте новый ресурс или выберите существующий ресурс Application Insights для этого приложения.
Примечание.
При нажатии кнопки "ОК " для создания нового ресурса появится запрос на применение параметров мониторинга. При выборе "Продолжить" вы можете связать новый ресурс Application Insights со службой приложений. Затем служба приложений перезапускается.
После указания используемого ресурса вы можете выбрать способ сбора данных на каждую платформу для приложения Application Insights. Параметры коллекции в ASP.NET Core могут быть рекомендуемыми или отключенными.
Внимание
Если обнаруживаются мониторинг автоматической инструментализации и инструментирование с использованием ручного пакета SDK, учитываются только настройки ручного инструментирования. Это соглашение предотвращает отправку повторяющихся данных. Дополнительные сведения см. в разделе "Устранение неполадок".
Примечание.
Сочетание APPINSIGHTS_JAVASCRIPT_ENABLED
и urlCompression
не поддерживается. Дополнительные сведения см. в разделе Устранение неполадок.
Автоматическая инструментализация в портале Azure
Выберите Application Insights в меню навигации слева службы приложений и нажмите кнопку "Включить".
Создайте новый ресурс или выберите существующий ресурс Application Insights для этого приложения.
Примечание.
При нажатии кнопки "ОК " для создания нового ресурса появится запрос на применение параметров мониторинга. При выборе "Продолжить" вы можете связать новый ресурс Application Insights со службой приложений. Затем служба приложений перезапускается.
После указания используемого ресурса вы можете выбрать способ сбора данных на каждую платформу для приложения Application Insights. ASP.NET мониторинг приложений включен по умолчанию с двумя разными уровнями коллекции, рекомендуемыми и базовыми.
В следующей таблице перечислены данные, собранные для каждого маршрута.
Данные |
Рекомендуется |
Базовая |
Добавляет тенденции использования ЦП, памяти и операций ввода-вывода. |
Да |
Нет |
Собирает тенденции использования и обеспечивает сопоставление от результатов доступности до транзакций. |
Да |
Да |
Собирает исключения, необработанные хост-процессом. |
Да |
Да |
Улучшает точность метрик APM под нагрузкой при использовании выборки. |
Да |
Да |
Сопоставляет микрослужбы в пределах границ запросов или зависимостей. |
Да |
Нет (только возможности APM для одного экземпляра) |
Примечание.
С помощью приложений Spring Boot Native Image используйте проект OpenTelemetry Distro / Application Insights в Java-приложениях Spring Boot с использованием нативного образа, вместо решения с Java-агентом Application Insights, описанного здесь.
Эта интеграция добавляет Application Insights Java 3.x и автоматически собирает телеметрию. Вы можете дополнительно применить дополнительные конфигурации и добавить собственную настраиваемую телеметрию.
Автоинструментация на портале Azure
Выберите Application Insights в меню навигации слева службы приложений и нажмите кнопку "Включить".
Создайте новый ресурс или выберите существующий ресурс Application Insights для этого приложения.
Примечание.
При нажатии кнопки "ОК " для создания нового ресурса появится запрос на применение параметров мониторинга. При выборе "Продолжить" вы можете связать новый ресурс Application Insights со службой приложений. Затем служба приложений перезапускается.
Внимание
Если обнаружены автоматическая инструментализация и ручное инструментирование с использованием SDK, учитываются только параметры ручного инструментирования. Это соглашение предотвращает отправку повторяющихся данных. Дополнительные сведения см. в разделе "Устранение неполадок".
Примечание.
Вы можете настроить автоматически присоединённого агента с помощью APPLICATIONINSIGHTS_CONFIGURATION_CONTENT
переменной среды в разделе Переменные среды службы приложений. Дополнительные сведения о параметрах конфигурации, которые можно передать с помощью этой переменной среды, см. в разделе Node.js Configuration.
Application Insights для Node.js интегрируется со Службой приложений Azure в Linux — как с контейнерами на основе кода, так и с пользовательскими контейнерами, а также со Службой приложений в Windows для приложений на основе кода. Эта интеграция находится в состоянии общедоступной предварительной версии.
Автоматическая инструментализация в портале Azure
Выберите Application Insights в меню навигации слева службы приложений и нажмите кнопку "Включить".
Создайте новый ресурс или выберите существующий ресурс Application Insights для этого приложения.
Примечание.
При нажатии кнопки "ОК " для создания нового ресурса появится запрос на применение параметров мониторинга. При выборе "Продолжить" вы можете связать новый ресурс Application Insights со службой приложений. Затем служба приложений перезапускается.
После того как вы указали, какой ресурс использовать, вы полностью готовы.
Application Insights для Python интегрируется со службой приложений Azure Linux на основе кода. Интеграция находится в публичной предварительной версии и добавляет пакет SDK Python, который находится в производственной готовности. Он инструментирует популярные библиотеки Python в коде, позволяя автоматически собирать и сопоставлять зависимости, журналы и метрики. Чтобы узнать, какие вызовы и метрики собираются, смотрите в библиотеках Python
Данные телеметрии ведения журнала собираются на уровне корневого логгера. Дополнительные сведения о собственной иерархии ведения журналов Python см. в документации по журналам Python.
Предварительные требования
- Python версии 3.11 или более ранней версии.
- Служба приложений должна быть развернута в виде кода. Пользовательские контейнеры не поддерживаются.
Автоинструментация в портале Azure
Выберите Application Insights в меню навигации слева службы приложений и нажмите кнопку "Включить".
Создайте новый ресурс или выберите существующий ресурс Application Insights для этого приложения.
Примечание.
При нажатии кнопки "ОК " для создания нового ресурса появится запрос на применение параметров мониторинга. При выборе "Продолжить" вы можете связать новый ресурс Application Insights со службой приложений. Затем служба приложений перезапускается.
Укажите ресурс, и он будет готов к использованию.
Библиотеки Python
После инструментирования вы собираете вызовы и метрики из этих библиотек Python:
Инструментирование Django
Чтобы использовать инструментирование OpenTelemetry Django, необходимо задать DJANGO_SETTINGS_MODULE
переменную среды в настройках службы приложений, чтобы указать путь от вашей папки приложения к модулю параметров.
Дополнительные сведения см. в документации по Django.
Вы можете автоматически собирать дополнительные данные при включении библиотек инструментирования из сообщества OpenTelemetry.
Внимание
Мы не поддерживаем или не гарантируем качество библиотек инструментирования сообщества. Чтобы предложить предложение для нашего дистрибутива, опубликуйте его или проголосуйте в нашем сообществе отзывов. Помните, что некоторые из них основаны на экспериментальных спецификациях OpenTelemetry и могут ввести будущие критические изменения.
Чтобы добавить в приложение библиотеку инструментирования OpenTelemetry от сообщества, установите её через файл requirements.txt
. Автоинструментация OpenTelemetry автоматически определяет и инструментирует все установленные библиотеки. Найдите список библиотек сообщества здесь.
Обновление расширения или агента мониторинга вручную
Обновление с версии 2.8.9 и выше
Обновление с версии 2.8.9 происходит автоматически, никаких дополнительных действий не требуется. Новые биты мониторинга доставляются в фоновом режиме в целевую службу приложений и подхватываются при перезапуске приложения.
Чтобы узнать, какую версию расширения вы используете, перейдите по адресу https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Обновление с версий 1.0.0–2.6.5
Начиная с версии 2.8.9 используется предварительно установленное расширение сайта. Если вы используете более раннюю версию, можно выполнить обновление одним из следующих двух способов:
Обновление путем включения через портал Azure: Даже если у вас установлено расширение Application Insights для Службы приложений, пользовательский интерфейс отображает только кнопку «Включить». За кулисами удаляется старое расширение частного сайта.
Обновление с помощью PowerShell.
- Настройте параметры приложения, чтобы включить предварительно установленное расширение сайта
ApplicationInsightsAgent
. Дополнительные сведения см. в разделе "Включить с помощью PowerShell".
- Вручную удалите расширение частного сайта с именем Application Insights extension for Azure App Service.
Если обновление выполняется с версии до 2.5.1, убедитесь, что ApplicationInsights
библиотеки DLL удаляются из папки корзины приложения. Дополнительные сведения см. в разделе Устранение неполадок.
Обновление с версии 2.8.9 и выше
Обновление с версии 2.8.9 происходит автоматически, никаких дополнительных действий не требуется. Новые данные мониторинга доставляются в фоновом режиме в целевой сервис приложения и подхватываются при перезапуске приложения.
Чтобы узнать, какую версию расширения вы используете, перейдите по адресу https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Обновление с версий 1.0.0–2.6.5
Начиная с версии 2.8.9 используется предварительно установленное расширение сайта. Если вы используете более раннюю версию, можно выполнить обновление одним из следующих двух способов:
Если обновление выполняется с версии до 2.5.1, убедитесь, что ApplicationInsights
библиотеки DLL удаляются из папки корзины приложения. Дополнительные сведения см. в разделе Устранение неполадок.
Версия Java Application Insights обновляется автоматически в рамках обновлений службы приложений. Если возникла проблема, исправленная в последней версии агента Java Application Insights, ее можно обновить вручную.
Отправьте JAR-файл агента Java в Служба приложений.
a. Сначала получите последнюю версию Azure CLI, следуя инструкциям здесь.
b. Затем получите последнюю версию агента Java Application Insights, следуя инструкциям ниже.
с. Затем разверните JAR-файл агента Java в Службу приложений, используя следующую команду: az webapp deploy --src-path applicationinsights-agent-{VERSION_NUMBER}.jar --target-path java/applicationinsights-agent-{VERSION_NUMBER}.jar --type static --resource-group {YOUR_RESOURCE_GROUP} --name {YOUR_APP_SVC_NAME}
. Кроме того, вы можете использовать это руководство для развертывания агента с помощью подключаемого модуля Maven.
Отключите Application Insights с помощью вкладки Application Insights в портал Azure.
После отправки jar-файла агента перейдите к конфигурации службы приложений. Если вам нужно использовать команду запуска для Linux, включите аргументы JVM:
Команда запуска программы не поддерживает JAVA_OPTS
для JavaSE или CATALINA_OPTS
для Tomcat.
Если команда запуска не используется, создайте новую переменную JAVA_OPTS
среды для JavaSE или CATALINA_OPTS
Tomcat со значением -javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar
.
Чтобы применить изменения, перезапустите приложение.
Примечание.
Если задать переменную среды JAVA_OPTS
для JavaSE или CATALINA_OPTS
для Tomcat, необходимо отключить Application Insights в портале Azure. Кроме того, если вы предпочитаете активировать Application Insights из портала Azure, убедитесь, что значение JAVA_OPTS
для JavaSE или CATALINA_OPTS
для переменной Tomcat не задано в параметрах конфигурации Службы приложений.
Версия Application Insights для Python обновляется автоматически в рамках обновлений службы приложений и нельзя обновить вручную.
В настоящее время мы не предлагаем варианты настройки расширения мониторинга для ASP.NET Core.
Чтобы настроить выборку, которой ранее вы могли управлять с помощью файла конфигурации applicationinsights.config, теперь вы можете взаимодействовать с ней с помощью параметров приложения с соответствующим префиксом MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor
.
Например, чтобы изменить начальный процент выборки, можно создать параметр MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage
приложения и значение 100
.
Чтобы отключить выборку, задайте для параметра MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MinSamplingPercentage
значение 100
.
Поддерживаются следующие параметры.
MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage
MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MinSamplingPercentage
MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_EvaluationInterval
MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MaxTelemetryItemsPerSecond
Список поддерживаемых настроек и определений для обработчика телеметрии адаптивной выборки см. в документации по настройке кода и по выборке.
После указания ресурса для использования можно настроить агент Java. Если агент Java не настроен, применяются конфигурации по умолчанию.
Доступен полный набор конфигураций . Необходимо просто вставить допустимый json-файл.
Исключите строка подключения и все конфигурации, которые находятся в предварительной версии, можно добавить элементы, которые в настоящее время находятся в предварительной версии, так как они становятся общедоступными.
После изменения конфигураций с помощью портала Azure APPLICATIONINSIGHTS_CONFIGURATION_FILE
переменные среды автоматически заполняются и отображаются на панели параметров Службы приложений. Эта переменная содержит полное содержимое JSON, которое вы вставили в поле ввода конфигурации на портале Azure для вашего Java-приложения.
Агент Node.js можно настроить с помощью JSON.
APPLICATIONINSIGHTS_CONFIGURATION_CONTENT
Задайте переменную среды строке JSON или задайте APPLICATIONINSIGHTS_CONFIGURATION_FILE
для переменной среды путь к файлу, содержаму JSON.
"samplingPercentage": 80,
"enableAutoCollectExternalLoggers": true,
"enableAutoCollectExceptions": true,
"enableAutoCollectHeartbeat": true,
"enableSendLiveMetrics": true,
...
Доступен полный набор конфигураций . Вам просто нужно использовать допустимый json-файл.
Можно настроить с помощью переменных среды OpenTelemetry, таких как:
Переменная среды |
Description |
OTEL_SERVICE_NAME , OTEL_RESOURCE_ATTRIBUTES |
Указывает атрибуты ресурсов OpenTelemetry, связанные с приложением. Атрибуты ресурсов можно задать с OTEL_RESOURCE_ATTRIBUTES или использовать OTEL_SERVICE_NAME для задания только service.name . |
OTEL_LOGS_EXPORTER |
Если задано значение None , отключает сбор и экспорт данных телеметрии ведения журнала. |
OTEL_METRICS_EXPORTER |
Если установлено значение None , отключается сбор и экспорт метрик телеметрии. |
OTEL_TRACES_EXPORTER |
Если задано значение None , отключает сбор и экспорт данных телеметрии распределенной трассировки. |
OTEL_BLRP_SCHEDULE_DELAY |
Задает интервал экспорта журнала в миллисекундах. По умолчанию — 5000. |
OTEL_BSP_SCHEDULE_DELAY |
Задает интервал экспорта распределенной трассировки в миллисекундах. Значение по умолчанию: 5000. |
OTEL_TRACES_SAMPLER_ARG |
Указывает долю данных телеметрии распределенной трассировки для выборочной обработки. Допустимые значения варьируются от 0 до 1. Значение по умолчанию — 1.0, то есть данные телеметрии не исключаются. |
OTEL_PYTHON_DISABLED_INSTRUMENTATIONS |
Указывает, какие интеграции OpenTelemetry нужно отключить. При отключении инструментирование не выполняется как часть автоинструментации. Принимает список имен библиотек в нижнем регистре, разделенный запятыми. Например, установите значение "psycopg2,fastapi" , чтобы отключить инструменты Psycopg2 и FastAPI. По умолчанию он содержит пустой список, включив все поддерживаемые инструментирования. |
Включение наблюдения на стороне клиента
Мониторинг на стороне клиента включен по умолчанию для приложений ASP.NET Core с рекомендуемой коллекцией независимо от того, присутствует ли параметр APPINSIGHTS_JAVASCRIPT_ENABLED
приложения.
Если вы хотите отключить мониторинг на стороне клиента:
Выберите Параметры>Конфигурация.
В разделе "Параметры приложения" создайте параметр нового приложения со следующими сведениями:
-
Имя:
APPINSIGHTS_JAVASCRIPT_ENABLED
-
Значение:
false
Сохраните параметры. Перезапустите приложение.
Мониторинг на стороне клиента является опцией, которую можно включить для ASP.NET. Чтобы включить мониторинг на стороне клиента, выполните следующие действия.
Выберите Параметры>Конфигурация.
В разделе "Параметры приложения" создайте новый параметр приложения.
-
Имя: введите APPINSIGHTS_JAVASCRIPT_ENABLED.
-
Значение: введите true.
Сохраните параметры и перезапустите приложение.
Чтобы отключить мониторинг на стороне клиента, удалите связанную пару значений ключа из параметров приложения или задайте значение false.
Автоматизация мониторинга
Чтобы включить сбор данных телеметрии с помощью Application Insights, достаточно просто задать следующие параметры приложения:
Определения параметров приложения
Имя параметра приложения |
Определение |
Значение |
ApplicationInsightsAgent_EXTENSION_VERSION |
Главное расширение, которое управляет мониторингом среды выполнения. |
~2 для Windows или ~3 для Linux |
XDT_MicrosoftApplicationInsights_Mode |
В режиме по умолчанию для обеспечения оптимальной производительности включены только основные функции. |
disabled или recommended . |
XDT_MicrosoftApplicationInsights_PreemptSdk |
Только для приложений ASP.NET Core. Включает взаимодействие (взаимодействие) с пакетом SDK Application Insights. Загружает расширение параллельно с пакетом SDK и использует его для отправки телеметрии. (Отключает пакет SDK Application Insights.) |
1 |
Определения параметров приложения
Имя параметра приложения |
Определение |
Значение |
ApplicationInsightsAgent_EXTENSION_VERSION |
Главное расширение, которое управляет мониторингом среды выполнения. |
~2 |
XDT_MicrosoftApplicationInsights_Mode |
В режиме по умолчанию для обеспечения оптимальной производительности включены только основные функции. |
default или recommended |
InstrumentationEngine_EXTENSION_VERSION |
Определяет, включен ли модуль двоичной перезаписи InstrumentationEngine . Этот параметр имеет последствия для производительности и влияет на время холодного запуска/старта. |
~1 |
XDT_MicrosoftApplicationInsights_BaseExtensions |
Определяет, фиксируются ли тексты таблиц SQL и Azure вместе с вызовами зависимостей. Предупреждение о производительности: затронуто время холодного запуска приложения. Для этого параметра требуется InstrumentationEngine . |
~1 |
Определения параметров приложения
Имя параметра приложения |
Определение |
Значение |
ApplicationInsightsAgent_EXTENSION_VERSION |
Главное расширение, которое управляет мониторингом среды выполнения. |
~2 в Windows или ~3 в Linux. |
XDT_MicrosoftApplicationInsights_Java |
Флаг, определяющий, включен ли агент Java. |
0 или 1 (применимо только в Windows). |
Примечание.
Отладчик моментальных снимков недоступен для приложений Java.
Определения параметров приложения
Имя параметра приложения |
Определение |
Значение |
ApplicationInsightsAgent_EXTENSION_VERSION |
Главное расширение, которое управляет мониторингом среды выполнения. |
~2 в Windows или ~3 в Linux. |
XDT_MicrosoftApplicationInsights_NodeJS |
Флаг, определяющий, включен ли агент Node.js. |
0 или 1 (применимо только в Windows). |
Примечание.
Отладчик моментальных снимков недоступен для приложений Node.js.
Определения параметров приложения
Имя параметра приложения |
Определение |
Значение |
APPLICATIONINSIGHTS_CONNECTION_STRING |
Строка подключений для ресурса Application Insights. |
Пример: abcd1234-ab12-cd34-abcd1234abcd |
ApplicationInsightsAgent_EXTENSION_VERSION |
Главное расширение, которое управляет мониторингом среды выполнения. |
~3 |
Примечание.
Отладчик моментальных снимков недоступен для приложений Python.
Параметры приложения службы приложений в Azure Resource Manager
Параметры приложения для службы приложений Azure можно управлять и настраивать с помощью шаблонов Azure Resource Manager. Этот метод можно использовать при развертывании новых ресурсов службы приложений с помощью автоматизации Resource Manager или при изменении параметров существующих ресурсов.
Базовая структура настроек приложения JSON для ресурса App Service:
"resources": [
{
"name": "appsettings",
"type": "config",
"apiVersion": "2015-08-01",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('webSiteName'))]"
],
"tags": {
"displayName": "Application Insights Settings"
},
"properties": {
"key1": "value1",
"key2": "value2"
}
}
]
Автоматизируйте создание ресурса Application Insights и связь с вновь созданным ресурсом App Service.
Чтобы создать шаблон Resource Manager с параметрами Application Insights по умолчанию, начните процесс, как если бы вы собирались создать новое веб-приложение с включенным Application Insights.
Создайте новый ресурс службы приложений с нужными сведениями о веб-приложении. Включите Application Insights на вкладке "Мониторинг ".
Выберите Просмотреть и создать. Затем выберите " Скачать шаблон для автоматизации".
Этот параметр создает последний шаблон Resource Manager со всеми необходимыми параметрами.
В следующем примере замените все проявления AppMonitoredSite
на имя вашего сайта:
Примечание.
Если вы используете Windows, установите ApplicationInsightsAgent_EXTENSION_VERSION
в ~2
. Если вы используете Linux, установите ApplicationInsightsAgent_EXTENSION_VERSION
в ~3
.
{
"resources": [
{
"name": "[parameters('name')]",
"type": "Microsoft.Web/sites",
"properties": {
"siteConfig": {
"appSettings": [
{
"name": "APPINSIGHTS_INSTRUMENTATIONKEY",
"value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').InstrumentationKey]"
},
{
"name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
"value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').ConnectionString]"
},
{
"name": "ApplicationInsightsAgent_EXTENSION_VERSION",
"value": "~2"
}
]
},
"name": "[parameters('name')]",
"serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"hostingEnvironment": "[parameters('hostingEnvironment')]"
},
"dependsOn": [
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"microsoft.insights/components/AppMonitoredSite"
],
"apiVersion": "2016-03-01",
"location": "[parameters('location')]"
},
{
"apiVersion": "2016-09-01",
"name": "[parameters('hostingPlanName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[parameters('location')]",
"properties": {
"name": "[parameters('hostingPlanName')]",
"workerSizeId": "[parameters('workerSize')]",
"numberOfWorkers": "1",
"hostingEnvironment": "[parameters('hostingEnvironment')]"
},
"sku": {
"Tier": "[parameters('sku')]",
"Name": "[parameters('skuCode')]"
}
},
{
"apiVersion": "2015-05-01",
"name": "AppMonitoredSite",
"type": "microsoft.insights/components",
"location": "West US 2",
"properties": {
"ApplicationId": "[parameters('name')]",
"Request_Source": "IbizaWebAppExtensionCreate"
}
}
],
"parameters": {
"name": {
"type": "string"
},
"hostingPlanName": {
"type": "string"
},
"hostingEnvironment": {
"type": "string"
},
"location": {
"type": "string"
},
"sku": {
"type": "string"
},
"skuCode": {
"type": "string"
},
"workerSize": {
"type": "string"
},
"serverFarmResourceGroup": {
"type": "string"
},
"subscriptionId": {
"type": "string"
}
},
"$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0"
}
Включите через PowerShell.
Чтобы включить мониторинг приложений с помощью PowerShell, необходимо изменить только базовые параметры приложения. Следующий пример обеспечивает мониторинг приложений для веб-сайта под названием AppMonitoredSite
в группе ресурсов AppMonitoredRG
. Он настраивает отправку данных в 012345678-abcd-ef01-2345-6789abcd
ключ инструментирования.
Примечание.
Если используется Windows, задайте для ApplicationInsightsAgent_EXTENSION_VERSION значение ~2
. Если используется Linux, задайте для ApplicationInsightsAgent_EXTENSION_VERSION значение ~3
.
$app = Get-AzWebApp -ResourceGroupName "AppMonitoredRG" -Name "AppMonitoredSite" -ErrorAction Stop
$newAppSettings = @{} # case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # preserve non Application Insights application settings.
$newAppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"] = "012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights instrumentation key
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~2"; # enable the ApplicationInsightsAgent
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop
Часто задаваемые вопросы
В этом разделы приводятся ответы на часто задаваемые вопросы.
Что Application Insights изменяет в моем проекте?
Подробности зависят от типа проекта. Ниже приведен пример веб-приложения.
Добавляет файлы в проект:
- ApplicationInsights.config
- ai.js
Устанавливает пакеты NuGet:
- API для Application Insights: основной интерфейс API
- API Application Insights для веб-приложений: используется для отправки данных телеметрии с сервера
- API Application Insights для приложений JavaScript: используется для отправки данных телеметрии из клиента
Включает сборки в пакетах:
- Microsoft.ApplicationInsights
- Microsoft.ApplicationInsights.Platform
Вставляет элементы в:
- Web.config
- packages.config
Вставляет фрагменты кода в код клиента и сервера для их инициализации с идентификатором ресурса Application Insights. Например, в приложении MVC код вставляется в главную страницу Views/Shared/_Layout.cshtml. Только для новых проектов добавьте Application Insights в существующий проект вручную.
В чём разница между стандартными метриками Application Insights и метриками службы Azure App Service?
Application Insights собирает телеметрические данные о запросах, которые поступили в приложение. Если сбой возникает в WebApps/WebServer, и запрос не достиг пользовательского приложения, Application Insights не имеет никаких данных телеметрии об этом.
Длительность для serverresponsetime
, рассчитанная с помощью Application Insights, не обязательно совпадает с временем отклика сервера, наблюдаемым веб-приложениями. Это связано с тем, что Application Insights учитывает только длительность, когда запрос фактически достигает пользовательского приложения. Если запрос зависает или помещается в очередь в WebServer, время ожидания включается в метрики веб-приложения, но не в метрики Application Insights.
Устранение неполадок
Тестирование подключения между узлом приложения и службой сбора данных
Пакеты SDK и агенты Application Insights отправляют телеметрические данные, которые обрабатываются в виде вызовов REST на наших конечных точках приема. Вы можете протестировать подключение с веб-сервера или хост-компьютера приложения к конечным точкам службы приема, используя чистых REST-клиентов из PowerShell или из команд curl. См. устранение неполадок с отсутствующими данными телеметрии приложений в Azure Monitor Application Insights.
Примечание.
При создании веб-приложения со средами выполнения ASP.NET Core
в Службе приложений развертывается статическая HTML-страница в качестве стартового веб-сайта. Мы не рекомендуем устранять проблему с шаблоном по умолчанию. Разверните приложение перед устранением неполадок.
Отсутствуют данные телеметрии
Windows
Убедитесь, что параметр приложения ApplicationInsightsAgent_EXTENSION_VERSION
имеет значение ~2
.
Перейдите на https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Убедитесь, что состояние расширения Application InsightsPre-Installed Site Extension, version 2.8.x.xxxx, is running.
Если приложение не запущено, следуйте инструкциям в разделе Включить мониторинг Application Insights.
Убедитесь, что источник состояния существует и выглядит как Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json
.
Если подобное значение отсутствует, это означает, что приложение в данный момент не выполняется или не поддерживается. Чтобы убедиться, что приложение запущено, попробуйте вручную посетить конечные точки приложения или URL-адреса приложения, что позволяет получить сведения о среде выполнения.
Убедитесь, что IKeyExists имеет значение True
. Если этот параметр имеет значение False
, добавьте APPINSIGHTS_INSTRUMENTATIONKEY
и APPLICATIONINSIGHTS_CONNECTION_STRING
вместе с идентификатором GUID ikey в параметры приложения.
Если ваше приложение ссылается на любые пакеты Application Insights, включение интеграции Службы приложений может не оказать влияния, и эти данные могут не отображаться в Application Insights. Например, если вы ранее инструментировали или пытались инструментировать ваше приложение, используя SDK для ASP.NET Core. Чтобы устранить проблему, в портале Azure включите взаимодействие с SDK Application Insights.
Внимание
Эта функция доступна в режиме предварительной версии.
Данные отправляются с использованием безкодового подхода, даже если изначально использовался SDK Application Insights.
Внимание
Если приложение использовало пакет SDK Application Insights для отправки любой телеметрии, данные телеметрии будут отключены. Другими словами, пользовательская телеметрия (например, любые Track*()
методы) и пользовательские настройки (например, выборка) будут отключены.
Linux
Убедитесь, что для параметра приложения ApplicationInsightsAgent_EXTENSION_VERSION
установлено значение ~3
.
Перейдите по адресу https://your site name.scm.azurewebsites.net/ApplicationInsights
.
На этом сайте убедитесь в следующем:
- Источник состояния существует и выглядит следующим образом
Status source /var/log/applicationinsights/status_abcde1234567_89_0.json
.
- Отображается значение
Auto-Instrumentation enabled successfully
. Если подобное значение отсутствует, это означает, что приложение не выполняется или не поддерживается. Чтобы убедиться, что приложение запущено, попробуйте вручную посетить конечные точки приложения или URL-адреса приложения, что позволяет получить сведения о среде выполнения.
-
IKeyExists — это
True
. Если этот параметр имеет значение False
, добавьте APPINSIGHTS_INSTRUMENTATIONKEY
и APPLICATIONINSIGHTS_CONNECTION_STRING
вместе с идентификатором GUID ikey в параметры приложения.
Веб-сайт по умолчанию, развернутый с помощью веб-приложений, не поддерживает автоматический мониторинг на стороне клиента.
При создании веб-приложения со средами выполнения ASP.NET Core в службе App Service он развертывает одну статическую HTML-страницу в качестве стартового веб-сайта. Статическая веб-страница также загружает веб-часть, управляемую ASP.NET, в IIS. Это поведение позволяет тестировать мониторинг на стороне сервера без кода, но не поддерживает автоматическое мониторинг на стороне клиента.
Если вы хотите протестировать бессерверный сервер и мониторинг на стороне клиента для ASP.NET Core в веб-приложении Служба приложений, рекомендуется следовать официальным руководствам по созданию веб-приложения ASP.NET Core. Затем используйте инструкции, описанные в текущей статье, чтобы включить мониторинг.
PHP и WordPress не поддерживаются
Сайты PHP и WordPress не поддерживаются. В настоящее время отсутствует официально поддерживаемый пакет SDK или агент для серверного мониторинга этих рабочих нагрузок. Чтобы отслеживать клиентские транзакции на сайте PHP или WordPress, добавьте клиентский JavaScript на веб-страницы с помощью пакета SDK JavaScript.
В следующей таблице приведено объяснение того, что эти значения означают, их основные причины и рекомендуемые исправления.
Значение проблемы |
Описание |
Исправить |
AppAlreadyInstrumented:true |
Это значение указывает, что расширение обнаружило некоторый аспект SDK, уже присутствующий в приложении, и прекращает выполнение. Ссылка на Microsoft.ApplicationInsights.AspNetCore или Microsoft.ApplicationInsights может вызвать это значение. |
Удалите ссылки. Некоторые из этих ссылок добавляются по умолчанию из определенных шаблонов Visual Studio. Более ранние версии Visual Studio ссылаются на Microsoft.ApplicationInsights . |
AppAlreadyInstrumented:true |
Наличие Microsoft.ApplicationsInsights библиотеки DLL в папке приложения из предыдущего развертывания также может привести к этому значению. |
Очистите папку приложения, чтобы убедиться, что эти библиотеки DLL удалены. Проверьте каталог bin вашего локального приложения и каталог wwwroot в Службе приложений. (Чтобы проверить каталог wwwroot вашего веб-приложения Службы приложений, выберите Расширенные средства (Kudu) >Консоль отладки>CMD>home\site\wwwroot). |
IKeyExists:false |
Это значение указывает, что ключ инструментирования отсутствует в параметре APPINSIGHTS_INSTRUMENTATIONKEY приложения. Возможные причины включают случайное удаление значений или забыли задать значения в скрипте автоматизации. |
Убедитесь, что этот параметр присутствует в настройках приложения службы приложений. |
Примечание.
При создании веб-приложения со средами выполнения ASP.NET
в Службе приложений, развертывается одна статическая HTML-страница в качестве начального веб-сайта.
Не рекомендуется устранять проблему с шаблоном по умолчанию. Разверните приложение перед устранением неполадок.
Отсутствуют данные телеметрии
Убедитесь, что настройка приложения ApplicationInsightsAgent_EXTENSION_VERSION
установлена в значение ~2
.
Перейдите на https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Подтвердите, что Application Insights Extension Status
это Pre-Installed Site Extension, version 2.8.x.xxxx
и что оно работает.
Если он не запущен, следуйте инструкциям, чтобы включить мониторинг Application Insights.
Убедитесь, что источник состояния существует и выглядит следующим образом Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json
.
Если подобное значение отсутствует, это означает, что приложение в данный момент не выполняется или не поддерживается. Чтобы убедиться, что приложение запущено, попробуйте вручную посетить конечные точки приложения или URL-адреса приложения, что позволяет получить сведения о среде выполнения.
Убедитесь, что параметр IKeyExists
имеет значение true
.
Если это не так, добавьте APPINSIGHTS_INSTRUMENTATIONKEY
и APPLICATIONINSIGHTS_CONNECTION_STRING
вместе с GUID ключа инструментирования в настройки вашего приложения.
Убедитесь, что не существует записей для AppAlreadyInstrumented
, AppContainsDiagnosticSourceAssembly
и AppContainsAspNetTelemetryCorrelationAssembly
.
Если какая-либо из этих записей существует, удалите из приложения следующие пакеты: Microsoft.ApplicationInsights
, System.Diagnostics.DiagnosticSource
и Microsoft.AspNet.TelemetryCorrelation
.
Веб-сайт по умолчанию, развернутый с помощью веб-приложений, не поддерживает автоматический мониторинг на стороне клиента.
При создании веб-приложения со средами выполнения ASP.NET в App Service разворачивается одна статическая HTML-страница в качестве начального веб-сайта. Статическая веб-страница также загружает веб-часть, управляемую ASP.NET в IIS. Эта страница позволяет тестировать мониторинг на стороне сервера без кода, но не поддерживает автоматический клиентский мониторинг.
Если вы хотите протестировать безкодовое серверное и клиентское мониторинг для ASP.NET в веб-приложении в службе приложений, рекомендуется следовать официальным руководствам по созданию веб-приложения ASP.NET Framework. Затем используйте инструкции, описанные в текущей статье, чтобы включить мониторинг.
APPINSIGHTS_JAVASCRIPT_ENABLED и urlCompression не поддерживаются
При использовании APPINSIGHTS_JAVASCRIPT_ENABLED=true
в случаях, когда содержимое закодировано, могут возникнуть такие ошибки:
- Ошибка переопределения URL-адреса 500.
- Ошибка модуля перезаписи URL-адреса 500.53 с сообщением "Правила перезаписи исходящего трафика нельзя применить, если содержимое HTTP-ответа закодировано ("gzip").
Ошибка возникает из-за того, что параметр приложения APPINSIGHTS_JAVASCRIPT_ENABLED
установлен на true
и одновременно присутствует кодировка содержимого. Этот сценарий пока не поддерживается. Обходной путь — удалить APPINSIGHTS_JAVASCRIPT_ENABLED
из параметров приложения. К сожалению, если инструментирование JavaScript на стороне клиента или браузера по-прежнему требуется, необходимо вручную указать ссылки на пакет SDK для ваших веб-страниц. Следуйте инструкциям по ручному инструментированию с помощью пакета SDK для JavaScript.
Самая свежая информация об агенте и расширении Application Insights доступна в заметках о выпуске.
PHP и WordPress не поддерживаются
Сайты PHP и WordPress не поддерживаются. В настоящее время отсутствует официально поддерживаемый пакет SDK или агент для серверного мониторинга этих рабочих нагрузок. Чтобы отслеживать клиентские транзакции на сайте PHP или WordPress, добавьте клиентский JavaScript на веб-страницы с помощью пакета SDK JavaScript.
В следующей таблице приведено объяснение того, что эти значения означают, их основные причины и рекомендуемые исправления.
Значение проблемы |
Описание |
Исправить |
AppAlreadyInstrumented:true |
Это значение указывает, что расширение обнаружило некоторый аспект пакета SDK, уже присутствующего в приложении, и прекращает свою работу. Ссылка на System.Diagnostics.DiagnosticSource , Microsoft.AspNet.TelemetryCorrelation или Microsoft.ApplicationInsights может вызвать это значение. |
Удалите ссылки. Некоторые из этих ссылок добавляются по умолчанию из определенных шаблонов Visual Studio. В более ранние версии Visual Studio могут добавляться ссылки Microsoft.ApplicationInsights . |
AppAlreadyInstrumented:true |
Наличие предыдущих библиотек DLL в папке приложения из предыдущего развертывания также может привести к этому значению. |
Очистите папку приложения, чтобы убедиться, что эти библиотеки DLL удалены. Проверьте каталог корзины локального приложения и каталог wwwroot в ресурсе Служба приложений. Чтобы проверить каталог wwwroot веб-приложения службы приложений, выберите Дополнительные инструменты (Kudu)>Консоль отладки>CMD>home\site\wwwroot. |
AppContainsAspNetTelemetryCorrelationAssembly: true |
Это значение указывает, что расширение обнаружило ссылки на Microsoft.AspNet.TelemetryCorrelation в приложении и отступает. |
Удаление ссылки. |
AppContainsDiagnosticSourceAssembly**:true |
Это значение указывает, что расширение обнаружило ссылки на System.Diagnostics.DiagnosticSource в приложении и отказывается. |
Для ASP.NET удалите ссылку. |
IKeyExists:false |
Это значение указывает, что ключ инструментирования отсутствует в параметре APPINSIGHTS_INSTRUMENTATIONKEY приложения. Возможные причины могут быть в том, что значения были случайно удалены или вы забыли задать значения в скрипте автоматизации. |
Убедитесь, что этот параметр присутствует в настройках приложения службы приложений. |
System.IO.FileNotFoundException после обновления 2.8.44
Версия 2.8.44 автоинструментирования обновляет SDK Application Insights до версии 2.20.0. Пакет SDK Application Insights имеет непрямую ссылку на System.Runtime.CompilerServices.Unsafe.dll
через System.Diagnostics.DiagnosticSource.dll
. Если у приложения есть перенаправление привязки для System.Runtime.CompilerServices.Unsafe.dll
, и если эта библиотека отсутствует в папке приложения, это может вызвать System.IO.FileNotFoundException
.
Чтобы устранить эту проблему, удалите запись перенаправления привязки для System.Runtime.CompilerServices.Unsafe.dll
из файла web.config. Если приложение хотело использовать System.Runtime.CompilerServices.Unsafe.dll
, задайте перенаправление привязки, как показано ниже:
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.4.1" newVersion="4.0.4.1" />
</dependentAssembly>
В качестве временного обходного решения можно задать для параметра ApplicationInsightsAgent_EXTENSION_VERSION
приложения значение 2.8.37
. Этот параметр активирует Службу приложений для использования старого расширения Application Insights. Временные меры по устранению рисков следует использовать только в качестве промежуточного.
Отсутствуют данные телеметрии
Убедитесь, что ApplicationInsightsAgent_EXTENSION_VERSION
для параметра приложения задано значение ~2
в Windows, ~3
в Linux
Проверьте файл журнала, чтобы убедиться, что агент успешно запущен: перейдите к https://yoursitename.scm.azurewebsites.net/
, затем, используя SSH, перейдите в корневой каталог; файл журнала находится в каталоге LogFiles/ApplicationInsights.
После включения мониторинга приложений для приложения Java вы можете проверить, работает ли агент, просматривая динамические метрики, даже перед развертыванием и приложением в Служба приложений вы увидите некоторые запросы из среды. Помните, что полный набор данных телеметрии доступен только при развертывании и запуске приложения.
Задайте APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL
для переменной среды значение debug
, если вы не видите никаких ошибок, и данные телеметрии отсутствуют.
Отсутствуют данные телеметрии
Windows
Убедитесь, что для параметра приложения ApplicationInsightsAgent_EXTENSION_VERSION
установлено значение ~2
.
Перейдите на https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Убедитесь, что Application Insights Extension Status
имеет значение Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
.
Если мониторинг не запущен, следуйте инструкциям по включению мониторинга Application Insights.
Перейдите к файлу D:\local\Temp\status.json и откройте файл status.json.
Удостоверьтесь, что параметр SDKPresent
имеет значение false, AgentInitializedSuccessfully
— значение true, а для IKey
указан действительный ключ инструментирования.
Пример JSON-файла:
"AppType":"node.js",
"MachineName":"c89d3a6d0357",
"PID":"47",
"AgentInitializedSuccessfully":true,
"SDKPresent":false,
"IKey":"00000000-0000-0000-0000-000000000000",
"SdkVersion":"1.8.10"
Если SDKPresent
задано значение true, это означает, что расширение обнаружило, что некоторые аспекты пакета SDK уже присутствуют в приложении и будут отключаться.
Linux
Убедитесь, что для параметра приложения ApplicationInsightsAgent_EXTENSION_VERSION
установлено значение ~3
.
Перейдите к файлу /var/log/applicationinsights/ и откройте файл status.json.
Удостоверьтесь, что параметр SDKPresent
установлен в значение false, AgentInitializedSuccessfully
— в значение true, а IKey
содержит действительный iKey.
Пример JSON-файла:
"AppType":"node.js",
"MachineName":"c89d3a6d0357",
"PID":"47",
"AgentInitializedSuccessfully":true,
"SDKPresent":false,
"IKey":"00000000-0000-0000-0000-000000000000",
"SdkVersion":"1.8.10"
Если SDKPresent
имеет значение true, это означает, что расширение обнаружило, что некоторые аспекты пакета SDK уже присутствуют в приложении, и отступит.
Повторяющаяся телеметрия
Используйте автоинструментацию только в Службе приложений, если вы не используете ручное инструментирование OpenTelemetry в коде, например дистрибутив OpenTelemetry Azure Monitor или экспортер OpenTelemetry Azure Monitor.
Использование автоматической инструментализации поверх ручной инструментализации может привести к дублированию телеметрии и увеличению затрат. Чтобы использовать автоинструментирование OpenTelemetry в Службе приложений, сначала удалите все настройки ручного инструментирования OpenTelemetry из вашего кода.
Если вы видите непредвиденные расходы или высокие затраты в Application Insights, это руководство может помочь. В ней рассматриваются распространенные причины, такие как высокий объем телеметрии, пики приема данных и неправильно настроенная выборка. Особенно полезно, если вы устраняете проблемы, связанные с резким увеличением затрат, объемом телеметрии, неисправной выборкой, ограничениями данных, высокой нагрузкой на прием данных или неожиданными счетами. Чтобы начать, ознакомьтесь с материалом по устранению неполадок в случае высокого объёма поступающих данных в Application Insights.
Отсутствуют данные телеметрии
Если нет телеметрии, выполните следующие действия, чтобы убедиться, что автоинструментация включена правильно.
Убедитесь, что автоматическая инструментализация включена в интерфейсе Application Insights для вашего ресурса App Service.
Убедитесь, что ApplicationInsightsAgent_EXTENSION_VERSION
параметр приложения имеет значение ~3
и APPLICATIONINSIGHTS_CONNECTION_STRING
указывает на соответствующий ресурс Application Insights.
Проверьте автоинструментарий, диагностику и логи состояния.
a. Перейдите к /var/log/applicationinsights/ и откройте status_*.json.
б. Убедитесь, что AgentInitializedSuccessfully
задано значение true и IKey
имеется допустимый iKey.
Пример JSON-файла:
"AgentInitializedSuccessfully":true,
"AppType":"python",
"MachineName":"c89d3a6d0357",
"PID":"47",
"IKey":"00000000-0000-0000-0000-000000000000",
"SdkVersion":"1.0.0"
Файл applicationinsights-extension.log
в той же папке может отображать другие полезные диагностики.
Приложения Django
Если приложение использует Django и не запускается или использует неверные параметры, обязательно установите DJANGO_SETTINGS_MODULE
переменную среды. См. раздел инструментария Django для получения подробностей.
Сведения о последних обновлениях и исправлениях ошибок см. в заметках о выпуске.
Следующие шаги