Risolvere i problemi app Azure lication Insights Agent (in precedenza Status Monitor v2)
Questo articolo fornisce informazioni sulla risoluzione dei problemi di risoluzione dei problemi di raccolta dati che potrebbero verificarsi quando è abilitato il monitoraggio di Microsoft app Azure lication Insights.
Problemi noti
DLL in conflitto nella cartella bin
Se una di queste librerie a collegamento dinamico (DLL) è presente nella cartella bin dell'app, il monitoraggio potrebbe non riuscire:
- Microsoft.ApplicationInsights.dll
- Microsoft.AspNet.TelemetryCorrelation.dll
- System.Diagnostics.DiagnosticSource.dll
Alcune di queste DLL sono incluse nei modelli di app predefiniti di Visual Studio, anche se l'app non le usa. È possibile usare strumenti per la risoluzione dei problemi, ad esempio gli strumenti seguenti, per visualizzare il comportamento sintomatico:
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 e caricamento delle app (senza dati di telemetria). Esaminare usando Sysinternals (Handle.exe e 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
Versioni di PowerShell
Questo prodotto è stato scritto e testato usando PowerShell versione 5.1. Questo modulo non è compatibile con PowerShell versione 6 o 7. È consigliabile usare PowerShell 5.1 insieme alle versioni più recenti. Per altre informazioni, vedere Uso di PowerShell 7 side-by-side con PowerShell 5.1.
Conflitto nella configurazione condivisa di IIS
Se si dispone di un cluster di server Web, è possibile usare una configurazione condivisa. Il modulo HTTP non può essere inserito in questa configurazione condivisa. Eseguire il comando Abilita in ogni server Web per installare la DLL nella Global Assembly Cache (GAC) di ogni server.
Dopo aver eseguito il comando Abilita, seguire questa procedura:
Passare alla directory di configurazione condivisa e individuare il file ApplicationHost.config .
Aggiungere il codice XML seguente alla <sezione modules> della configurazione:
<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>
Applicazioni nidificate IIS
Nella versione 1.0 dell'agente di Application Insights non vengono instrumentate le applicazioni annidate in Internet Information Services (IIS).
Modalità pipeline classica di IIS
Non si instrumentano le applicazioni ospitate nei pool di applicazioni se sono configurate per l'uso della modalità pipeline classica.
La configurazione avanzata dell'SDK non è disponibile
La configurazione dell'SDK non è esposta all'utente finale nella versione 1.0.
Risolvere i problemi di PowerShell
Determinare quali moduli sono disponibili
Per determinare quali moduli sono installati, eseguire il Get-Module -ListAvailable
cmdlet .
Importare un modulo nella sessione corrente
Se un modulo non viene caricato in una sessione di PowerShell, è possibile caricarlo manualmente eseguendo il Import-Module <path-to-psd1>
cmdlet .
Risolvere i problemi del modulo Application Insights Agent
Elencare i cmdlet disponibili nel modulo Application Insights Agent
Per visualizzare i cmdlet disponibili nel modulo Application Insights Agent, eseguire il Get-Command -Module Az.ApplicationMonitor
cmdlet :
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
Determinare la versione corrente del modulo Application Insights Agent
Eseguire il Get-ApplicationInsightsMonitoringStatus -PowerShellModule
cmdlet per visualizzare le informazioni seguenti sul modulo:
- Versione del modulo PowerShell
- Versione di Application Insights SDK
- Percorsi di file del modulo PowerShell
Esaminare le informazioni di riferimento su Get-ApplicationInsightsMonitoringStatus per una descrizione dettagliata di come usare questo cmdlet.
Risolvere i problemi relativi ai processi in esecuzione
È possibile esaminare i processi nel computer instrumentato per determinare se tutte le DLL vengono caricate e le variabili di ambiente sono impostate. Se il monitoraggio funziona, dovrebbero essere caricate almeno 12 DLL.
- Eseguire il
Get-ApplicationInsightsMonitoringStatus -InspectProcess
cmdlet per controllare le DLL. - Eseguire il
(Get-Process -id <process-identifier>).StartInfo.EnvironmentVariables
cmdlet per controllare le variabili di ambiente. Le variabili di ambiente seguenti vengono impostate nel processo di lavoro o nel processo di .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>
Esaminare le informazioni di riferimento su Get-ApplicationInsightsMonitoringStatus per una descrizione dettagliata di come usare questo cmdlet.
Raccogliere i log ETW usando PerfView
Attrezzaggio
Scaricare PerfView.exe da GitHub.
Eseguire PerfView.exe.
Sulla barra dei menu selezionare Raccogli>raccolta.
Espandere Opzioni avanzate.
Deselezionare le caselle di controllo seguenti:
- Zip
- Unione
- Insieme di simboli .NET
Impostare i provider aggiuntivi seguenti:
*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
Raccogliere i log
In un prompt dei comandi amministrativo eseguire il
iisreset /stop
comando per disattivare IIS e tutte le app Web.In PerfView selezionare Avvia raccolta.
In un prompt dei comandi amministrativo eseguire il
iisreset /start
comando per avviare IIS.Provare a passare all'app.
Dopo il caricamento dell'app, tornare a PerfView e selezionare Arresta raccolta.
Passaggi successivi
- Esaminare il riferimento all'API per informazioni sui parametri che potrebbero non essere stati rilevati.
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.