Problembehandlung für Azure-Anwendung Insights-Agent (früher Statusmonitor v2)

Dieser Artikel enthält Informationen zur Problembehandlung, um Probleme bei der Datensammlung zu beheben, die bei aktivierter Application Insights-Überwachung auftreten können.

Bekannte Probleme

In Konflikt stehende DLLs im Bin-Verzeichnis einer App

Wenn eine dieser DlLs (Dynamic Link Libraries) im Verzeichnis bin vorhanden ist, schlägt die Überwachung möglicherweise fehl:

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

Einige dieser DLLs sind in den Visual Studio-Standard-App-Vorlagen enthalten, auch wenn Ihre App sie nicht verwendet. Sie können Tools zur Problembehandlung verwenden, z. B. die folgenden Tools, um symptomatisches Verhalten zu sehen:

  • 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 und App-Ladevorgang (ohne Telemetrie). Untersuchen sie mit Sysinternals (Handle.exe und 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-Versionen

Dieses Produkt wurde mit PowerShell Version 5.1 geschrieben und getestet. Dieses Modul ist nicht mit PowerShell-Versionen 6 oder 7 kompatibel. Es wird empfohlen, PowerShell 5.1 zusammen mit neueren Versionen zu verwenden. Weitere Informationen finden Sie unter Paralleles Verwenden von PowerShell 7 mit PowerShell 5.1.

Konflikt mit der freigegebenen IIS-Konfiguration

Wenn Sie über einen Cluster von Webservern verfügen, verwenden Sie möglicherweise eine freigegebene Konfiguration. Das HttpModule kann nicht in diese freigegebene Konfiguration eingefügt werden. Führen Sie den Befehl Aktivieren auf jedem Webserver aus, um die DLL im globalen Assemblycache (GAC) der einzelnen Server zu installieren.

Nachdem Sie den Befehl Aktivieren ausgeführt haben, führen Sie die folgenden Schritte aus:

  1. Wechseln Sie zum freigegebenen Konfigurationsverzeichnis, und suchen Sie die applicationHost.config Datei.

  2. Fügen Sie diesen XML-Code dem <Abschnitt module> Ihrer Konfiguration hinzu:

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

Geschachtelte IIS-Anwendungen

Wir instrumentieren keine geschachtelten Anwendungen in Internetinformationsdienste (IIS) in Version 1.0.

Erweiterte SDK-Konfiguration ist nicht verfügbar

Die SDK-Konfiguration wird in Version 1.0 nicht für den Endbenutzer verfügbar gemacht.

Problembehandlung bei PowerShell

Ermitteln der verfügbaren Module

Sie können den Get-Module -ListAvailable Befehl verwenden, um zu bestimmen, welche Module installiert werden.

Importieren eines Moduls in die aktuelle Sitzung

Wenn ein Modul nicht in eine PowerShell-Sitzung geladen wurde, können Sie es manuell laden, indem Sie den Import-Module <path to psd1> Befehl ausführen.

Problembehandlung für das Application Insights-Agent-Modul

Auflisten der im Application Insights-Agent-Modul verfügbaren Befehle

Führen Sie den Get-Command -Module Az.ApplicationMonitor Befehl aus, um die verfügbaren Befehle abzurufen:

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

Ermitteln der aktuellen Version des Application Insights-Agent-Moduls

Führen Sie den Get-ApplicationInsightsMonitoringStatus -PowerShellModule Befehl aus, um die folgenden Informationen zum Modul anzuzeigen:

  • PowerShell-Modulversion
  • Application Insights SDK-Version
  • Dateipfade des PowerShell-Moduls

Eine ausführliche Beschreibung der Verwendung dieses Cmdlets finden Sie in der Referenz get-ApplicationInsightsMonitoringStatus .

Problembehandlung bei ausgeführten Prozessen

Sie können die Prozesse auf dem instrumentierten Computer überprüfen, um festzustellen, ob alle DLLs geladen und Umgebungsvariablen festgelegt sind. Wenn die Überwachung funktioniert, sollten mindestens 12 DLLs geladen werden.

  • Verwenden Sie den Get-ApplicationInsightsMonitoringStatus -InspectProcess Befehl, um die DLLs zu überprüfen.
  • Verwenden Sie den (Get-Process -id <process-identifier>).StartInfo.EnvironmentVariables Befehl, um die Umgebungsvariablen zu überprüfen. Die folgenden Umgebungsvariablen werden im Arbeitsprozess oder im .NET Core-Prozess festgelegt:
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>

Eine ausführliche Beschreibung der Verwendung dieses Cmdlets finden Sie in der Referenz get-ApplicationInsightsMonitoringStatus .

Sammeln von ETW-Protokollen mithilfe von PerfView

Setup

  1. Laden Sie PerfView.exe von GitHub herunter.

  2. Führen Sie PerfView.exeaus.

  3. Wählen Sie auf der Menüleiste Collect (Sammeln>)aus.

  4. Erweitern Sie Erweiterte Optionen.

  5. Deaktivieren Sie diese Kontrollkästchen:

    • Zip
    • Merge
    • .NET-Symbolsammlung
  6. Legen Sie die folgenden zusätzlichen Anbieter fest:

    *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

Erfassen von Protokollen

  1. Führen Sie in einer Befehlskonsole mit Administratorrechten den iisreset /stop Befehl aus, um IIS und alle Web-Apps zu deaktivieren.

  2. Wählen Sie in PerfView die Option Sammlung starten aus.

  3. Führen Sie in einer Befehlskonsole mit Administratorrechten den iisreset /start Befehl aus, um IIS zu starten.

  4. Versuchen Sie, zu Ihrer App zu navigieren.

  5. Kehren Sie nach dem Laden Ihrer App zu PerfView zurück, und wählen Sie Sammlung beenden aus.

Nächste Schritte

  • Lesen Sie die API-Referenz , um mehr über Parameter zu erfahren, die Sie möglicherweise verpasst haben.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.