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:
Przejdź do udostępnionego katalogu konfiguracji i znajdź plik ApplicationHost.config .
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
Pobierz PerfView.exe z usługi GitHub.
Uruchom PerfView.exe.
Na pasku menu wybierz pozycję Zbieraj>.
Rozwiń pozycję Opcje zaawansowane.
Wyczyść następujące pola wyboru:
- Zip
- Scal
- Kolekcja symboli platformy .NET
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
W wierszu polecenia administracyjnego uruchom
iisreset /stop
polecenie , aby wyłączyć usługi IIS i wszystkie aplikacje internetowe.W widoku PerfView wybierz pozycję Rozpocznij kolekcję.
W wierszu polecenia administracyjnego uruchom
iisreset /start
polecenie , aby uruchomić usługi IIS.Spróbuj przejść do aplikacji.
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.