Résoudre les problèmes Azure Application Insights Agent (anciennement Status Monitor v2)

Cet article fournit des informations de dépannage pour vous aider à résoudre les problèmes de collecte de données que vous pouvez rencontrer lorsque la surveillance Application Insights est activée.

Problèmes connus

Dll en conflit dans le répertoire bin d’une application

Si l’une de ces bibliothèques de liens dynamiques (DLL) est présente dans le répertoire bin , la surveillance peut échouer :

  • Microsoft.ApplicationInsights.dll
  • Microsoft.AspNet.TelemetryCorrelation.dll
  • System.Diagnostics.DiagnosticSource.dll

Certaines de ces DLL sont incluses dans les modèles d’application par défaut de Visual Studio, même si votre application ne les utilise pas. Vous pouvez utiliser les outils de résolution des problèmes, tels que les outils suivants, pour voir le comportement symptomatique :

  • 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 et chargement de l’application (sans télémétrie). Examiner avec Sysinternals (Handle.exe et 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
    

Versions de PowerShell

Ce produit a été écrit et testé à l’aide de PowerShell version 5.1. Ce module n’est pas compatible avec les versions 6 ou 7 de PowerShell. Nous vous recommandons d’utiliser PowerShell 5.1 avec les versions plus récentes. Pour plus d’informations, consultez Utilisation de PowerShell 7 côte à côte avec PowerShell 5.1.

Conflit avec la configuration partagée IIS

Si vous avez un cluster de serveurs web, vous utilisez peut-être une configuration partagée. Le HttpModule ne peut pas être injecté dans cette configuration partagée. Exécutez la commande Enable sur chaque serveur web pour installer la DLL dans le Global Assembly Cache (GAC) de chaque serveur.

Après avoir exécuté la commande Enable, procédez comme suit :

  1. Accédez au répertoire de configuration partagé et recherchez le fichier applicationHost.config .

  2. Ajoutez ce code XML à la <section modules> de votre configuration :

    <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>
    

Applications imbriquées IIS

Nous n’instrumentons pas les applications imbriquées dans Internet Information Services (IIS) dans la version 1.0.

La configuration avancée du KIT de développement logiciel (SDK) n’est pas disponible

La configuration du SDK n’est pas exposée à l’utilisateur final dans la version 1.0.

Résoudre les problèmes liés à PowerShell

Déterminer les modules disponibles

Vous pouvez utiliser la Get-Module -ListAvailable commande pour déterminer quels modules sont installés.

Importer un module dans la session active

Si un module n’a pas été chargé dans une session PowerShell, vous pouvez le charger manuellement en exécutant la Import-Module <path to psd1> commande .

Résoudre les problèmes du module Application Insights Agent

Répertorier les commandes disponibles dans le module Agent Application Insights

Exécutez la Get-Command -Module Az.ApplicationMonitor commande pour obtenir les commandes disponibles :

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

Déterminer la version actuelle du module Application Insights Agent

Exécutez la Get-ApplicationInsightsMonitoringStatus -PowerShellModule commande pour afficher les informations suivantes sur le module :

  • Version du module PowerShell
  • Version du Kit de développement logiciel (SDK) Application Insights
  • Chemins d’accès aux fichiers du module PowerShell

Consultez la référence Get-ApplicationInsightsMonitoringStatus pour obtenir une description détaillée de l’utilisation de cette applet de commande.

Résoudre les problèmes liés aux processus en cours d’exécution

Vous pouvez inspecter les processus sur l’ordinateur instrumenté pour déterminer si toutes les DLL sont chargées et si les variables d’environnement sont définies. Si la surveillance fonctionne, au moins 12 DLL doivent être chargées.

  • Utilisez la Get-ApplicationInsightsMonitoringStatus -InspectProcess commande pour case activée les DLL.
  • Utilisez la (Get-Process -id <process-identifier>).StartInfo.EnvironmentVariables commande pour case activée les variables d’environnement. Les variables d’environnement suivantes sont définies dans le processus worker ou le processus .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>

Consultez la référence Get-ApplicationInsightsMonitoringStatus pour obtenir une description détaillée de l’utilisation de cette applet de commande.

Collecter les journaux ETW à l’aide de PerfView

Configuration

  1. Téléchargez PerfView.exe à partir de GitHub.

  2. Exécutez PerfView.exe.

  3. Dans la barre de menus, sélectionnez Collecter>collecter.

  4. Développez Options avancées.

  5. Décochez ces case activée zones :

    • Zip
    • Merge
    • Collection de symboles .NET
  6. Définissez ces fournisseurs supplémentaires :

    *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

Collecte des journaux

  1. Dans une console de commande avec des privilèges d’administrateur, exécutez la iisreset /stop commande pour désactiver IIS et toutes les applications web.

  2. Dans PerfView, sélectionnez Démarrer la collection.

  3. Dans une console de commandes avec des privilèges d’administrateur, exécutez la iisreset /start commande pour démarrer IIS.

  4. Essayez d’accéder à votre application.

  5. Une fois votre application chargée, revenez à PerfView et sélectionnez Arrêter la collecte.

Étapes suivantes

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.