Środowisko
Monitoring .NET Framework
Czujnik .NET jest automatycznie wdrażany i instalowany po zainstalowaniu agenta Instana.
Uwaga: Ta strona dotyczy obsługi aplikacji opartych na pełnym środowisku .NET. Jeśli szukasz obsługi w środowisku .NET lub .NET Core, zapoznaj się z sekcją Monitorowanie aplikacji opartych na .NET i .NET Core.
- Obsługiwane informacje
- Gromadzenie danych czujnika
- InstanaPCP i liczniki wydajności
- śledzenie
- Otwórz integrację z produktem Telemetry
- rozwiązywanie problemów
Obsługiwane informacje
Obsługiwane systemy operacyjne
Do monitorowania środowiska .NET Framework obsługiwany jest tylko system Windows ®. Obsługiwane systemy operacyjne Windows są takie same, jak wymagania agenta Windows.
Obsługiwane wersje
Instana obsługuje monitorowanie aplikacji działających w środowisku .NET Framework w wersji 4.5.1 i nowszych.
| Środowisko wykonawcze | Status obsługi |
|---|---|
| .NET Framework 4.5.1 i nowsze | GA |
Obsługiwane biblioteki i środowiska na potrzeby śledzenia
| HTTP | Wersja |
|---|---|
| ASP.NET MVC | >= 5.0, >= 5.1, >=5.2.2 |
| ASP.NET WebAPI | >= 5.0, >= 5.1, >=5.2.2 |
| ASP.NET WebForms | >= 4.5.2 |
| ASP.NET Core | 1.0.2, 1.0.3, 1.1.2, 1.1.3, 1.1.7, 2.0.0, 2.0.1, 2.0.2, 2.2.0 |
| ServiceStack | 4.4, 4.5 |
| System.Net.Http.HttpClient | >= 4.5.2 |
| System.Net.HttpWebRequest | >= 4.5.2 |
| Bazy danych | Wersja |
|---|---|
| Microsoft SQL-Server (System.Data.SqlClient) | 4.8.2 i 4.8.5 |
| Oracle ODP (Oracle.DataAccess.Client) | 2.102.5, 2.112.1, 4.112.2, 4.112.3i 4.121.2 |
| Oracle Devart (Oracle.ManagedDataAccess.Client) | 12.1.22, 19.12.0, 21.10.0i 21.11.0 |
| PostgreSQL (NpgSql) | 2.0.12.1, 2.1.0, 2.2.0i 3.0.0-7.0.4 |
| Cassandra | 3.4.0, 3.7.0, 3.8.0, 3.9.0i 3.10.0-3.11.0 |
| Couchbase | 3.1.7 i 3.2.0 |
| Elastyczna wyszukiwarka | 6.0.0 |
| MongoDB | >= 1.8.0, 2.4.4, >= 2.10.0 |
| Redis Stos usług | >= 5.0 |
| Redis Stack Exchange (Wymiana stosu) | >= 2.0 |
| Memcached | 2.11.0, 2.16.0 |
| IBM Db2 | >= 11.1.0.4 |
| Sql (System.Data) | >= 4.5.2 |
| ORM | Wersja |
|---|---|
| Struktura jednostek | >= 4.5.2 |
| Zdalne | Wersja |
|---|---|
| Usługi Windows Communication Foundation | >= 4.5.2 |
| .NET Remoting, | >= 4.5.2 |
| Przesyłanie wiadomości | Wersja |
|---|---|
| Pamięć masowa kolejkiAzure | 12.8.0 |
| Kolejka komunikatów Microsoft | >= 4.5.2 |
| EasyNetK | 3.3.9 |
| RabbitMQ | 3.6.9, 4.1.0, 5.0.1, >= 6.0.0 |
| Rejestrowanie | Wersja |
|---|---|
| Dziennik NLog | >= 4 |
| Log4Net | 1.2.11, 1.2.14, 1.2.15, 2.0.7, >= 2.0.8 |
| Dziennik numerów seryjnych | >= 2.8.0 |
W przypadku rejestrowania można ustawić zmienną środowiskową INSTANA_LOG_LEVEL_CAPTURE , aby zapobiec tworzeniu zakresów dla dzienników o poziomie niższym niż ustawiony. Wartością może być WARN, ERRORlub OFF (aby wyłączyć tę opcję). Wartością domyślną jest WARN.
| Programy planujące i zadania-zarządzanie | Wersja |
|---|---|
| Hangfire (Hangfire) | 1.6.20 |
| Kwarc | 3.0.7 |
Gromadzenie danych czujnika
| Śledzona konfiguracja | Wskaźniki |
|---|---|
| Nazwa | Działanie czyszczenia pamięci |
| Wersja | Wykorzystanie pamięci |
| Argumenty | Blokady wątków |
| Kontencja |
Podpisy poprawności
Dla każdego czujnika w sposób ciągły sprawdzana jest baza wiedzy sygnatur poprawności w odniesieniu do przychodzących wielkości mierzonych. Na podstawie oceny zgłaszane są problemy lub incydenty w zależności od wpływu użytkownika.
Wbudowane zdarzenia wyzwalają problemy lub incydenty na podstawie niesprawnych sygnatur poprawności jednostek, a zdarzenia niestandardowe wyzwalają problemy lub incydenty na podstawie progów pojedynczej wielkości mierzonej dla każdego obiektu.
Więcej informacji na temat wbudowanych zdarzeń dla czujnika .NET zawiera sekcja Skorowidz wbudowanych zdarzeń.
InstanaPCP i liczniki wydajności
Więcej informacji na temat InstanaPCP i liczników wydajności zawiera strona Monitorowanie procesów Windows .
Śledzenie
Dowiedz się, jak skonfigurować śledzenie .NET Framework dla środowiska i jak ono działa.
Jak działa śledzenie
Po włączeniu śledzenia przez zmianę pliku konfiguracyjnego dane śledzenia są gromadzone dla wszystkich aplikacji, które korzystają z obsługiwanych technologii. .NET Framework-Śledzenie używa tego samego schematu, co wszystkie inne pakiety śledzenia. Rozproszone ślady w aplikacjach poliglot są automatycznie gromadzone i wyświetlane w interfejsie użytkownika Instana.
Podczas uruchamiania aplikacji z włączonym śledzeniem może okazać się, że czas uruchamiania jest dłuższy niż czas uruchamiania bez śledzenia. Jest to spowodowane dołączaniem reguły profilującej, sprawdzaniem klas zawartych w przywoływanych zespołach, a następnie kompilowaniem kodu niektórych metod na potrzeby instrumentacji. Po zastosowaniu instrumentacji, wpływ na wydajność środowiska wykonawczego aplikacji jest bardzo niski, tak jak w przypadku innych pakietów śledzenia, które są udostępniane przez Instana.
Konfiguracja komponentu śledzenia jest w większości przypadków funkcją automatyczną agenta. Aby jednak skonfigurować śledzenie, należy wykonać krok ręczny opisany w poniższych sekcjach.
Konfigurowanie śledzenia dla środowiska .NET Framework
Gdy agent Instana jest uruchamiany na komputerze z systemem Windows, agent Instana instaluje rozszerzenie śledzenia dla środowiska .NET Framework. Rozszerzenie składa się z kilku plików, które zawierają rzeczywiste komponenty śledzenia. Ponieważ Instana używa interfejsu API profilowania zdefiniowanego w środowisku .NET, obejmuje on biblioteki COM i zarządzane zespoły. Jeśli śledzenie jest włączone, pliki są rejestrowane, dzięki czemu wszystkie aplikacje mogą ich używać do śledzenia. Rozszerzenia czujnika i śledzenia są domyślnie włączone.
Po uruchomieniu agenta InstanaPCP rejestruje informacje o procesie włączania śledzenia, jak pokazano w poniższym przykładzie (skrócone wiersze dziennika). Przedstawia configuration.yaml z włączonym śledzeniem .NET Framework.
INFO | com.instana.agent - 1.1.326 | Writing location for instrumentation-advices to registry
INFO | com.instana.agent - 1.1.326 | Setting up tracing-environment
INFO | com.instana.agent - 1.1.326 | Registering native profiler for .NET
INFO | com.instana.agent - 1.1.326 | Agent UUID received:ac:bc:32:ff:fe:90:7d:bb
INFO | com.instana.agent - 1.1.326 | Registering System.Collections.Immutable.dll in GAC
INFO | com.instana.agent - 1.1.326 | .NET Tracing is enabled
INFO | com.instana.agent - 1.1.326 | Registering instrumentation-DLLs in GAC
INFO | com.instana.agent - 1.1.326 | Registering Instana.ManagedTracing.dll in GAC
INFO | com.instana.agent - 1.1.326 | Setting environment-variables for .NET tracing
INFO | com.instana.agent - 1.1.326 | Registry-Key for WAS-Environment does not exist, will create now
INFO | com.instana.agent - 1.1.326 | Setting environment for WAS
WARN | com.instana.agent - 1.1.326 | You should consider restarting the service WAS in order to make it use the new profiler. Already running application will not use it until restarted.
INFO | com.instana.agent - 1.1.326 | Registry-Key for W3SVC-Environment does not exist, will create now
INFO | com.instana.agent - 1.1.326 | Setting environment for W3SVC
WARN | com.instana.agent - 1.1.326 | You should consider restarting the service W3SVC in order to make it use the new profiler. Already running application will not use it until restarted.
INFO | com.instana.agent - 1.1.326 | Setting memoryUsageExcessThreshold set to configured value of 100000000
INFO | com.instana.agent - 1.1.326 | Self-Monitoring for Windows-Extensions has been started successfully
INFO | com.instana.agent - 1.1.326 | Setting memoryUsageWarningThreshold set to configured value of 80000000
INFO | com.instana.agent - 1.1.326 | Starting tracing-session
INFO | com.instana.agent - 1.1.326 | Windows-Extension REST-Endpoint has been setup successfully at http://localhost:42657
INFO | com.instana.agent - 1.1.326 | Registering Instana.ManagedTracing.Modules.dll in GAC
INFO | com.instana.agent - 1.1.326 | Instana ETW-Reader setup and listening
Rozszerzenie rejestruje plik COM-DLL (profiler) z trzema zarządzanymi zespołami, które zawierają rzeczywisty kod instrumentacji lub są wymagane do działania instrumentacji (Instana.ManagedTracing.dll, Instana.ManagedTracing.Base.dll, System.Collections.Immutable.dll). Po zarejestrowaniu komponentów rozszerzenie aktualizuje rejestr, tak aby wszystkie instancje W3SVC lub WebSphere Application Server przyłączały profiler przy następnym uruchomieniu. Do dzienników zostanie dodane ostrzeżenie o restartowaniu już uruchomionych aplikacji. Instana nie restartuje tych usług automatycznie, ponieważ nie chcemy przerywać usług.
Włączanie śledzenia dla aplikacji udostępnianych przez serwer IIS
Jeśli używane są aplikacje obsługiwane przez serwer IIS, nie trzeba wykonywać żadnych dodatkowych czynności konfiguracyjnych. InstanaPCP zajmuje się wszystkimi wszystkimi aplikacjami. Po uruchomieniu agenta Instana i aplikacji InstanaPCP uruchom resetowanie IIS. Korzystając z Menedżera zadań dla systemu Windows, można sprawdzić, czy usługa InstanaPCP jest uruchomiona.
Uwaga: Jeśli resetowanie serwera IIS nie zostanie uruchomione, pracownicy serwera IIS nie będą wiedzieć, że muszą być instrumentowani i nie będzie można śledzić aplikacji udostępnianych przez serwer IIS.
Włączanie śledzenia dla aplikacji udostępnianych przez serwery inne niż IIS
Agent Instana nie włącza śledzenia dla każdej aplikacji opartej na technologii .NET, ponieważ może to spowodować niepożądane zachowanie komponentu. Na przykład śledzenie aplikacji systemu Windows, które nie są w zasięgu potrzeb monitorowania.
Konfigurowanie zmiennych środowiskowych dla procesów
Mimo że serwery IIS i WebSphere Application Server są skonfigurowane do automatycznego przyłączania profilera przez ustawienie odpowiednich zmiennych środowiskowych, procesy autonomiczne nie są skonfigurowane. Śledzenie tych procesów można włączyć, udostępniając niezbędne zmienne środowiskowe w jeden z następujących sposobów:
- Ustawianie zmiennych środowiskowych na poziomie użytkownika (w przypadku używania konkretnych użytkowników do uruchamiania aplikacji)
- Ustawianie zmiennych środowiskowych przed uruchomieniem rzeczywistego procesu.
Aby włączyć śledzenie dla konkretnego procesu, należy podać wartości następujących zmiennych środowiskowych:
Zmienne środowiskowe wymagane do śledzenia
SET COR_ENABLE_PROFILING=1
SET COR_PROFILER={FA8F1DFF-0B62-4F84-887F-ECAC69A65DD3}
Te ustawienia można umieścić w skrypcie wsadowym lub powłoce, który ustawia zmienne środowiskowe, a następnie uruchamia procesy.
Konfigurowanie zmiennych środowiskowych dla systemu Windows-Usługi
Jeśli używany jest system Windows-Services , można również umieścić te ustawienia w rejestrze dla poszczególnych usług, co zapewnia lepszą kontrolę nad usługami, które mają być śledzone.
Przejdź do edytora rejestru w ścieżce HKLM\System\CurrentControlSet\Services\<ServiceName>, dodaj wartość MULTI_SZ o nazwie Environment (jeśli nie istnieje), a następnie skopiuj zmienne COR_ENABLE_PROFILING=1 i COR_PROFILER={FA8F1DFF-0B62-4F84-887F-ECAC69A65DD3} do tej wartości.
Aby poprawnie ustawić zawartość wartości MULTI_SZ , należy umieścić jedną parę klucz-wartość w wierszu, tak jak to przedstawiono poniżej:
COR_ENABLE_PROFILING=1
COR_PROFILER={FA8F1DFF-0B62-4F84-887F-ECAC69A65DD3}
Po ostatnim wierszu naciśnij klawisz Enter.
Śledzenie niestandardowe
Instany.NET Tracing SDK włącza niestandardowe śledzenie w miejscu, w którym nie ma zastosowania automatyczna instrumentacja Instany (tzn. używane są komponenty, których Instana nie śledzi automatycznie).
Wyłączanie śledzenia dla środowiska .NET Framework
Aby zatrzymać śledzenie aplikacji .NET Framework, zmień stan pliku konfiguracyjnego z powrotem na stan początkowy lub ustaw odpowiednią flagę na wartość "false".
configuration.yaml z wyłączonym śledzeniem .NET Framework
# CLR Tracing
com.instana.plugin.clr:
tracing:
enabled: false
Po przywróceniu początkowego stanu konfiguracji zrestartuj agenta, aby zmiany odniosły skutek.
Wyłączenie śledzenia w agencie nie powoduje usunięcia ani odłączenia reguły profilującej od procesów, które zostały uruchomione z włączonym śledzeniem (czyli procesów roboczych). Aby upewnić się, że reguła profilująca nie zostanie załadowana do aplikacji, należy zrestartować proces hosta.
Otwórz integrację z produktem Telemetry
Instana udostępnia komponenty .NET na potrzeby integracji z produktem OpenTelemetry, które są opisane na stronie Open Telemetry Integration(Otwórz integrację z produktem Telemetry).
Rozwiązywanie problemów
Jeśli ta sekcja rozwiązywania problemów nie odpowiada na pytania, które masz, skontaktuj się z zespołem wsparcia Instana, aby mogli Ci pomóc i zaktualizować dokumentację.
Zawsze najlepiej jest najpierw sprawdzić kroki, które są potrzebne do włączenia śledzenia. Najpierw należy skupić się na jednej aplikacji. Spróbuj go monitorować, a następnie zinstrumentować.
- Szczegółowe informacje na temat włączania śledzenia.
- Po uruchomieniu agenta, który był uruchomiony przez kilka minut, zostaną wyświetlone informacje dla menedżera zadań InstanaPCP.exe. Jeśli takie informacje są wyświetlane, a aplikacja jest udostępniana przez serwer IIS, należy wykonać czynność
iisreset, aby upewnić się, że instrumentacja jest przyłączona do aplikacji udostępnianych przez serwer IIS. Jeśli aplikacja nie jest obsługiwana przez serwer IIS, nie trzeba wykonywać czynnościiisreset. - Jeśli aplikacja jest obsługiwana przez serwer IIS i program
iisresetjest już zainstalowany, należy wyszukać aplikację w interfejsie użytkownika-powinna być wyświetlana w ciągu jednej minuty. - Spróbuj wykonać kilka żądań do tej aplikacji, a następnie spróbuj wyszukać tę usługę w interfejsie użytkownika. Na przykład znajdź ten proces na tym hoście i przejdź stamtąd do usługi, a następnie kliknij opcję Analizuj dane śledzenia.
- Jeśli to nie zadziała, spróbuj włączyć dzienniki śledzenia agenta. Najpierw należy ustawić śledzenie, aby przechwytywać tylko wielkości mierzone, dzięki czemu można sprawdzić, czy czujnik znalazł tę aplikację na liście wielkości mierzonych, które wysyła do zaplecza. Można to zrobić, porównując dzienniki agenta z identyfikatorem procesu tej aplikacji. Sprawdź, czy dziennik zawiera informacje o tym, że czujnik CLR został utworzony dla konkretnego identyfikatora procesu.
- Jeśli zostaną znalezione te wielkości mierzone lub dzienniki, należy włączyć dzienniki śledzenia dla agenta, aby agent przechwytuje dane śledzenia wysyłane do zaplecza. Te dane śledzenia zawierają identyfikator procesu i nazwę, dlatego należy spróbować dopasować dane śledzenia do aplikacji, która ma być instrumentowana.
Nie zdefiniowano zmiennej środowiskowej 
Typ problemu monitorowania: clr_env_var_not_defined
Co najmniej jedna zmienna środowiskowa, która jest wymagana do aktywowania śledzenia środowiska Instana .NET Framework, nie jest poprawnie ustawiona.
W przypadku aplikacji udostępnianych na serwerze IIS komenda
iisresetmogła nie zostać wydana lub została wydana przed zarejestrowaniem przez agenta bibliotek, które są wymagane do śledzenia. Jako rozwiązanie wykonaj komendęiisresetz wiersza komend z podwyższonym poziomem uprawnień.Jeśli to nie pomoże, należy rozważyć zrestartowanie komputera. W zależności od wersji systemu Windows oraz od tego, czy aplikacje były instalowane lub deinstalowane podczas uruchamiania agenta Instana, może być konieczne wykonanie restartu.
W przypadku aplikacji, które nie są obsługiwane przez serwer IIS, należy zapoznać się z sekcją Włączanie śledzenia dla aplikacji obsługiwanych przez serwer inny niż IIS , aby uzyskać listę zmiennych środowiskowych i wartości, które należy ustawić w celu śledzenia aplikacji środowiska .NET Framework.
Zmienna środowiskowa ma niepoprawną wartość
Typ problemu monitorowania: clr_env_var_invalid_value
Co najmniej jedna zmienna środowiskowa, która jest wymagana do aktywowania śledzenia Instana .NET Framework, nie ma odpowiedniej wartości. (W zależności od tego, których zmiennych środowiskowych brakuje, nadal mogą być wyświetlane pomiary na panelach kontrolnych Instana dla aplikacji .NET Framework, ale na pewno nie dla danych śledzenia). Listę zmiennych środowiskowych i wartości, które należy ustawić w celu śledzenia aplikacji .NET Framework za pomocą Instana, zawiera sekcja Włączanie śledzenia dla aplikacji udostępnianych przez serwery inne niż IIS .
Ponadto zmienna środowiskowa może mieć niepoprawną wartość, ponieważ istnieje inne narzędzie APM. (W celu przyłączenia środowiska wykonawczego .NET różne narzędzia APM używają podobnych mechanizmów). Ta sytuacja jest opisana w komunikacie w interfejsie użytkownika Instana.
Zanim Instana będzie mogła śledzić aplikację .NET Framework, wyłącz innego agenta APM, przynajmniej dla monitorowania .NET Framework. Więcej informacji na temat wyłączania innego agenta APM zawiera dokumentacja innego narzędzia APM.
InstanaPCP nie działa
Typ problemu monitorowania: clr_instana_pcp_not_running
W dzienniku agenta mogą znajdować się komunikaty ostrzegawcze informujące o tym, że InstanaPCP does not seem to be running. Ten komunikat jest wyzwalany, gdy agent próbuje współdziałać z InstanaPCP , ale nie może tego zrobić. Zwykle agent uruchamia program InstanaPCP na początku procesu startowego i może się z nim komunikować. W następujących okolicznościach uruchomienie programu InstanaPCP może nie być możliwe:
- Agent nie jest uruchomiony z wystarczającymi uprawnieniami (nie działa jako lokalny system lub administrator).
- Wersja środowiska .NET na hoście nie jest obsługiwana. Obsługiwane jest tylko środowisko .NET Framework 4.5.1 i nowsze wersje.
- InstanaPCP zrestartował się z powodu nadmiernego wykorzystania pamięci.
Jeśli ten komunikat jest wyświetlany wielokrotnie, wykonaj następujące czynności:
Upewnij się, że agent działa z użytkownikiem, który ma lokalne uprawnienia administracyjne. Jeśli nie, użyj innego konta użytkownika, aby uruchomić agenta, lub nadaj użytkownikowi lokalne uprawnienia administracyjne. Podczas instalowania agenta Instana z pakietu instalacyjnego usługa jest zwykle uruchamiana jako system lokalny, co daje usłudze wystarczające uprawnienia.
Sprawdź, która wersja środowiska .NET Framework jest zainstalowana na komputerze. Pakiet instalatora Windows automatycznie instaluje minimalną wersję środowiska .NET Framework wymaganą przez InstanaPCP . Jeśli jednak agent hosta jest instalowany z archiwum ZIP, może być konieczne samodzielne zainstalowanie środowiska. Jeśli nie masz pewności, czy masz poprawną wersję, spróbuj ręcznie uruchomić program InstanaPCP z poziomu wiersza komend, umieszczając go w katalogu
<agent-dir>\system\com\instana\agent-windows-extensions\<latest>\agent-windows-extensions-<latest>. Jeśli nie zainstalowano poprawnej wersji środowiska .NET Framework, zostanie wyświetlony powiązany monit.Sprawdź, czy w dzienniku są wyświetlane następujące komunikaty wskazujące na nadmierną konsumpcję:
InstanaPCP.exe Private-Bytes is above warning-treshhold for XXX times now Killing InstanaPCP.exe for excessive memory-usage. Possible memory-leak in native Windows-Libraries.Te komunikaty są spowodowane przez jeden z następujących dwóch problemów:
Na komputerze z systemem Windows, na którym jest uruchomiony InstanaPCP , znajduje się stara wersja interfejsu IIS7 i występuje przeciek pamięci. Ten przeciek może zostać poprawiony przez zainstalowanie aktualizacji firmy Microsoft. Ten problem może wystąpić na komputerach z systemem Windows 2008. Przed zainstalowaniem tej aktualizacji Microsoft należy skontaktować się z działem wsparcia Instana, aby upewnić się, że problem z przeciekiem pamięci występuje na komputerze. Zespół wsparcia może następnie udostępnić odsyłacz do aktualizacji pakietu Microsoft.
Na serwerze działa wiele aplikacji .NET, które generują wiele danych śledzenia. W takim przypadku należy zwiększyć limity pamięci dla InstanaPCP , wprowadzając zmiany w następujących ustawieniach w pliku
configuration.yamlagenta:com.instana.plugin.clr: pcp_warn_limit: <MB-treshold before warning> pcp_stop_limit: <MB-treshold to stop / restart the process>
InstanaPCP nie nawiązano połączenia
Typ problemu monitorowania: clr_instana_pcp_not_connected
Agent hosta nie może połączyć się z procesem InstanaPCP , co uniemożliwia pobieranie i przetwarzanie danych śledzenia oraz metryk czasu wykonywania dla procesów .NET.
Jest to zwykle przejściowe niepowodzenie, które rozwiązuje się szybko po zakończeniu inicjowania InstanaPCP . Jeśli nie, skontaktuj się z działem wsparcia Instana.