Dela via


Felsöka Azure Application Insights-agenten (tidigare StatusÖvervakaren v2)

Den här artikeln innehåller felsökningsinformation som hjälper dig att lösa problem med datainsamling som kan uppstå när Microsoft Azure Application Insights-övervakning är aktiverat.

Kända problem

Motstridiga DLL:er i bin-mappen

Om något av dessa DLL:er (dynamic-link libraries) finns i mappen bin i appen kan övervakningen misslyckas:

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

Vissa av dessa DLL:er ingår i Visual Studio-standardappmallarna, även om appen inte använder dem. Du kan använda felsökningsverktyg, till exempel följande verktyg, för att se symptomatiskt beteende:

  • 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 och appinläsning (utan telemetri). Undersök med hjälp av Sysinternals (Handle.exe och 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
    

PowerShell-versioner

Den här produkten har skrivits och testats med hjälp av PowerShell version 5.1. Den här modulen är inte kompatibel med PowerShell version 6 eller 7. Vi rekommenderar att du använder PowerShell 5.1 tillsammans med nyare versioner. Mer information finns i Använda PowerShell 7 sida vid sida med PowerShell 5.1.

Konflikt i delad IIS-konfiguration

Om du har ett kluster med webbservrar kanske du använder en delad konfiguration. DET går inte att mata in HTTP-modulen i den här delade konfigurationen. Kör kommandot Aktivera på varje webbserver för att installera DLL:en i varje servers globala sammansättningscache (GAC).

När du har kört kommandot Aktivera följer du dessa steg:

  1. Gå till den delade konfigurationskatalogen och leta upp filen ApplicationHost.config .

  2. Lägg till följande XML-kod i modulavsnittet <> i konfigurationen:

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

IIS-kapslade program

I version 1.0 av Application Insights-agenten instrumenteras inte kapslade program i IIS (Internet Information Services).

Klassiskt IIS-pipelineläge

Vi instrumentar inte program som finns i programpooler om de är konfigurerade för att använda det klassiska pipelineläget.

Avancerad SDK-konfiguration är inte tillgänglig

SDK-konfigurationen exponeras inte för slutanvändaren i version 1.0.

Felsöka PowerShell

Avgöra vilka moduler som är tillgängliga

Kör cmdleten Get-Module -ListAvailable för att avgöra vilka moduler som är installerade.

Importera en modul till den aktuella sessionen

Om en modul inte läses in i en PowerShell-session kan du läsa in den manuellt genom att köra cmdleten Import-Module <path-to-psd1> .

Felsöka Application Insights Agent-modulen

Visa en lista över de cmdletar som är tillgängliga i Application Insights Agent-modulen

Om du vill se de cmdletar som är tillgängliga i Application Insights Agent-modulen kör du cmdleten Get-Command -Module Az.ApplicationMonitor :

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

Fastställa den aktuella versionen av Application Insights Agent-modulen

Kör cmdleten Get-ApplicationInsightsMonitoringStatus -PowerShellModule för att visa följande information om modulen:

  • PowerShell-modulversion
  • Application Insights SDK-version
  • Filsökvägar för PowerShell-modulen

En detaljerad beskrivning av hur du använder den här cmdleten finns i referensen Get-ApplicationInsightsMonitoringStatus.

Felsöka processer som körs

Du kan granska processerna på den instrumenterade datorn för att avgöra om alla DLL:er läses in och miljövariabler har angetts. Om övervakningen fungerar bör minst 12 DLL:er läsas in.

  • Kör cmdleten Get-ApplicationInsightsMonitoringStatus -InspectProcess för att kontrollera DLL:er.
  • Kör cmdleten (Get-Process -id <process-identifier>).StartInfo.EnvironmentVariables för att kontrollera miljövariablerna. Följande miljövariabler anges i arbetsprocessen eller .NET Core-processen:
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>

En detaljerad beskrivning av hur du använder den här cmdleten finns i referensen Get-ApplicationInsightsMonitoringStatus.

Samla in ETW-loggar med hjälp av PerfView

Ställ in

  1. Ladda ned PerfView.exe från GitHub.

  2. Kör PerfView.exe.

  3. På menyraden väljer du Samla in>.

  4. Expandera Avancerade alternativ.

  5. Avmarkera följande kryssrutor:

    • Zip
    • Koppla
    • .NET-symbolsamling
  6. Ange följande ytterligare providers:

    *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

Samla in loggar

  1. Kör kommandot i en administrativ kommandotolk iisreset /stop för att inaktivera IIS och alla webbappar.

  2. I PerfView väljer du Starta samling.

  3. I en administrativ kommandotolk kör du iisreset /start kommandot för att starta IIS.

  4. Försök att bläddra till din app.

  5. När appen har lästs in går du tillbaka till PerfView och väljer Stoppa samling.

Nästa steg

  • Granska API-referensen för att lära dig mer om parametrar som du kanske har missat.

Kontakta oss om du behöver hjälp

Om du har frågor eller behöver hjälp skapar du en supportbegäran eller frågar Azure Community-support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.