Udostępnij za pośrednictwem


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

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

Znane problemy

Konflikt bibliotek DLL w folderze bin

Jeśli którakolwiek z tych bibliotek linków dynamicznych (DLL) znajduje się w folderze bin aplikacji, 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:

  • Widok wydajności:

    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" 
    
  • Usługi IISReset i ładowanie aplikacji (bez telemetrii). Zbadaj przy użyciu programu 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 w konfiguracji udostępnionej usług IIS

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

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

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

  2. Dodaj następujący 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

W wersji 1.0 agenta usługi Application Insights nie instrumentujemy zagnieżdżonych aplikacji w usługach Internet Information Services (IIS).

Klasyczny tryb potoku usług IIS

Nie instrumentujemy aplikacji hostowanych w pulach aplikacji, jeśli są skonfigurowane do korzystania z trybu klasycznego potoku.

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

Aby określić, które moduły są zainstalowane, uruchom Get-Module -ListAvailable polecenie cmdlet .

Importowanie modułu do bieżącej sesji

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

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

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

Aby wyświetlić polecenia cmdlet dostępne w module Agent usługi Application Insights, uruchom Get-Command -Module Az.ApplicationMonitor polecenie 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

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

Uruchom polecenie cmdlet, 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 używania tego polecenia cmdlet.

Rozwiązywanie problemów z uruchomionymi procesami

Możesz sprawdzić procesy na instrumentowanych komputerach, aby określić, czy wszystkie biblioteki DLL są ładowane, a zmienne środowiskowe są ustawione. Jeśli monitorowanie działa, należy załadować co najmniej 12 bibliotek DLL.

  • Uruchom polecenie cmdlet , Get-ApplicationInsightsMonitoringStatus -InspectProcess aby sprawdzić biblioteki DLL.
  • Uruchom polecenie cmdlet , (Get-Process -id <process-identifier>).StartInfo.EnvironmentVariables aby sprawdzić zmienne środowiskowe. Następujące zmienne środowiskowe są ustawiane w procesie roboczym lub w procesie .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>

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

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

Ustawienia

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

  2. Uruchom PerfView.exe.

  3. Na pasku menu wybierz pozycję Zbieraj>.

  4. Rozwiń pozycję Opcje zaawansowane.

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

    • Zip
    • Scal
    • Kolekcja symboli platformy .NET
  6. Ustaw następujących 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 wierszu polecenia administracyjnego uruchom iisreset /stop polecenie , aby wyłączyć usługi IIS i wszystkie aplikacje internetowe.

  2. W widoku PerfView wybierz pozycję Rozpocznij kolekcję.

  3. W wierszu polecenia administracyjnego uruchom iisreset /start polecenie , aby uruchomić usługi IIS.

  4. Spróbuj przejść do aplikacji.

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

Następne kroki

  • Zapoznaj się z dokumentacją interfejsu API, aby dowiedzieć się więcej o parametrach, które mogły zostać pominięte.

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 na temat platformy Azure.