Устранение неполадок с агентом приложение Azure Insights (ранее — Монитор состояния версии 2)

В этой статье содержатся сведения об устранении неполадок, которые помогут устранить проблемы со сбором данных, которые могут возникнуть при включенном мониторинге Application Insights.

Известные проблемы

Конфликтующие библиотеки DLL в каталоге bin приложения

Если какая-либо из этих библиотек динамической компоновки (DLL) присутствует в каталоге bin , мониторинг может завершиться ошибкой:

  • 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

Если у вас есть кластер веб-серверов, возможно, вы используете общую конфигурацию. HttpModule не может быть внедрен в эту общую конфигурацию. Выполните команду Включить на каждом веб-сервере, чтобы установить библиотеку 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

Мы не инструментируем вложенные приложения в службах IIS версии 1.0.

Расширенная конфигурация пакета SDK недоступна

Конфигурация пакета SDK не предоставляется конечному пользователю в версии 1.0.

Устранение неполадок PowerShell

Определение доступных модулей

Вы можете использовать команду , Get-Module -ListAvailable чтобы определить, какие модули установлены.

Импорт модуля в текущий сеанс

Если модуль не был загружен в сеанс PowerShell, его можно загрузить вручную, выполнив Import-Module <path to psd1> команду .

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

Setup

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

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

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

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

  5. Очистите следующие поля проверка:

    • Молния
    • Merge
    • Коллекция символов .NET
  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.