Rozwiązywanie problemów z agentem usługi aplikacja systemu Azure Insights (dawniej Monitor stanu w wersji 2)

Ten artykuł zawiera informacje dotyczące rozwiązywania problemów, które ułatwiają rozwiązywanie problemów ze zbieraniem danych, które mogą wystąpić po włączeniu monitorowania usługi Application Insights.

Znane problemy

Konflikt bibliotek DLL w katalogu bin aplikacji

Jeśli dowolna z tych bibliotek dynamicznych łączy (DLL) znajduje się w katalogu bin , monitorowanie może zakończyć się niepowodzeniem:

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

Niektóre z tych bibliotek DLL są zawarte w domyślnych szablonach aplikacji programu Visual Studio, nawet jeśli aplikacja ich nie używa. Aby zobaczyć zachowanie objawowe, możesz użyć narzędzi do rozwiązywania problemów, takich jak następujące narzędzia:

  • 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 i ładowanie aplikacji (bez telemetrii). Badanie za pomocą funkcji Sysinternals (Handle.exe i 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
    

Wersje programu PowerShell

Ten produkt został napisany i przetestowany przy użyciu programu PowerShell w wersji 5.1. Ten moduł nie jest zgodny z programem PowerShell w wersji 6 lub 7. Zalecamy używanie programu PowerShell 5.1 wraz z nowszymi wersjami. Aby uzyskać więcej informacji, zobacz Używanie programu PowerShell 7 obok siebie z programem PowerShell 5.1.

Konflikt z konfiguracją udostępnioną usług IIS

Jeśli masz klaster serwerów internetowych, być może używasz konfiguracji udostępnionej. Nie można wprowadzić modułu HttpModule do tej konfiguracji udostępnionej. Uruchom polecenie Włącz na każdym serwerze internetowym, aby zainstalować bibliotekę DLL w globalnej pamięci podręcznej zestawów (GAC) każdego serwera.

Po uruchomieniu polecenia Włącz wykonaj następujące kroki:

  1. Przejdź do udostępnionego katalogu konfiguracji i znajdź plik applicationHost.config .

  2. Dodaj ten kod XML do <sekcji modułów> konfiguracji:

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

Aplikacje zagnieżdżone usług IIS

Nie instrumentujemy zagnieżdżonych aplikacji w usługach Internet Information Services (IIS) w wersji 1.0.

Zaawansowana konfiguracja zestawu SDK jest niedostępna

Konfiguracja zestawu SDK nie jest widoczna dla użytkownika końcowego w wersji 1.0.

Rozwiązywanie problemów z programem PowerShell

Określanie, które moduły są dostępne

Możesz użyć polecenia , Get-Module -ListAvailable aby określić, które moduły są zainstalowane.

Importowanie modułu do bieżącej sesji

Jeśli moduł nie został załadowany do sesji programu PowerShell, możesz go ręcznie załadować, uruchamiając Import-Module <path to psd1> polecenie.

Rozwiązywanie problemów z modułem Agent usługi Application Insights

Wyświetlanie listy poleceń dostępnych w module Agent usługi Application Insights

Uruchom polecenie , Get-Command -Module Az.ApplicationMonitor aby uzyskać dostępne polecenia:

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

Określanie bieżącej wersji modułu agenta usługi Application Insights

Uruchom polecenie , Get-ApplicationInsightsMonitoringStatus -PowerShellModule aby wyświetlić następujące informacje o module:

  • Wersja modułu programu PowerShell
  • Wersja zestawu SDK usługi Application Insights
  • Ścieżki plików modułu programu PowerShell

Zapoznaj się z dokumentacją Get-ApplicationInsightsMonitoringStatus , aby uzyskać szczegółowy opis sposobu korzystania z tego polecenia cmdlet.

Rozwiązywanie problemów z uruchomionymi procesami

Procesy można sprawdzić na instrumentowanym komputerze, aby ustalić, czy są ładowane wszystkie biblioteki DLL i czy są ustawione zmienne środowiskowe. Jeśli monitorowanie działa, należy załadować co najmniej 12 bibliotek DLL.

  • Użyj polecenia , Get-ApplicationInsightsMonitoringStatus -InspectProcess aby sprawdzić biblioteki DLL.
  • Użyj polecenia , (Get-Process -id <process-identifier>).StartInfo.EnvironmentVariables aby sprawdzić zmienne środowiskowe. W procesie roboczym lub w procesie .NET Core są ustawiane następujące zmienne środowiskowe:
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>

Zapoznaj się z dokumentacją Get-ApplicationInsightsMonitoringStatus , aby uzyskać szczegółowy opis sposobu korzystania z tego polecenia cmdlet.

Zbieranie dzienników ETW przy użyciu narzędzia PerfView

Konfigurowanie

  1. Pobierz PerfView.exe z usługi GitHub.

  2. Uruchom PerfView.exe.

  3. Na pasku menu wybierz pozycję Zbierz>.

  4. Rozwiń pozycję Opcje zaawansowane.

  5. Wyczyść następujące pola wyboru:

    • Zip
    • Scalania
    • Kolekcja symboli platformy .NET
  6. Ustaw tych dodatkowych dostawców:

    *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

Zbieranie dzienników

  1. W konsoli poleceń z uprawnieniami administratora uruchom iisreset /stop polecenie , aby wyłączyć usługi IIS i wszystkie aplikacje internetowe.

  2. W widoku PerfView wybierz pozycję Rozpocznij zbieranie.

  3. W konsoli poleceń z uprawnieniami administratora uruchom iisreset /start polecenie , aby uruchomić usługi IIS.

  4. Spróbuj przejść do aplikacji.

  5. Po załadowaniu aplikacji wróć do elementu PerfView i wybierz pozycję Zatrzymaj zbieranie.

Następne kroki

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.