Устранение неполадок с агентом приложение Azure Insights (прежнее название — монитор состояния версии 2)
В этой статье содержатся сведения об устранении неполадок с сбором данных, которые могут возникнуть при включении мониторинга Microsoft приложение Azure Insights.
Известные проблемы
Конфликтующие библиотеки DLL в папке bin
Если в папке bin приложения присутствует любая из этих библиотек динамической компоновки (DLL), мониторинг может завершиться ошибкой:
- Microsoft.ApplicationInsights.dll
- Microsoft.AspNet.TelemetryCorrelation.dll
- System.Diagnostics.DiagnosticSource.dll
Некоторые из этих библиотек DLL включены в шаблоны приложений по умолчанию Visual Studio, даже если приложение не использует их. Для просмотра симптоматического поведения можно использовать такие средства устранения неполадок, как следующие средства:
PerfView
ThreadID="7,500" ProcessorNumber="0" msg="Found 'System.Diagnostics.DiagnosticSource, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' assembly, skipping attaching redfield binaries" ExtVer="2.8.13.5972" SubscriptionId="" AppName="" FormattedMessage="Found 'System.Diagnostics.DiagnosticSource, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' assembly, skipping attaching redfield binaries"
Загрузка IISReset и приложение (без телеметрии). Изучение с помощью Sysinternals (Handle.exe и ListDLLs.exe):
.\handle64.exe -p w3wp | findstr /I "InstrumentationEngine AI. ApplicationInsights" E54: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll .\Listdlls64.exe w3wp | findstr /I "InstrumentationEngine AI ApplicationInsights" 0x0000000009be0000 0x127000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\MicrosoftInstrumentationEngine_x64.dll 0x0000000009b90000 0x4f000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.ExtensionsHost_x64.dll 0x0000000004d20000 0xb2000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.Extensions.Base_x64.dll
Версии PowerShell
Этот продукт написан и протестирован с помощью PowerShell версии 5.1. Этот модуль несовместим с PowerShell версии 6 или 7. Рекомендуется использовать PowerShell 5.1 вместе с более новыми версиями. Дополнительные сведения см. в статье "Использование PowerShell 7 параллельно с PowerShell 5.1".
Конфликт в общей конфигурации IIS
Если у вас есть кластер веб-серверов, возможно, вы используете общую конфигурацию. Модуль HTTP нельзя внедрить в эту общую конфигурацию. Выполните команду Enable на каждом веб-сервере, чтобы установить библиотеку DLL в глобальный кэш сборок каждого сервера (GAC).
После выполнения команды "Включить" выполните следующие действия:
Перейдите в общий каталог конфигурации и найдите файл ApplicationHost.config .
Добавьте следующий XML-код в <раздел модулей> конфигурации:
<modules> <!-- Registered global managed http module handler. The 'Microsoft.AppInsights.IIS. ManagedHttpModuleHelper.dll' must be installed in the GAC before this config is applied. --> <add name="ManagedHttpModuleHelper" type="Microsoft.AppInsights.IIS.ManagedHttpModuleHelper. ManagedHttpModuleHelper, Microsoft.AppInsights.IIS.ManagedHttpModuleHelper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" /> </modules>
Вложенные приложения IIS
В версии 1.0 агента Application Insights мы не инструментируем вложенные приложения в службы IIS (IIS).
Классический режим конвейера IIS
Мы не инструментируем приложения, размещенные в пулах приложений, если они настроены на использование классического режима конвейера.
Расширенная конфигурация пакета SDK недоступна
Конфигурация пакета SDK не предоставляется конечному пользователю в версии 1.0.
Устранение неполадок PowerShell
Определение доступных модулей
Чтобы определить, какие модули установлены, запустите Get-Module -ListAvailable
командлет.
Импортируйте модуль в текущий сеанс
Если модуль не загружается в сеанс PowerShell, его можно загрузить вручную, выполнив Import-Module <path-to-psd1>
командлет.
Устранение неполадок с модулем агента Application Insights
Вывод списка командлетов, доступных в модуле агента Application Insights
Чтобы просмотреть командлеты, доступные в модуле агента Application Insights, выполните Get-Command -Module Az.ApplicationMonitor
командлет:
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Disable-ApplicationInsightsMonitoring 0.4.0 Az.ApplicationMonitor
Cmdlet Disable-InstrumentationEngine 0.4.0 Az.ApplicationMonitor
Cmdlet Enable-ApplicationInsightsMonitoring 0.4.0 Az.ApplicationMonitor
Cmdlet Enable-InstrumentationEngine 0.4.0 Az.ApplicationMonitor
Cmdlet Get-ApplicationInsightsMonitoringConfig 0.4.0 Az.ApplicationMonitor
Cmdlet Get-ApplicationInsightsMonitoringStatus 0.4.0 Az.ApplicationMonitor
Cmdlet Set-ApplicationInsightsMonitoringConfig 0.4.0 Az.ApplicationMonitor
Cmdlet Start-ApplicationInsightsMonitoringTrace 0.4.0 Az.ApplicationMonitor
Определение текущей версии модуля агента Application Insights
Get-ApplicationInsightsMonitoringStatus -PowerShellModule
Запустите командлет, чтобы отобразить следующие сведения о модуле:
- Версия модуля PowerShell
- Версия пакета SDK Application Insights
- Пути к файлам модуля PowerShell
Дополнительные сведения об использовании этого командлета см. в справочнике Get-ApplicationInsightsMonitoringStatus.
Устранение неполадок с выполняемыми процессами
Вы можете проверить процессы на инструментированного компьютера, чтобы определить, загружаются ли все библиотеки DLL и переменные среды. Если отслеживание работает, то должно быть загружено не менее 12 библиотек DLL.
Get-ApplicationInsightsMonitoringStatus -InspectProcess
Запустите командлет, чтобы проверить библиотеки DLL.(Get-Process -id <process-identifier>).StartInfo.EnvironmentVariables
Выполните командлет, чтобы проверить переменные среды. Следующие переменные среды задаются в рабочем процессе или в процессе .NET Core:
COR_ENABLE_PROFILING=1
COR_PROFILER={324F817A-7420-4E6D-B3C1-143FBED6D855}
COR_PROFILER_PATH_32=<path-to-MicrosoftInstrumentationEngine_x86.dll>
COR_PROFILER_PATH_64=<path-to-MicrosoftInstrumentationEngine_x64.dll>
MicrosoftInstrumentationEngine_Host={CA487940-57D2-10BF-11B2-A3AD5A13CBC0}
MicrosoftInstrumentationEngine_HostPath_32=<path-to-Microsoft.ApplicationInsights.ExtensionsHost_x86.dll>
MicrosoftInstrumentationEngine_HostPath_64=<path-to-Microsoft.ApplicationInsights.ExtensionsHost_x64.dll>
MicrosoftInstrumentationEngine_ConfigPath32_Private=<path-to-Microsoft.InstrumentationEngine.Extensions.config>
MicrosoftInstrumentationEngine_ConfigPath64_Private=<path-to-Microsoft.InstrumentationEngine.Extensions.config>
MicrosoftAppInsights_ManagedHttpModulePath=<path-to-Microsoft.ApplicationInsights.RedfieldIISModule.dll>
MicrosoftAppInsights_ManagedHttpModuleType=Microsoft.ApplicationInsights.RedfieldIISModule.RedfieldIISModule
ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=Microsoft.ApplicationInsights.StartupBootstrapper
DOTNET_STARTUP_HOOKS=<path-to-Microsoft.ApplicationInsights.StartupHook.dll>
Дополнительные сведения об использовании этого командлета см. в справочнике Get-ApplicationInsightsMonitoringStatus.
Сбор журналов трассировки событий Windows с помощью PerfView
Настройка
Скачайте PerfView.exe из GitHub.
Запустите PerfView.exe.
В строке меню выберите "Собрать сбор>".
Разверните Дополнительные параметры.
Снимите следующие флажки:
- Zip
- Слияние
- Коллекция символов.NET Symbol Collection
Задайте следующие дополнительные поставщики:
*Microsoft-ApplicationInsights-AspNetCore,*Microsoft-ApplicationInsights-AspNetCore-AiHostingStartup,*Microsoft-ApplicationInsights-AspNetCore-StartupBootstrapper,*Microsoft-ApplicationInsights-AspNetCore-StartupHook,*Microsoft-ApplicationInsights-Core,*Microsoft-ApplicationInsights-Data,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Microsoft-ApplicationInsights-Extensibility-HostingStartup,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Microsoft-ApplicationInsights-Extensibility-Web,*Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Microsoft-ApplicationInsights-FrameworkLightup,*Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper,*Microsoft-ApplicationInsights-Java-IPA,*Microsoft-ApplicationInsights-LoggerProvider,*Microsoft-ApplicationInsights-Nodejs-IPA,*Microsoft-ApplicationInsights-RedfieldIISModule,*Microsoft-ApplicationInsights-SnapshotCollectorLightup,*Microsoft-ApplicationInsights-WindowsServer-Core,*Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,*Redfield-Microsoft-ApplicationInsights-AspNetCore,*Redfield-Microsoft-ApplicationInsights-Core,*Redfield-Microsoft-ApplicationInsights-Data,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Redfield-Microsoft-ApplicationInsights-Extensibility-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Redfield-Microsoft-ApplicationInsights-LoggerProvider,*Redfield-Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel
Сбор журналов
В командной строке администрирования выполните
iisreset /stop
команду, чтобы отключить СЛУЖБЫ IIS и все веб-приложения.В PerfView выберите Начать сбор.
В командной строке администрирования выполните
iisreset /start
команду, чтобы запустить СЛУЖБЫ IIS.Попробуйте перейти к своему приложению.
После загрузки приложения вернитесь в PerfView и выберите "Остановить коллекцию".
Следующие шаги
- Ознакомьтесь со ссылкой на API, чтобы узнать о параметрах, которые вы могли пропустить.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или помощь, создайте запрос на поддержку или попросите сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.