Устранение неполадок с агентом приложение 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).

После выполнения команды "Включить" выполните следующие действия:

  1. Перейдите в общий каталог конфигурации и найдите файл ApplicationHost.config .

  2. Добавьте следующий 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

Настройка

  1. Скачайте PerfView.exe из GitHub.

  2. Запустите PerfView.exe.

  3. В строке меню выберите "Собрать сбор>".

  4. Разверните Дополнительные параметры.

  5. Снимите следующие флажки:

    • Zip
    • Слияние
    • Коллекция символов.NET Symbol Collection
  6. Задайте следующие дополнительные поставщики:

    *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

Сбор журналов

  1. В командной строке администрирования выполните iisreset /stop команду, чтобы отключить СЛУЖБЫ IIS и все веб-приложения.

  2. В PerfView выберите Начать сбор.

  3. В командной строке администрирования выполните iisreset /start команду, чтобы запустить СЛУЖБЫ IIS.

  4. Попробуйте перейти к своему приложению.

  5. После загрузки приложения вернитесь в PerfView и выберите "Остановить коллекцию".

Следующие шаги

  • Ознакомьтесь со ссылкой на API, чтобы узнать о параметрах, которые вы могли пропустить.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или помощь, создайте запрос на поддержку или попросите сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.