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

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łanieFlush(), 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:

  1. 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>
    
  2. Oprócz RequestTrackingTelemetryModuleApplicationInsights.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:

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.

    Zrzut ekranu przedstawiający aplikację uruchomioną w trybie debugowania w programie Visual Studio.

  • 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 programie TelemetryContext? 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.comprogramu .

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ń>:

Brak danych (serwera), ponieważ aplikacja została opublikowana na moim serwerze

  • Sprawdź, czy skopiowano wszystkie biblioteki Microsoft.ApplicationInsights DLL na serwer wraz z programem 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 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.Activepolecenia . 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 platformy .NET Core unikaj wywoływania services.BuildServiceProvider() w programie ConfigureServices. Metoda BuildServiceProvider tworzy nowego dostawcę usług, który inicjuje i odczytuje konfigurację, co za każdym razem powoduje utworzenie nowego TelemetryConfiguration 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.

  1. 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.

  2. Uruchom ponownie proces, aby zestaw SDK odebrał 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 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ę do Microsoft.ApplicationInsights wersji 2.14.0. Z tego powodu wersja do zainstalowania powinna mieć wersję Microsoft.ApplicationInsights.AspNetCore 2.14.0.

  2. 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.

  3. Uruchom ponownie proces, aby zestaw SDK odebrał 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 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:

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-traceprogramu 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.