Udostępnij za pośrednictwem


Rozwiązywanie problemów z brakami danych: usługa Application Insights dla platformy .NET i platformy .NET Core

Ten artykuł zawiera informacje dotyczące rozwiązywania problemów, które ułatwiają rozwiązywanie problemów, gdy brakuje danych lub nie są wyświetlane podczas korzystania z usługi Application Insights dla platformy .NET i platformy .NET Core.

Uwaga 16.

Ten artykuł został niedawno zaktualizowany, aby użyć terminu Dzienniki usługi Azure Monitor zamiast usługi Log Analytics. Dane dzienników 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ć 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 wynika to z próbkowania adaptacyjnego. Aby potwierdzić tę przyczynę, wybierz pozycję Wyszukaj przegląd>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 wykonywane.
  • Istnieje możliwość osiągnięcia limitu szybkości danych dla planu cenowego. Te limity są stosowane na minutę.

Losowo doświadczam utraty danych

Uwaga 16.

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 następujące przyczyny:

  • 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 przekazywanie danych telemetrycznych, możesz użyć narzędzia takiego jak Fiddler lub inne narzędzie, 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 się zatrzymać

  • 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 .
  • W aplikacjach konsoli .NET Core/.NET Framework jawne wywoływanie Flush() a następnie uśpienie jest wymagane w aplikacjach konsoli.

Liczba żądań zebranych przez zestaw SDK usługi Application Insights nie jest zgodna z liczbą dzienników usług IIS dla mojej aplikacji

Liczba dzienników usług Internet Information Services (IIS) wszystkich żądań, które docierają do usług IIS, i może z założenia 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 całkowitą liczbą dzienników usług IIS.

Brak danych z mojego serwera

Przykładowe scenariusze:

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 dewelopera

Przyczyną jest najprawdopodobniej problem z zaporą. Ustaw wyjątki zapory dla usługi Application Insights w celu wysyłania danych.

Na serwerze internetowym zainstalowano agenta usługi Azure Monitor Application Insights, aby monitorować istniejące aplikacje. 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 usłudze aplikacja systemu Azure lub w usługach IIS na maszynie wirtualnej, aplikacja może nie nawiązać połączenia z usługą Snapshot Debugger z powodu braku protokołu zabezpieczeń SSL.

Punkt końcowy debugera migawek wymaga protokołu TLS w wersji 1.2. Zestaw protokołów zabezpieczeń SSL jest jednym z dziwactwa włączanych przez <httpRuntime> wartość atrybutu elementu targetFramework w <system.web> sekcji pliku web.config . Jeśli platforma docelowa ma wartość 4.5.2 lub niższą, protokół TLS 1.2 nie jest domyślnie dołączany.

Uwaga 16.

<httpRuntime> Wartość atrybutu elementu jest niezależna targetFramework od platformy docelowej używanej podczas kompilowania aplikacji.

Aby sprawdzić ustawienie, otwórz plik web.config i znajdź sekcję <system.web> . Upewnij się, że dla <httpRuntime> parametru targetFramework jest ustawiona wartość 4.6 lub nowsza.

<system.web>
  ...
  <httpRuntime targetFramework="4.7.2" />
  ...
</system.web>

Uwaga 16.

Modyfikowanie <httpRuntime> wartości elementu targetFramework zmienia dziwaczne środowisko uruchomieniowe zastosowane do aplikacji i może spowodować inne subtelne zmiany zachowania. Pamiętaj, aby dokładnie przetestować aplikację po wprowadzeniu tej zmiany. Aby zapoznać się z pełną listą zmian zgodności, zobacz Retargeting changes (Zmiany w usłudze Retargeting).

Jeśli platforma docelowa ma wartość 4.7 lub nowszą, system Windows określa dostępne protokoły. W usłudze aplikacja systemu Azure 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 z zestawów SDK usługi Application Insights starszych niż wersja 2.4 upewnij się, że następujące zmiany zostały zastosowane do plików web.config i ApplicationInsights.config :

  1. W pliku web.config powinny istnieć 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>
    
  2. Oprócz pliku ApplicationInsights.configRequestTrackingTelemetryModule należy mieć następujący moduł telemetrii:

    <TelemetryModules>
      <Add Type="Microsoft.ApplicationInsights.Web.AspNetDiagnosticTelemetryModule, Microsoft.AI.Web"/>
    </TelemetryModules>
    

