Автоинструментация, также называемая мониторингом среды выполнения, — это самый простой способ включить 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 мониторинг приложений включен по умолчанию с двумя разными уровнями коллекции, рекомендуемыми и базовыми.
В следующей таблице перечислены данные, собранные для каждого маршрута.
Data |
Рекомендуемая конфигурация |
Базовая |
Добавляет тенденции использования ЦП, памяти и операций ввода-вывода. |
Да |
Нет |
Собирает тенденции использования и обеспечивает сопоставление от результатов доступности до транзакций. |
Да |
Да |
Собирает исключения, необработанные хост-процессом. |
Да |
Да |
Улучшает точность метрик APM под нагрузкой при использовании выборки. |
Да |
Да |
Сопоставляет микрослужбы в пределах границ запросов или зависимостей. |
Да |
Нет (только возможности APM с одним экземпляром) |
Примечание.
С помощью приложений Spring Boot Native Image используйте проект приложения Приложения Java для OpenTelemetry OpenTelemetry OpenTelemetry / 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 со службой приложений. Затем служба приложений перезапускается.
После указания используемого ресурса все настроены.
Примечание.
Используйте автоинструментацию только в Служба приложений если вы не используете ручное инструментирование OpenTelemetry в коде, например дистрибутив OpenTelemetry в Azure Monitor или экспортер OpenTelemetry в Azure Monitor. Это необходимо, чтобы предотвратить отправку повторяющихся данных. Дополнительные сведения об этом см. в разделе об устранении неполадок в этой статье.
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 используется предварительно установленное расширение сайта. Если вы используете более раннюю версию, можно выполнить обновление одним из следующих двух способов:
Если обновление выполняется с версии до 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, следуя инструкциям ниже.
c. Затем разверните 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 в параметрах конфигураций Служба приложений.
В настоящее время мы не предлагаем варианты настройки расширения мониторинга для 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 для ресурса Служба приложений:
"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 и ссылки на созданный ресурс Служба приложений
Чтобы создать шаблон Resource Manager с параметрами Application Insights по умолчанию, начните процесс, как если бы вы собирались создать новое веб-приложение с включенным Application Insights.
Создайте новый ресурс службы приложений с нужными сведениями о веб-приложении. Включите Application Insights на вкладке "Мониторинг ".
Выберите Review + create (Просмотреть и создать). Затем выберите " Скачать шаблон для автоматизации".
Этот параметр создает последний шаблон 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 метрики службы?
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 Insights имеет значениеPre-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 в Служба приложений она развертывает одну статическую HTML-страницу в качестве начального веб-сайта. Статическую веб-страницу также загружает ASP. Веб-часть, управляемая NET, в IIS. Это поведение позволяет тестировать бессерверный мониторинг на стороне сервера, но не поддерживает автоматический клиентский мониторинг.
Если вы хотите протестировать бессерверный сервер и мониторинг на стороне клиента для ASP.NET Core в веб-приложении Служба приложений, рекомендуется следовать официальным руководствам по созданию веб-приложения ASP.NET Core. Затем используйте инструкции, описанные в текущей статье, чтобы включить мониторинг.
PHP и WordPress не поддерживаются
Сайты PHP и WordPress не поддерживаются. В настоящее время отсутствует официально поддерживаемый пакет SDK или агент для серверного мониторинга этих рабочих нагрузок. Чтобы отслеживать клиентские транзакции на сайте PHP или WordPress, добавьте клиентский JavaScript на веб-страницы с помощью пакета SDK JavaScript.
В следующей таблице приведено объяснение того, что эти значения означают, их основные причины и рекомендуемые исправления.
Значение проблемы |
Описание |
Fix |
AppAlreadyInstrumented:true |
Это значение указывает, что расширение обнаружило некоторый аспект пакета SDK, уже присутствующих в приложении, и отключается. Ссылка на Microsoft.ApplicationInsights.AspNetCore это значение или Microsoft.ApplicationInsights может привести к этому значению. |
Удалите ссылки. Некоторые из этих ссылок добавляются по умолчанию из определенных шаблонов Visual Studio. Более ранние версии справочника Microsoft.ApplicationInsights по Visual Studio. |
AppAlreadyInstrumented:true |
Наличие Microsoft.ApplicationsInsights библиотеки DLL в папке приложения из предыдущего развертывания также может привести к этому значению. |
Очистите папку приложения, чтобы убедиться, что эти библиотеки DLL удалены. Проверьте каталог корзины локального приложения и каталог wwwroot в Служба приложений. (Чтобы проверить каталог wwwroot веб-приложения Служба приложений, выберите "Расширенные средства отладки" (Kudu) >console>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 в Служба приложений она развертывает одну статическую 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.
В следующей таблице приведено объяснение того, что эти значения означают, их основные причины и рекомендуемые исправления.
Значение проблемы |
Описание |
Fix |
AppAlreadyInstrumented:true |
Это значение указывает, что расширение обнаружило некоторый аспект пакета SDK, уже присутствующих в приложении, и отключается. Ссылка на System.Diagnostics.DiagnosticSource , Microsoft.AspNet.TelemetryCorrelation или Microsoft.ApplicationInsights может вызвать это значение. |
Удалите ссылки. Некоторые из этих ссылок добавляются по умолчанию из определенных шаблонов Visual Studio. В более ранние версии Visual Studio могут добавляться ссылки Microsoft.ApplicationInsights . |
AppAlreadyInstrumented:true |
Наличие предыдущих библиотек DLL в папке приложения из предыдущего развертывания также может привести к этому значению. |
Очистите папку приложения, чтобы убедиться, что эти библиотеки DLL удалены. Проверьте каталог корзины локального приложения и каталог wwwroot в ресурсе Служба приложений. Чтобы проверить каталог wwwroot веб-приложения Служба приложений, выберите advanced Tools (Kudu)>Debug console>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
указан действительный ключ инструментирования.
Пример 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 в ресурсе Служба приложений.
Убедитесь, что ApplicationInsightsAgent_EXTENSION_VERSION
параметр приложения имеет значение ~3
и APPLICATIONINSIGHTS_CONNECTION_STRING
указывает на соответствующий ресурс Application Insights.
Проверьте автоматические диагностика и журналы состояния.
a. Перейдите к /var/log/applicationinsights/ и откройте status_*.json.
b. Убедитесь, что 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.
Сведения о последних обновлениях и исправлениях ошибок см. в заметках о выпуске.
Следующие шаги