Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье представлены общие рекомендации и конкретные рекомендации по устранению неполадок с мониторингом приложений в Службе приложений Azure.
Замечание
Некоторые действия по устранению неполадок на этой странице применимы только к определенным языкам или платформам, как указано на доступных вкладках.
Отсутствуют данные телеметрии
Замечание
При создании веб-приложения со средами выполнения ASP.NET в Службе приложений развертывается статическая HTML-страница в качестве стартового веб-сайта.
Мы не рекомендуем пытаться устранить проблему с шаблоном по умолчанию. Разверните приложение перед устранением неполадок.
Убедитесь, что параметр приложения
ApplicationInsightsAgent_EXTENSION_VERSIONимеет значение~2.Перейдите по ссылке
https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
lightbox="media/troubleshoot-app-service/app-insights-sdk-status.png"::Подтвердите, что
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.
В следующей таблице приведено объяснение того, что эти значения означают, их основные причины и рекомендуемые исправления.
| Значение проблемы | Explanation | Исправить |
|---|---|---|
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. Временные меры по устранению рисков следует использовать только в качестве промежуточного.
Повторяющаяся телеметрия
Используйте автоинструментацию только в Службе приложений, если вы не используете ручное инструментирование OpenTelemetry в коде, например дистрибутив OpenTelemetry в Azure Monitor или экспортер OpenTelemetry в Azure Monitor.
Использование автоматической инструментализации поверх ручной инструментализации может привести к дублированию телеметрии и увеличению затрат. Чтобы использовать автоинструментирование OpenTelemetry в Службе приложений, сначала удалите все настройки ручного инструментирования OpenTelemetry из вашего кода.
Если вы видите непредвиденные расходы или высокие затраты в Application Insights, это руководство может помочь. В ней рассматриваются распространенные причины, такие как высокий объем телеметрии, пики приема данных и неправильно настроенная выборка. Особенно полезно, если вы устраняете проблемы, связанные с резким увеличением затрат, объемом телеметрии, неисправной выборкой, ограничениями данных, высокой нагрузкой на прием данных или неожиданными счетами. Чтобы начать, ознакомьтесь с материалом по устранению неполадок в случае высокого объёма поступающих данных в Application Insights.
Приложения Django
Если приложение использует Django и не запускается или использует неверные параметры, обязательно установите DJANGO_SETTINGS_MODULE переменную среды. См. раздел инструментария Django для получения подробностей.
Сведения о последних обновлениях и исправлениях ошибок см. в заметках о выпуске.