Niepowodzenie poprawnego uaktualnienia może prowadzić do niespodziewanych 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 internetowe i Windows Communication Foundation (WCF). W przypadku innych typów projektów, takich jak aplikacje klasyczne lub usługi, nadal można dodać zestaw SDK usługi Application Insights do projektu ręcznie.
  • Upewnij się, że masz program Visual Studio 2013 Update 3 lub nowszy. Jest ona wstępnie zainstalowana z narzędziami do analizy deweloperów, które udostępniają zestaw SDK usługi Application Insights.
  • Wybierz pozycję Rozszerzenia i aktualizacje narzędzi>. Następnie sprawdź, czy narzędzia Developer Analytics Tools są zainstalowane i włączone. 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 aplikacja internetowa. Jeśli zostanie wyświetlona opcja Application Insights , zostaną zainstalowane narzędzia. Jeśli nie, odinstaluj i ponownie zainstaluj narzędzia analizy deweloperów.

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:

Naprawa:

  • Sprawdź, czy podano poświadczenia logowania dla poprawnego konta platformy Azure.
  • W przeglądarce sprawdź, czy masz dostęp do witryny 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 kompiluje się ok podczas debugowania na maszynie dewelopera, ale otrzymuję błąd NuGet na serwerze kompilacji

Zobacz Przywracanie pakietów NuGet i automatyczne przywracanie pakietów.

Brak polecenia menu umożliwiającego otwarcie usługi Application Insights z poziomu programu Visual Studio

Przykładowy scenariusz:

Po kliknięciu prawym przyciskiem myszy Eksplorator rozwiązań projektu nie widzę żadnych poleceń usługi Application Insights lub nie widzę polecenia Open 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 do analizy deweloperów są wyłączone w twoim wystąpieniu programu Visual Studio.
  • Wersja programu Visual Studio jest starsza niż Visual Studio 2013 Update 3.

