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:

  1. Passare alla directory di configurazione condivisa e individuare il file ApplicationHost.config .

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

  1. Scaricare PerfView.exe da GitHub.

  2. Eseguire PerfView.exe.

  3. Sulla barra dei menu selezionare Raccogli>raccolta.

  4. Espandere Opzioni avanzate.

  5. Deselezionare le caselle di controllo seguenti:

    • Zip
    • Unione
    • Insieme di simboli .NET
  6. 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

  1. In un prompt dei comandi amministrativo eseguire il iisreset /stop comando per disattivare IIS e tutte le app Web.

  2. In PerfView selezionare Avvia raccolta.

  3. In un prompt dei comandi amministrativo eseguire il iisreset /start comando per avviare IIS.

  4. Provare a passare all'app.

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