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 :
Accédez au répertoire de configuration partagé et recherchez le fichier ApplicationHost.config .
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
Téléchargez PerfView.exe à partir de GitHub.
Exécutez PerfView.exe.
Dans la barre de menus, sélectionnez Collecter.>
Développez Options avancées.
Décochez les cases suivantes :
- Compresser
- Fusionner
- Symbol Collection .NET
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é
Dans une invite de commandes d’administration, exécutez la
iisreset /stop
commande pour désactiver IIS et toutes les applications web.Dans PerfView, sélectionnez Démarrer la collecte.
Dans une invite de commandes d’administration, exécutez la
iisreset /start
commande pour démarrer IIS.Essayez d’accéder à votre application.
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.