Naprawa:

  • Upewnij się, że wersja programu Visual Studio to Visual Studio 2013 Update 3 lub nowsza.
  • Wybierz pozycję Rozszerzenia i aktualizacje narzędzi>. Upewnij się, że narzędzia Developer Analytics Tools są zainstalowane i włączone. 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 widzisz polecenie Application Insights>Configure Application Insights( Konfigurowanie usługi 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 witryny Azure Portal, wyszukaj i wybierz pozycję Application Insights, a następnie wybierz aplikację.

„Odmowa dostępu” podczas otwierania usługi Application Insights z poziomu programu Visual Studio

Przykładowy scenariusz:

Polecenie menu "Otwórz usługę Application Insights" powoduje przejście do witryny Azure Portal, ale otrzymuję błąd "Odmowa dostępu"

Logowanie firmy Microsoft, które zostało ostatnio użyte 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. Jeśli tak jest, logowanie, które zostało ostatnio użyte w domyślnej przeglądarce, dotyczyło innego konta niż konto, 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 z dostępem. Wyszukaj i wybierz pozycję Application Insights , a następnie wybierz aplikację.
Inna osoba dodała usługę Application Insights do projektu i zapomniała udzielić Ci dostępu do grupy zasobów, w której została utworzona. Jeśli używali 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 poziomu programu Visual Studio

Przykładowy scenariusz:

Polecenie menu "Otwórz usługę Application Insights" powoduje przejście do witryny Azure Portal, ale otrzymuję 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 pliku ApplicationInsights.config bez aktualizowania pliku projektu.

Parametry połączenia w pliku ApplicationInsights.config kontroluje, gdzie jest wysyłana telemetria. 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 prawym przyciskiem myszy projekt i wybierz pozycję Application Insights Configure Application Insights (Skonfiguruj 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 witryny Azure Portal, wyszukaj i wybierz pozycję Application Insights, a następnie wybierz aplikację.

Gdzie mogę znaleźć dane telemetryczne?

Przykładowy scenariusz:

Zalogowałem się do witryny Azure Portal i przeglądam pulpit nawigacyjny strony głównej platformy Azure. Gdzie więc mogę znaleźć dane usługi Application Insights?

  • Wyszukaj i wybierz pozycję Application Insights, a następnie wybierz aplikację. Jeśli nie masz ż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 (ani brak danych)

Przykładowy scenariusz:

Uruchomiono moją aplikację, a następnie otwarto usługę Application Insights na platformie Microsoft Azure, ale wszystkie wykresy pokazują "Dowiedz się, jak zbierać", "Nieskonfigurowane" lub tylko widok strony i dane użytkownika, ale nie ma 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ą rejestrowane zdarzenia.

    Zrzut ekranu przedstawiający aplikację działającą w trybie debugowania w programie Visual Studio.

  • W portalu usługi Application Insights wybierz pozycję Wyszukiwanie omówienia>. Dane zwykle pojawiają się tutaj najpierw.

  • Wybierz Odśwież. Okienko odświeża się okresowo, 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 Podstawy przyjrzyj się parametrom połączenia. Następnie w projekcie w programie Visual Studio otwórz plik 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:

    Środowisko Akcja
    Witryna Azure Portal Wyszukaj i wybierz pozycję Application Insights , a następnie wyszukaj zasób aplikacji z odpowiednim ciągiem.
    Visual Studio W programie Visual Studio Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz pozycję Konfiguracja usługi 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ę w portalu.

  • W witrynie Azure Portal wyszukaj i wybierz pozycję Service Health. Jeśli mapa ma pewne wskazania alertu, poczekaj na powrót do kondycji. Następnie zamknij i otwórz ponownie okienko aplikacji usługi Application Insights.

  • Czy zapisano jakikolwiek kod zestawu SDK po stronie serwera, który może zmienić parametry połączenia w wystąpieniach lub w TelemetryClient TelemetryContextsystemie ? Czy też zapisano konfigurację filtru lub próbkowania, która może być zbyt duża?

  • Jeśli edytowano plik ApplicationInsights.config, dokładnie sprawdź konfigurację elementów <TelemetryInitializers> i <TelemetryProcessors.> Niepoprawnie nazwany typ lub parametr może spowodować, że zestaw SDK nie wysyła żadnych danych.

Brak danych w widokach stron, przeglądarkach i użyciu

Przykładowy scenariusz:

Widzę dane w czasie odpowiedzi serwera i wykresy żądań serwera, ale brak danych w czasie ładowania strony lub w okienkach Przeglądarka lub Użycie

Dane pochodzą ze skryptów na stronach internetowych.

  • W przypadku dodania usługi Application Insights do istniejącego projektu internetowego należy ręcznie dodać skrypty.
  • 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.comprogramu .

Brak danych zależności ani wyjątków

Zobacz telemetrię zależności i dane telemetryczne wyjątków.

Brak danych wydajności

Dane wydajności, takie jak procesor CPU i szybkość we/wy, są dostępne dla następujących środowisk w obszarze Serwery ustawień>:

Brak danych (serwer) od czasu opublikowania aplikacji na serwerze

  • Sprawdź, czy skopiowano wszystkie biblioteki Microsoft.ApplicationInsights DLL na serwer wraz z elementem Microsoft.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 wysyłania z sieci firmowej, ustaw element defaultProxy> w pliku 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 przecieków Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration obiektów aplikacji. Każde ujawnione 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, kluczowe jest sprawdzenie wycieków obiektów TelemetryConfiguration .

Typowe przyczyny przecieków telemetriiKonfiguracja

Istnieją dwie podstawowe przyczyny wycieku TelemetryConfiguration obiektów:

  • Jawne tworzenie w kodzie: jeśli tworzysz TelemetryConfiguration obiekty w kodzie, upewnij się, że nie zostały przypadkowo utworzone dla każdego żądania internetowego. Zamiast tego użyj udostępnionego wystąpienia globalnego. W przypadku aplikacji .NET Framework uzyskaj dostęp do wystąpienia globalnego za pomocą polecenia TelemetryConfiguration.Active. W przypadku aplikacji platformy .NET Core użyj polecenia TelemetryConfiguration.CreateDefault() , aby uzyskać konfigurację domyślną.

  • Nieprawidłowe użycie dostawcy usług: w aplikacjach .NET Core unikaj wywoływania services.BuildServiceProvider() w programie ConfigureServices. Metoda BuildServiceProvider tworzy nowego dostawcę usług, który inicjuje i odczytuje konfigurację, co powoduje utworzenie nowego TelemetryConfiguration obiektu za każdym razem. Taki wzorzec może prowadzić do przecieków i jest odradzany, jak wspomniano w ostrzeżeniu programu Visual Studio przed tą praktyką kodowania.

Widziałem dane, ale został zatrzymany

Czy przekroczono miesięczny limit przydziału punktów danych? Otwórz pozycję Limit przydziału ustawień>i cennik, aby dowiedzieć się. Jeśli tak, możesz uaktualnić plan lub zapłacić za większą pojemność. Zobacz schemat cen.

Nie widzę wszystkich oczekiwanych danych

Jeśli aplikacja wysyła znaczne dane i używasz zestawu SDK usługi Application Insights dla ASP.NET w wersji 2.0.0-beta3 lub nowszej, funkcja adaptacyjnego próbkowania może działać i wysyłać tylko procent telemetrii.

Można go wyłączyć, ale nie zalecamy tego. Próbkowanie zostało zaprojektowane tak, aby powiązane dane telemetryczne zostały prawidłowo przesł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 geolokalizacja.

Uwaga 16.

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 telemetrii 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, aby były przechowywane.

Wyjątek „nie można odnaleźć metody” podczas uruchamiania w usługach Azure Cloud Services

Czy utworzono obsługę długoterminową platformy .NET (LTS)? Wcześniejsze wersje nie są automatycznie obsługiwane w rolach usług Azure Cloud Services. Zainstaluj środowisko 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 ze strukturą.

.NET Framework

Uwaga 16.

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 . Żaden inny pakiet nie jest wymagany.

  1. Zmodyfikuj plik ApplicationInsights.config , aby uwzględnić 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.

  2. Uruchom ponownie proces, aby zestaw SDK pobierał te nowe ustawienia.

  3. Przywróć te zmiany po zakończeniu.

.NET Core

  1. Zainstaluj pakiet NuGet zestawu SDK usługi Application Insights dla pakietu ASP.NET Core z pakietu 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ę do Microsoft.ApplicationInsights wersji 2.14.0. Z tego powodu należy zainstalować wersję programu Microsoft.ApplicationInsights.AspNetCore 2.14.0.

  2. Zmodyfikuj metodę ConfigureServices 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.

  3. Uruchom ponownie proces, aby zestaw SDK pobierał te nowe ustawienia.

  4. Przywróć te zmiany po zakończeniu.

Zbieranie dzienników za pomocą narzędzia PerfView

PerfView to bezpłatne narzędzie, które pomaga wyizolować procesor CPU, pamięć i inne problemy.

Dziennik EventSource zestawu SDK usługi Application Insights zawiera dzienniki samodzielnego rozwiązywania problemów, które można przechwycić za pomocą narzędzia PerfView.

Aby zebrać 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

Te parametry można modyfikować zgodnie z potrzebami:

Parametr Opis
MaxCollectSec Ustaw ten parametr, aby uniemożliwić działanie narzędzia PerfView na czas nieokreślony 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.

Aby uzyskać więcej informacji, zobacz:

Zbieranie dzienników za pomocą polecenia 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-traceprogramu uruchom następujące polecenie dotnet-trace collect w powłoce 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 artykule Usuwanie usługi Application Insights w programie Visual Studio.

Nadal nie działa

Zobacz stronę pytań i pytań firmy Microsoft 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 na temat platformy Azure.