Rozwiązywanie problemów z brakiem danych: usługa Application Insights dla platform .NET i .NET Core
Ten artykuł zawiera informacje dotyczące rozwiązywania problemów, które ułatwiają rozwiązywanie problemów z brakiem danych lub nie są wyświetlane podczas korzystania z usługi Application Insights dla platform .NET i .NET Core.
Uwaga
Ten artykuł został niedawno zaktualizowany w celu używania terminu Dzienniki usługi Azure Monitor zamiast usługi Log Analytics. Dane dziennika są nadal przechowywane w obszarze roboczym usługi Log Analytics i nadal są zbierane i analizowane przez tę samą usługę Log Analytics. Aktualizujemy terminologię, aby lepiej odzwierciedlała rolę dzienników w usłudze Azure Monitor. Aby uzyskać więcej informacji, zobacz Zmiany terminologii usługi Azure Monitor.
Brakuje niektórych danych telemetrycznych
Przykładowe scenariusze:
W usłudze Application Insights widzę tylko ułamek zdarzeń generowanych przez moją aplikację
- Jeśli stale widzisz ten sam ułamek, prawdopodobnie jest to spowodowane próbkowaniem adaptacyjnym. Aby potwierdzić tę przyczynę, wybierz pozycję Przegląd>Search i przyjrzyj się wystąpieniu żądania lub innego zdarzenia. Aby wyświetlić pełne szczegóły właściwości, wybierz wielokropek (...) w dolnej części sekcji Właściwości . Jeśli liczba żądań jest większa niż 1, próbkowanie jest w toku.
- Możliwe, że osiągasz limit szybkości danych dla planu cenowego. Te limity są stosowane na minutę.
Losowo dochodzi do utraty danych
- Sprawdź, czy w kanale telemetrii występuje utrata danych.
- Sprawdź, czy w kanale telemetrii repozytorium GitHub nie występują znane problemy.
Uwaga
Jeśli brakuje danych, możliwe, że dane są odrzucane przez zaplecze. Taka sytuacja może wystąpić z różnych powodów, w tym z następujących przyczyn:
- Brak wymaganych pól.
- Co najmniej jedno pole przekracza limity rozmiaru.
- Zestawy SDK kończą się niepowodzeniem w trybie dyskretnym, zamiast zgłaszać wyjątki.
Aby potwierdzić pomyślne przekazanie danych telemetrycznych, możesz użyć narzędzia takiego jak Fiddler lub dowolnego innego narzędzia, które będzie sprawdzać ruch HTTP. Zaplecze zwróci kod stanu HTTP "200 OK", aby wskazać pomyślne przekazanie. Możesz też użyć dzienników zestawu SDK , aby sprawdzić, czy zaplecze odrzuca dane.
Występuje utrata danych w aplikacji konsolowej lub w aplikacji internetowej, gdy aplikacja ma zostać zatrzymana
- Kanał zestawu SDK przechowuje dane telemetryczne w buforze i wysyła je w partiach. Jeśli aplikacja jest zamykana, może być konieczne jawne wywołanie funkcji Flush(). Zachowanie
Flush()
zależy od rzeczywistego używanego kanału . - Na aplikację konsolową platformy .NET Core/.NET Framework w aplikacjach konsolowych wymagane jest jawne wywołanie
Flush()
, po którym następuje uśpienie.
Liczba żądań zebranych przez zestaw SDK usługi Application Insights jest niezgodna z liczbą dzienników usług IIS dla mojej aplikacji
Internet Information Services (IIS) rejestruje liczbę wszystkich żądań, które docierają do usług IIS i mogą z natury różnić się od łącznej liczby żądań, które docierają do aplikacji. Ze względu na to zachowanie nie ma gwarancji, że liczba żądań zebranych przez zestawy SDK będzie zgodna z łączną liczbą dzienników usług IIS.
Brak danych z mojego serwera
Przykładowe scenariusze:
Moja aplikacja została zainstalowana na moim serwerze internetowym, a teraz nie widzę z niej żadnych danych telemetrycznych. To działało OK na mojej maszynie deweloperskiej
Przyczyną jest najprawdopodobniej problem z zaporą. Ustaw wyjątki zapory dla usługi Application Insights, aby wysyłać dane.
Na moim serwerze internetowym zainstalowano agenta usługi Application Insights usługi Azure Monitor w celu monitorowania istniejących aplikacji. Nie widzę żadnych wyników
Zobacz Rozwiązywanie problemów z monitorem stanu.
Sprawdzanie ustawień klienta protokołu TLS/SSL (ASP.NET)
Jeśli masz aplikację ASP.NET hostowaną w Azure App Service lub w usługach IIS na maszynie wirtualnej, połączenie aplikacji z usługą debugera migawek może zakończyć się niepowodzeniem z powodu braku protokołu zabezpieczeń protokołu SSL.
Punkt końcowy debugera migawek wymaga protokołu TLS w wersji 1.2. Zestaw protokołów zabezpieczeń SSL jest jednym z dziwactw włączonych przez wartość atrybutu <httpRuntime>
elementu targetFramework
w <system.web>
sekcji pliku web.config . Jeśli struktura docelowa ma wartość 4.5.2 lub niższą, protokół TLS 1.2 nie jest domyślnie uwzględniany.
Uwaga
Wartość <httpRuntime>
atrybutu elementu jest niezależna targetFramework
od platformy docelowej używanej podczas tworzenia aplikacji.
Aby sprawdzić to ustawienie, otwórz plikweb.config i znajdź sekcję <system.web>
. Upewnij się, że targetFramework
wartość for <httpRuntime>
jest ustawiona na wartość 4.6 lub nowszą.
<system.web>
...
<httpRuntime targetFramework="4.7.2" />
...
</system.web>
Uwaga
Modyfikowanie <httpRuntime>
wartości elementu targetFramework
zmienia dziwactwa środowiska uruchomieniowego stosowane do aplikacji i może powodować inne subtelne zmiany zachowania. Pamiętaj, aby dokładnie przetestować aplikację po wprowadzeniu tej zmiany. Aby uzyskać pełną listę zmian zgodności, zobacz Retargeting changes (Retargeting changes).
Jeśli platforma docelowa ma wartość 4.7 lub nowszą, system Windows określa dostępne protokoły. W Azure App Service dostępny jest protokół TLS 1.2. Jeśli jednak używasz własnej maszyny wirtualnej, może być konieczne włączenie protokołu TLS 1.2 w systemie operacyjnym.
FileNotFoundException: "Nie można załadować pliku lub zestawu Microsoft.AspNet TelemetryCorrelation"
Aby uzyskać więcej informacji na temat tego błędu, zobacz Problem z usługą GitHub 1610.
Podczas uaktualniania zestawów SDK usługi Application Insights starszych niż wersja 2.4 upewnij się, że do plikówweb.config i ApplicationInsights.config zastosowano następujące zmiany:
W web.confignależy mieć dwa moduły HTTP zamiast jednego. Kolejność jest ważna w niektórych scenariuszach:
<system.webServer> <modules> <add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" preCondition="integratedMode,managedHandler" /> <add name="ApplicationInsightsHttpModule" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" /> </modules> </system.webServer>
Oprócz
RequestTrackingTelemetryModule
ApplicationInsights.configmoduł powinien mieć następujący moduł telemetrii:<TelemetryModules> <Add Type="Microsoft.ApplicationInsights.Web.AspNetDiagnosticTelemetryModule, Microsoft.AI.Web"/> </TelemetryModules>
Nieprawidłowe uaktualnienie może prowadzić do nieoczekiwanych wyjątków lub nie są zbierane dane telemetryczne.
Brak opcji "Dodaj usługę Application Insights" w programie Visual Studio
Przykładowy scenariusz:
Po kliknięciu prawym przyciskiem myszy istniejącego projektu w Eksplorator rozwiązań nie widzę żadnych opcji usługi Application Insights
- Narzędzia nie obsługują wszystkich typów projektów platformy .NET. Obsługiwane są projekty Web i Windows Communication Foundation (WCF). W przypadku innych typów projektów, takich jak aplikacje klasyczne lub usługowe, nadal można ręcznie dodać zestaw SDK usługi Application Insights do projektu.
- Upewnij się, że masz Visual Studio 2013 aktualizacji Update 3 lub nowszej. Jest on wstępnie instalowany z narzędziami Developer Analytics, które udostępniają zestaw SDK usługi Application Insights.
- Wybierz pozycję Narzędzia>rozszerzenia i Aktualizacje. Następnie sprawdź, czy Developer Analytics Tools jest zainstalowany i włączony. Jeśli jest zainstalowana i włączona, wybierz pozycję Aktualizacje, aby sprawdzić, czy jest dostępna aktualizacja.
- Otwórz okno dialogowe Nowy projekt i wybierz pozycję ASP.NET aplikacji internetowej. Jeśli zostanie wyświetlona opcja Application Insights , narzędzia zostaną zainstalowane. Jeśli nie, odinstaluj i ponownie zainstaluj narzędzia Developer Analytics.
Dodawanie usługi Application Insights nie powiodło się
Przykładowy scenariusz:
Podczas próby dodania usługi Application Insights do istniejącego projektu jest wyświetlany komunikat o błędzie
Prawdopodobne przyczyny:
- Komunikacja z portalem usługi Application Insights nie powiodła się.
- Wystąpił problem z kontem platformy Azure.
- Masz dostęp do odczytu tylko do subskrypcji lub grupy, w której próbujesz utworzyć nowy zasób.
Naprawić:
- Sprawdź, czy podano poświadczenia logowania dla poprawnego konta platformy Azure.
- W przeglądarce sprawdź, czy masz dostęp do Azure Portal. Otwórz pozycję Ustawienia i sprawdź, czy istnieją jakiekolwiek ograniczenia.
- Dodaj usługę Application Insights do istniejącego projektu. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz pozycję Dodaj usługę Application Insights.
"Brak pakietów NuGet" na moim serwerze kompilacji
Przykładowy scenariusz:
Wszystko jest kompilowane ok, gdy debuguję na mojej maszynie deweloperskiej, ale otrzymuję błąd NuGet na serwerze kompilacji
Zobacz Przywracanie pakietów NuGet i automatyczne przywracanie pakietów.
Brak polecenia menu, aby otworzyć usługę Application Insights z programu Visual Studio
Przykładowy scenariusz:
Po kliknięciu prawym przyciskiem myszy projektu Eksplorator rozwiązań nie widzę żadnych poleceń usługi Application Insights lub nie widzę polecenia Otwórz usługę Application Insights
Prawdopodobne przyczyny:
- Zasób usługi Application Insights został utworzony ręcznie.
- Projekt jest typu, który nie obsługuje narzędzi usługi Application Insights.
- Narzędzia analizy deweloperów są wyłączone w twoim wystąpieniu programu Visual Studio.
- Twoja wersja programu Visual Studio jest starsza niż Visual Studio 2013 update 3.
Naprawić:
- Upewnij się, że wersja programu Visual Studio jest Visual Studio 2013 aktualizacji Update 3 lub nowszej.
- Wybierz pozycję Narzędzia>rozszerzenia i Aktualizacje. Upewnij się, że Developer Analytics Tools jest zainstalowana i włączona. Jeśli jest zainstalowana i włączona, wybierz pozycję Aktualizacje, aby sprawdzić, czy jest dostępna aktualizacja.
- Kliknij prawym przyciskiem myszy projekt w Eksplorator rozwiązań. Jeśli zostanie wyświetlone polecenie Application Insights>Configure Application Insights, użyj go do połączenia projektu z zasobem w usłudze Application Insights.
W przeciwnym razie typ projektu nie jest bezpośrednio obsługiwany przez narzędzia analizy deweloperów. Aby wyświetlić dane telemetryczne, zaloguj się do Azure Portal, wyszukaj i wybierz pozycję Application Insights, a następnie wybierz aplikację.
"Odmowa dostępu" podczas otwierania usługi Application Insights z programu Visual Studio
Przykładowy scenariusz:
Polecenie menu "Otwórz usługę Application Insights" powoduje przejście do Azure Portal, ale występuje błąd "odmowa dostępu"
Logowanie firmy Microsoft użyte ostatnio w domyślnej przeglądarce nie ma dostępu do zasobu utworzonego podczas dodawania usługi Application Insights do tej aplikacji. Istnieją dwie prawdopodobne przyczyny:
Przyczyna | Rozwiązanie |
---|---|
Masz więcej niż jedno konto Microsoft — być może służbowe i osobiste konto Microsoft. W takim przypadku logowanie użyte ostatnio w domyślnej przeglądarce było używane dla innego konta niż to, które ma dostęp do dodawania usługi Application Insights do projektu. | Wybierz swoją nazwę w prawym górnym rogu okna przeglądarki i wyloguj się. Następnie zaloguj się przy użyciu konta, które ma dostęp. Search i wybierz pozycję Application Insights, a następnie wybierz aplikację. |
Ktoś inny dodał usługę Application Insights do projektu i zapomniał udzielić Ci dostępu do grupy zasobów , w której została utworzona. | Jeśli korzystali z konta organizacyjnego, mogą dodać Cię do zespołu. Mogą też udzielić Ci indywidualnego dostępu do grupy zasobów. |
"Nie znaleziono zasobu" podczas otwierania usługi Application Insights z programu Visual Studio
Przykładowy scenariusz:
Polecenie menu "Otwórz usługę Application Insights" powoduje przejście do Azure Portal, ale występuje błąd "nie znaleziono zasobu"
Istnieją dwie prawdopodobne przyczyny:
- Zasób usługi Application Insights dla aplikacji został usunięty.
- Ktoś ustawił lub zmienił parametry połączenia w ApplicationInsights.config bez aktualizowania pliku projektu.
Parametry połączenia w pliku ApplicationInsights.config steruje miejscem wysyłania danych telemetrycznych. Wiersz w pliku projektu kontroluje, który zasób jest otwierany podczas korzystania z polecenia w programie Visual Studio.
Zastosuj jedną z następujących poprawek:
- W Eksplorator rozwiązań kliknij projekt prawym przyciskiem myszy i wybierz pozycję Application Insights>Configure Application Insights (Konfiguruj usługę Application Insights). W oknie dialogowym możesz wybrać opcję wysyłania danych telemetrycznych do istniejącego zasobu lub utworzyć nowy.
- Otwórz zasób bezpośrednio. Zaloguj się do Azure Portal, wyszukaj i wybierz pozycję Application Insights, a następnie wybierz aplikację.
Gdzie mogę znaleźć dane telemetryczne?
Przykładowy scenariusz:
Zalogowano się do Azure Portal i przeglądam pulpit nawigacyjny strony głównej platformy Azure. Gdzie więc mogę znaleźć dane usługi Application Insights?
- Search i wybierz pozycję Application Insights, a następnie wybierz aplikację. Jeśli nie masz tam żadnych projektów, musisz dodać lub skonfigurować usługę Application Insights w projekcie internetowym. Możesz przeglądać wykresy podsumowania, które wydają się widzieć więcej szczegółów.
- W programie Visual Studio podczas debugowania aplikacji wybierz przycisk Application Insights .
Brak danych serwera (lub brak danych w ogóle)
Przykładowy scenariusz:
Uruchomiono moją aplikację, a następnie otwarto usługę Application Insights na platformie Microsoft Azure, ale wszystkie wykresy pokazują ciąg "Learn how to collect", "Not configured" (Nie skonfigurowano) lub tylko widok strony i dane użytkownika, ale brak danych serwera
Uruchom aplikację w trybie debugowania w programie Visual Studio (F5). Użyj aplikacji, aby wygenerować dane telemetryczne. Sprawdź, czy w oknie danych wyjściowych programu Visual Studio są widoczne zdarzenia zarejestrowane.
W portalu usługi Application Insights wybierz pozycję Przegląd>Search. Dane zwykle pojawiają się tutaj jako pierwsze.
Wybierz pozycję Odśwież. Okienko jest okresowo odświeżane, ale można to zrobić również ręcznie. Interwał odświeżania jest dłuższy dla większych zakresów czasu.
Sprawdź, czy parametry połączenia są zgodne. W okienku głównym aplikacji w portalu usługi Application Insights na liście rozwijanej Essentials zapoznaj się z tematem Parametry połączenia. Następnie w projekcie w programie Visual Studio otwórz ApplicationInsights.config i znajdź
<ConnectionString>
element. Sprawdź, czy dwa ciągi są równe. Jeśli ciągi nie są zgodne, wykonaj jedną z następujących akcji:Środowiska Akcja Azure Portal Search i wybierz pozycję Application Insights, a następnie poszukaj zasobu aplikacji z odpowiednim ciągiem. Visual Studio W programie Visual Studio Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz pozycję Application InsightsConfigure (Konfigurujusługę Application Insights>). Zresetuj aplikację, aby wysyłać dane telemetryczne do odpowiedniego zasobu. Jeśli nie możesz znaleźć pasujących ciągów, upewnij się, że używasz tych samych poświadczeń logowania w programie Visual Studio, których używasz do logowania się do portalu.
W Azure Portal wyszukaj i wybierz pozycję Service Health. Jeśli mapa zawiera jakieś wskazówki dotyczące alertów, poczekaj na powrót do kondycji. Następnie zamknij i ponownie otwórz okienko aplikacji usługi Application Insights.
Sprawdź nasz blog o stanie.
Czy napisać kod dla zestawu SDK po stronie serwera, który może zmienić parametry połączenia w
TelemetryClient
wystąpieniach lub w programieTelemetryContext
? A może napisać konfigurację filtru lub próbkowania , która może zbyt nio odfiltrować?Jeśli edytowano ApplicationInsights.config, dokładnie sprawdź konfigurację elementów< TelemetryInitializers> i <TelemetryProcessors>. Nieprawidłowo nazwany typ lub parametr może spowodować, że zestaw SDK nie wyśle żadnych danych.
Brak danych w widokach stron, przeglądarkach i użyciu
Przykładowy scenariusz:
Widzę dane na wykresach czasu odpowiedzi serwera i żądań serwera, ale brak danych w czasie ładowania widoku strony lub w okienkach Przeglądarka lub Użycie
Dane pochodzą ze skryptów na stronach internetowych.
- Jeśli dodano usługę Application Insights do istniejącego projektu internetowego, musisz dodać skrypty ręcznie.
- Upewnij się, że program Internet Explorer nie wyświetla witryny w trybie zgodności.
- Użyj funkcji debugowania przeglądarki (F12 w niektórych przeglądarkach, a następnie wybierz pozycję Sieć), aby sprawdzić, czy dane są wysyłane do
dc.services.visualstudio.com
programu .
Brak danych zależności lub wyjątków
Zobacz dane telemetryczne zależności i dane telemetryczne wyjątków.
Brak danych dotyczących wydajności
Dane dotyczące wydajności, takie jak procesor CPU i szybkość we/wy, są dostępne dla następujących środowisk w obszarze Serwery ustawień>:
- Usługi internetowe Java
- Aplikacje klasyczne systemu Windows
- Aplikacje i usługi internetowe usług IIS (jeśli zainstalujesz agenta usługi Application Insights)
- Azure Cloud Services
Brak danych (serwera), ponieważ aplikacja została opublikowana na moim serwerze
- Sprawdź, czy skopiowano wszystkie biblioteki
Microsoft.ApplicationInsights
DLL na serwer wraz z programemMicrosoft.Diagnostics.Instrumentation.Extensions.Intercept.dll
. - W zaporze może być konieczne otwarcie niektórych portów TCP.
- Jeśli musisz użyć serwera proxy do wysłania z sieci firmowej, ustaw <element defaultProxy> w web.config.
Wpływ na wydajność po włączeniu usługi Application Insights
Włączenie zestawu SDK usługi Application Insights w aplikacji może czasami prowadzić do problemów z wydajnością, takich jak wysokie użycie procesora CPU, przecieki pamięci, przecieki wątków lub wyczerpanie portów TCP. Te problemy często pochodzą z nieszczelnych Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration
obiektów aplikacji. Każde przeciekłe wystąpienie tworzy dwa dodatkowe wątki, co prowadzi do ciągłego zwiększania liczby wątków procesu w czasie. Jeśli obserwujesz rosnącą liczbę wątków, niezwykle ważne jest sprawdzenie przecieków obiektów TelemetryConfiguration .
Typowe przyczyny przecieków TelemetryConfiguration
Istnieją dwie główne przyczyny przecieku TelemetryConfiguration
obiektów:
Jawne tworzenie w kodzie: jeśli tworzysz
TelemetryConfiguration
obiekty w kodzie, upewnij się, że nie są one przypadkowo tworzone na żądanie internetowe. Zamiast tego użyj udostępnionego wystąpienia globalnego. W przypadku aplikacji .NET Framework uzyskaj dostęp do wystąpienia globalnego za pomocąTelemetryConfiguration.Active
polecenia . W przypadku aplikacji platformy .NET Core użyj poleceniaTelemetryConfiguration.CreateDefault()
, aby uzyskać konfigurację domyślną.Nieprawidłowe użycie dostawcy usług: w aplikacjach platformy .NET Core unikaj wywoływania
services.BuildServiceProvider()
w programieConfigureServices
. Metoda BuildServiceProvider tworzy nowego dostawcę usług, który inicjuje i odczytuje konfigurację, co za każdym razem powoduje utworzenie nowegoTelemetryConfiguration
obiektu. Taki wzorzec może prowadzić do przecieków i jest zniechęcony, jak wspomniano w ostrzeżeniu programu Visual Studio przed tą praktyką kodowania.
Kiedyś widziałem dane, ale zostały zatrzymane
Czy osiągnięto miesięczny limit przydziału punktów danych? Otwórz pozycję Ustawienia>— limit przydziału i cennik , aby się tego dowiedzieć. Jeśli tak, możesz uaktualnić plan lub zapłacić za większą pojemność. Zobacz schemat cen.
Nie widzę wszystkich danych, które oczekuję
Jeśli aplikacja wysyła znaczne dane i używasz zestawu SDK usługi Application Insights dla ASP.NET wersji 2.0.0-beta3 lub nowszej, funkcja próbkowania adaptacyjnego może działać i wysyłać tylko procent danych telemetrycznych.
Możesz go wyłączyć, ale nie zalecamy tego. Próbkowanie jest zaprojektowane tak, aby powiązane dane telemetryczne były prawidłowo przesyłane do celów diagnostycznych.
Adres IP klienta to 0.0.0.0
5 lutego 2018 r. ogłosiliśmy, że usunęliśmy rejestrowanie adresu IP klienta. To zalecenie nie ma wpływu na geolokalizację.
Uwaga
Jeśli potrzebujesz pierwszych trzech oktetów adresu IP, możesz użyć inicjatora telemetrii , aby dodać atrybut niestandardowy. Ten problem nie ma wpływu na dane zebrane przed 5 lutego 2018 r.
Nieprawidłowe dane geograficzne w danych telemetrycznych użytkownika
Wymiary miasta i kraju/regionu pochodzą z adresów IP i nie zawsze są dokładne. Te adresy IP są najpierw przetwarzane dla lokalizacji, a następnie zmieniane na 0.0.0.0 do przechowywania.
Wyjątek "nie znaleziono metody" podczas uruchamiania na platformie Azure Cloud Services
Czy utworzono dla długoterminowej pomocy technicznej platformy .NET (LTS)? Wcześniejsze wersje nie są automatycznie obsługiwane w rolach usługi Azure Cloud Services. Zainstaluj usługę LTS dla każdej roli przed uruchomieniem aplikacji.
Rozwiązywanie problemów z dziennikami
Postępuj zgodnie z tymi instrukcjami, aby przechwycić dzienniki rozwiązywania problemów dla struktury.
.NET Framework
Uwaga
Począwszy od wersji 2.14, pakiet Microsoft.AspNet.ApplicationInsights.HostingStartup nie jest już konieczny. Dzienniki zestawu SDK są teraz zbierane za pomocą pakietu Microsoft.ApplicationInsights . Nie jest wymagany żaden inny pakiet.
Zmodyfikuj plik ApplicationInsights.config , aby zawierał następujący kod XML:
<TelemetryModules> <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.FileDiagnosticsTelemetryModule, Microsoft.ApplicationInsights"> <Severity>Verbose</Severity> <LogFileName>mylog.txt</LogFileName> <LogFilePath>C:\\SDKLOGS</LogFilePath> </Add> </TelemetryModules>
Aplikacja musi mieć uprawnienia do zapisu w skonfigurowanej lokalizacji.
Uruchom ponownie proces, aby zestaw SDK odebrał te nowe ustawienia.
Przywróć te zmiany po zakończeniu.
.NET Core
Zainstaluj pakiet NuGet zestawu SDK usługi Application Insights dla pakietu ASP.NET Core z narzędzia NuGet. Zainstalowana wersja musi być zgodna z bieżącą zainstalowaną wersją programu
Microsoft.ApplicationInsights
.Najnowsza wersja programu
Microsoft.ApplicationInsights.AspNetCore
to 2.14.0 i odnosi się doMicrosoft.ApplicationInsights
wersji 2.14.0. Z tego powodu wersja do zainstalowania powinna mieć wersjęMicrosoft.ApplicationInsights.AspNetCore
2.14.0.Zmodyfikuj
ConfigureServices
metodę w klasie Startup.cs :services.AddSingleton<ITelemetryModule, FileDiagnosticsTelemetryModule>(); services.ConfigureTelemetryModule<FileDiagnosticsTelemetryModule>( (module, options) => { module.LogFilePath = "C:\\SDKLOGS"; module.LogFileName = "mylog.txt"; module.Severity = "Verbose"; } );
Aplikacja musi mieć uprawnienia do zapisu w skonfigurowanej lokalizacji.
Uruchom ponownie proces, aby zestaw SDK odebrał te nowe ustawienia.
Przywróć te zmiany po zakończeniu.
Zbieranie dzienników za pomocą narzędzia PerfView
PerfView to bezpłatne narzędzie, które ułatwia izolowanie procesora CPU, pamięci i innych problemów.
Dziennik EventSource
zestawu SDK usługi Application Insights zawiera dzienniki samodzielnego rozwiązywania problemów, które mogą być przechwytywane przez program PerfView.
Aby zbierać dzienniki, pobierz narzędzie PerfView i uruchom następujące polecenie:
PerfView.exe collect -MaxCollectSec:300 -NoGui /onlyProviders=*Microsoft-ApplicationInsights-Core,*Microsoft-ApplicationInsights-Data,*Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Microsoft-ApplicationInsights-Extensibility-HostingStartup,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Microsoft-ApplicationInsights-Extensibility-Web,*Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Microsoft-ApplicationInsights-WindowsServer-Core,*Microsoft-ApplicationInsights-LoggerProvider,*Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Microsoft-ApplicationInsights-AspNetCore,*Redfield-Microsoft-ApplicationInsights-Core,*Redfield-Microsoft-ApplicationInsights-Data,*Redfield-Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Redfield-Microsoft-ApplicationInsights-Extensibility-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Redfield-Microsoft-ApplicationInsights-LoggerProvider,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Redfield-Microsoft-ApplicationInsights-AspNetCore
W razie potrzeby można zmodyfikować następujące parametry:
Parametr | Opis |
---|---|
MaxCollectSec |
Ustaw ten parametr, aby uniemożliwić programowi PerfView uruchamianie w nieskończoność i wpływać na wydajność serwera. |
OnlyProviders |
Ustaw ten parametr tak, aby zbierał tylko dzienniki z zestawu SDK. Tę listę można dostosować na podstawie konkretnych badań. |
NoGui |
Ustaw ten parametr, aby zbierać dzienniki bez graficznego interfejsu użytkownika. |
Więcej informacji można znaleźć w następujących artykułach:
- Rejestrowanie śladów wydajności za pomocą narzędzia PerfView
- Źródła zdarzeń usługi Application Insights
Zbieranie dzienników za pomocą narzędzia dotnet-trace
Alternatywnie możesz użyć międzyplatformowego narzędzia .NET Core dotnet-trace do zbierania dzienników, które mogą zapewnić dalszą pomoc w rozwiązywaniu problemów. To narzędzie może być przydatne w środowiskach opartych na systemie Linux.
Po zainstalowaniu dotnet-trace
programu uruchom następujące polecenie dotnet-trace collect w powłoki bash:
dotnet-trace collect --process-id <PID> --providers Microsoft-ApplicationInsights-Core,Microsoft-ApplicationInsights-Data,Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,Microsoft-ApplicationInsights-Extensibility-DependencyCollector,Microsoft-ApplicationInsights-Extensibility-HostingStartup,Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,Microsoft-ApplicationInsights-Extensibility-Web,Microsoft-ApplicationInsights-Extensibility-WindowsServer,Microsoft-ApplicationInsights-WindowsServer-Core,Microsoft-ApplicationInsights-LoggerProvider,Microsoft-ApplicationInsights-Extensibility-EventSourceListener,Microsoft-ApplicationInsights-AspNetCore,Redfield-Microsoft-ApplicationInsights-Core,Redfield-Microsoft-ApplicationInsights-Data,Redfield-Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,Redfield-Microsoft-ApplicationInsights-Extensibility-DependencyCollector,Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,Redfield-Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,Redfield-Microsoft-ApplicationInsights-Extensibility-Web,Redfield-Microsoft-ApplicationInsights-Extensibility-WindowsServer,Redfield-Microsoft-ApplicationInsights-LoggerProvider,Redfield-Microsoft-ApplicationInsights-Extensibility-EventSourceListener,Redfield-Microsoft-ApplicationInsights-AspNetCore
Usuwanie usługi Application Insights
Aby usunąć usługę Application Insights w programie Visual Studio, wykonaj kroki opisane w temacie Usuwanie usługi Application Insights w programie Visual Studio.
Nadal nie działa
Zobacz stronę Microsoft Q&A dla usługi Application Insights.
Zastrzeżenie dotyczące innych firm
Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.
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.