Partager via


Résoudre les problèmes liés à l’agent Azure Application Insights (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 de Microsoft Azure Application Insights est activée.

Problèmes connus

DLL en conflit dans le dossier bin

Si l’une de ces bibliothèques de liens dynamiques (DLL) est présente dans le dossier bin de l’application, 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 l’application ne les utilise pas. Vous pouvez utiliser des outils de dépannage, 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 d’application (sans les données de télémétrie). Examiner en utilisant 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 dans la configuration partagée IIS

Si vous avez un cluster de serveurs web, il se peut que vous utilisiez une configuration partagée. Le module HTTP 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 le code XML suivant à 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

Dans la version 1.0 de l’agent Application Insights, nous n’instrumentons pas les applications imbriquées dans Internet Information Services (IIS).

Mode de pipeline classique IIS

Nous n’instrumentons pas les applications hébergées sur des pools d’applications s’ils sont configurés pour utiliser le mode de pipeline classique.

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

La configuration du kit de développement logiciel (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

Pour déterminer quels modules sont installés, exécutez l’applet de Get-Module -ListAvailable commande.

Importer un module dans la session actuelle

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

Résoudre les problèmes liés au module Agent Application Insights

Répertorier les applets de commande disponibles dans le module Agent Application Insights

Pour afficher les applets de commande disponibles dans le module Agent Application Insights, exécutez l’applet Get-Command -Module Az.ApplicationMonitor de commande :

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 l’applet Get-ApplicationInsightsMonitoringStatus -PowerShellModule de commande pour afficher les informations suivantes sur le module :

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

Passez en revue 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 des variables d’environnement sont définies. Si la surveillance fonctionne, au moins 12 DLL doivent être chargées.

  • Exécutez l’applet Get-ApplicationInsightsMonitoringStatus -InspectProcess de commande pour vérifier les DLL.
  • Exécutez l’applet (Get-Process -id <process-identifier>).StartInfo.EnvironmentVariables de commande pour vérifier les variables d’environnement. Les variables d’environnement suivantes sont définies dans le processus de travail ou dans 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>

Passez en revue 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

Programme d’installation

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

  2. Exécutez PerfView.exe.

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

  4. Développez Options avancées.

  5. Décochez les cases suivantes :

    • Compresser
    • Fusionner
    • Symbol Collection .NET
  6. Définissez les fournisseurs supplémentaires suivants :

    *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

Collecter les journaux d’activité

  1. Dans une invite de commandes d’administration, exécutez la iisreset /stop commande pour désactiver IIS et toutes les applications web.

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

  3. Dans une invite de commandes d’administration, 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, puis sélectionnez Arrêter la collection.

Étapes suivantes

  • Passez en revue la référence de l’API pour en savoir plus sur les paramètres que vous avez peut-être manqués.

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.