Включение мониторинга приложений в службе приложение Azure для приложений .NET, Node.js, Python и Java
Статья
Автоинструментация, также называемая мониторингом среды выполнения, — это самый простой способ включить Application Insights для службы приложение Azure без каких-либо изменений кода или расширенных конфигураций. На основе конкретного сценария оцените, требуется ли более расширенный мониторинг с помощью ручного инструментирования.
Примечание.
Поддержка приема ключей инструментирования будет завершена 31 марта 31, 2025 г. Прием ключей инструментирования будет и дальше осуществляться, но мы больше не будем предоставлять обновления или поддержку для этой функции. Перейдите на строки подключения, чтобы использовать новые возможности.
Если обнаруживаются мониторинг автоинструментации и инструментирование на основе ручного пакета SDK, учитываются только параметры ручного инструментирования. Это соглашение предотвращает отправку повторяющихся данных. Дополнительные сведения см. в разделе "Устранение неполадок".
Примечание.
Поддерживаются только выпуски долгосрочной поддержки .NET Core (LTS).
Выберите 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 в меню навигации слева службы приложений и нажмите кнопку "Включить".
Создайте новый ресурс или выберите существующий ресурс 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:
Чтобы использовать инструментирование OpenTelemetry Django, необходимо задать DJANGO_SETTINGS_MODULE переменную среды в параметрах Служба приложений, чтобы указать из папки приложения в модуль параметров.
Дополнительные сведения см. в документации по Django.
Добавление библиотеки инструментирования сообщества
Вы можете автоматически собирать дополнительные данные при включении библиотек инструментирования из сообщества OpenTelemetry.
Внимание
Мы не поддерживаем или не гарантируем качество библиотек инструментирования сообщества. Чтобы предложить один для нашего дистрибутива, публикации или голосования в нашем сообществе отзывов. Помните, что некоторые из них основаны на экспериментальных спецификациях OpenTelemetry и могут ввести будущие критические изменения.
Чтобы добавить библиотеку инструментирования OpenTelemetry сообщества, установите ее с помощью файла приложения requirements.txt . Автоинструментация OpenTelemetry автоматически выбирает и инструментирует все установленные библиотеки. Найдите список библиотек сообщества здесь.
Обновление расширения или агента мониторинга вручную
Обновление с версии 2.8.9 происходит автоматически, никаких дополнительных действий не требуется. Новые биты мониторинга доставляются в фоновом режиме в целевую службу приложений и собираются при перезапуске приложения.
Чтобы узнать, какую версию расширения вы используете, перейдите по адресу https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Обновление с версий 1.0.0–2.6.5
Начиная с версии 2.8.9 используется предварительно установленное расширение сайта. Если вы используете более раннюю версию, можно выполнить обновление одним из следующих двух способов:
Задайте параметры приложения, чтобы включить предварительно установленное расширение ApplicationInsightsAgentсайта. Дополнительные сведения см. в разделе "Включить с помощью PowerShell".
Вручную удалите расширение частного сайта с именем Application Insights для службы приложение Azure.
Если обновление выполняется с версии до 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 используется предварительно установленное расширение сайта. Если вы используете более раннюю версию, можно выполнить обновление одним из следующих двух способов:
Задайте параметры приложения, чтобы включить предварительно установленное расширение ApplicationInsightsAgentсайта. Дополнительные сведения см. в разделе "Включить с помощью PowerShell".
Вручную удалите расширение частного сайта с именем Application Insights для службы приложение Azure.
Если обновление выполняется с версии до 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 в параметрах конфигураций Служба приложений.
Версия Application Insights Node.js обновляется автоматически в рамках Служба приложений обновлений и не может быть обновлена вручную.
В настоящее время мы не предлагаем варианты настройки расширения мониторинга для ASP.NET Core.
Чтобы настроить выборку, которую можно было управлять ранее с помощью файла конфигурации applicationinsights.config, теперь вы можете взаимодействовать с ним с помощью параметров приложения с соответствующим префиксомMicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor.
Например, чтобы изменить начальный процент выборки, можно создать параметр MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage приложения и значение 100.
Чтобы отключить выборку, задайте для параметра MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MinSamplingPercentage значение 100.
Список поддерживаемых параметров и определений обработчика телеметрии адаптивной выборки см. в документации по коду и выборке.
После указания ресурса для использования можно настроить агент Java. Если агент Java не настроен, применяются конфигурации по умолчанию.
Доступен полный набор конфигураций . Необходимо просто вставить допустимый json-файл. Исключите строка подключения и все конфигурации, которые находятся в предварительной версии, можно добавить элементы, которые в настоящее время находятся в предварительной версии, так как они становятся общедоступными.
После изменения конфигураций с помощью портал Azure APPLICATIONINSIGHTS_CONFIGURATION_FILE переменная среды автоматически заполняется и отображается на панели параметров Служба приложений. Эта переменная содержит полное содержимое JSON, вставленное в текстовое поле конфигурации портал Azure для приложения Java.
Агент Node.js можно настроить с помощью JSON. APPLICATIONINSIGHTS_CONFIGURATION_CONTENT Задайте переменную среды строке JSON или задайте APPLICATIONINSIGHTS_CONFIGURATION_FILE для переменной среды путь к файлу, содержаму JSON.
Если задано значение 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.
Главное расширение, которое управляет мониторингом среды выполнения.
~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 для ресурса Служба приложений:
Автоматизация создания ресурса 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.
Чтобы включить мониторинг приложений с помощью PowerShell, необходимо изменить только базовые параметры приложения. Следующий пример включает мониторинг приложений для веб-сайта, вызываемого AppMonitoredSite в группе AppMonitoredRGресурсов. Он настраивает отправку данных в 012345678-abcd-ef01-2345-6789abcd ключ инструментирования.
Если используется Windows, задайте для ApplicationInsightsAgent_EXTENSION_VERSION значение ~2. Если используется Linux, задайте для ApplicationInsightsAgent_EXTENSION_VERSION значение ~3.
В этом разделы приводятся ответы на часто задаваемые вопросы.
Что 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.
Это значение указывает, что расширение обнаружило ссылки 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, задайте перенаправление привязки, как показано ниже:
В качестве временного обходного решения можно задать для параметра 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..
Перейдите к файлу D:\local\Temp\status.json и откройте файл status.json.
Удостоверьтесь, что параметр SDKPresent имеет значение false, AgentInitializedSuccessfully — значение true, а для IKey указан действительный ключ инструментирования.
Если SDKPresent задано значение true, это означает, что расширение обнаружило, что некоторые аспекты пакета SDK уже присутствуют в приложении и будут отключаться.
Linux
Убедитесь, что ApplicationInsightsAgent_EXTENSION_VERSION для параметра приложения задано значение ~3.
Перейдите к файлу /var/log/applicationinsights/ и откройте файл status.json.
Удостоверьтесь, что параметр SDKPresent имеет значение false, AgentInitializedSuccessfully — значение true, а для IKey указан действительный ключ инструментирования.
Если 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.
Файл applicationinsights-extension.log в той же папке может отображать другие полезные диагностика.
Приложения Django
Если приложение использует Django и не запускается или использует неверные параметры, обязательно установите DJANGO_SETTINGS_MODULE переменную среды. Дополнительные сведения см. в разделе инструментирования Django.
Сведения о последних обновлениях и исправлениях ошибок см. в заметках о выпуске.