Zbieranie, przechowywanie i magazynowanie danych w usłudze Application Insights

Po zainstalowaniu zestawu SDK usługi Application Insights w aplikacji program wysyła dane telemetryczne dotyczące aplikacji do chmury. Jako odpowiedzialny deweloper chcesz wiedzieć dokładnie, jakie dane są wysyłane, co się stanie z danymi i jak można zachować kontrolę nad danymi. W szczególności może być wysyłane poufne dane, gdzie są przechowywane i jak bezpieczne?

Najpierw krótka odpowiedź:

  • Standardowe moduły telemetryczne, które nie są gotowe do użycia, prawdopodobnie nie będą wysyłać poufnych danych do usługi. Dane telemetryczne dotyczą metryk obciążenia, wydajności i użycia, raportów wyjątków i innych danych diagnostycznych. Główne dane użytkownika widoczne w raportach diagnostycznych to adresy URL. Jednak twoja aplikacja nie powinna w żadnym przypadku umieszczać poufnych danych w postaci zwykłego tekstu w adresie URL.
  • Możesz napisać kod, który wysyła więcej niestandardowych danych telemetrycznych, aby ułatwić diagnostykę i monitorowanie użycia. (Ta rozszerzalność jest świetną funkcją usługi Application Insights). Błędem byłoby napisanie tego kodu w taki sposób, aby zawierał dane osobowe i inne poufne dane. Jeśli aplikacja współpracuje z takimi danymi, należy zastosować dokładny proces przeglądu do całego kodu, który piszesz.
  • Podczas opracowywania i testowania aplikacji można łatwo sprawdzić, co jest wysyłane przez zestaw SDK. Dane są wyświetlane w oknach danych wyjściowych debugowania środowiska IDE i przeglądarki.
  • Możesz wybrać lokalizację podczas tworzenia nowego zasobu usługi Application Insights. Aby uzyskać więcej informacji na temat dostępności usługi Application Insights na region, zobacz Dostępność produktów według regionów.
  • Przejrzyj zebrane dane, ponieważ mogą zawierać dane dozwolone w niektórych okolicznościach, ale nie inne. Dobrym przykładem takiej sytuacji jest nazwa urządzenia. Nazwa urządzenia z serwera nie ma wpływu na prywatność i jest przydatna. Nazwa urządzenia z telefonu lub laptopa może mieć wpływ na prywatność i być mniej przydatna. Zestaw SDK opracowany głównie dla serwerów docelowych domyślnie zbiera nazwę urządzenia. Ta funkcja może wymagać zastąpienia zarówno zdarzeń normalnych, jak i wyjątków.

W pozostałej części tego artykułu opisano te punkty bardziej w pełni. Artykuł jest samodzielny, więc możesz udostępnić go współpracownikom, którzy nie są częścią twojego natychmiastowego zespołu.

Co to jest usługa Application Insights?

Application Insights to usługa oferowana przez firmę Microsoft, która pomaga zwiększyć wydajność i użyteczność działającej aplikacji. Monitoruje aplikację przez cały czas jej działania, zarówno podczas testowania, jak i po opublikowaniu lub wdrożeniu. Usługa Application Insights tworzy wykresy i tabele, które pokazują metryki informacyjne. Na przykład możesz zobaczyć, o jakich porach dnia uzyskujesz większość użytkowników, jak szybko reaguje aplikacja i jak dobrze jest obsługiwana przez wszystkie usługi zewnętrzne, od których zależy. Jeśli występują błędy lub problemy z wydajnością, możesz przeszukać dane telemetryczne, aby zdiagnozować przyczynę. Usługa wysyła wiadomości e-mail w przypadku wprowadzenia zmian w dostępności i wydajności aplikacji.

Aby uzyskać tę funkcję, należy zainstalować zestaw SDK usługi Application Insights w aplikacji, który staje się częścią kodu. Gdy aplikacja jest uruchomiona, zestaw SDK monitoruje jej operację i wysyła dane telemetryczne do obszaru roboczego usługi Log Analytics usługi Application Insights, który jest usługą w chmurze hostowaną przez platformę Microsoft Azure. Usługa Application Insights działa również w przypadku wszystkich aplikacji, a nie tylko aplikacji hostowanych na platformie Azure.

Usługa Application Insights przechowuje i analizuje dane telemetryczne. Aby wyświetlić analizę lub przeszukać przechowywane dane telemetryczne, zaloguj się do konta platformy Azure i otwórz zasób usługi Application Insights dla aplikacji. Możesz również udostępnić dostęp do danych innym członkom zespołu lub określonym subskrybentom platformy Azure.

Dane można wyeksportować z usługi Application Insights, na przykład do bazy danych lub do narzędzi zewnętrznych. Każde narzędzie udostępnia specjalny klucz uzyskany z usługi. Klucz można odwołać w razie potrzeby.

Zestawy SDK usługi Application Insights są dostępne dla różnych typów aplikacji:

  • Usługi sieci Web hostowane na własnych serwerach Java EE lub ASP.NET lub na platformie Azure
  • Klienci sieci Web, czyli kod uruchomiony na stronie internetowej
  • Aplikacje klasyczne i usługi
  • Aplikacje urządzeń, takie jak Windows Phone, iOS i Android

Wszystkie wysyłają dane telemetryczne do tej samej usługi.

Uwaga

31 marca 2025 r. zostanie zakończone świadczenie pomocy technicznej dla pozyskiwania klucza instrumentacji. Pozyskiwanie klucza instrumentacji będzie nadal działać, ale nie będziemy już zapewniać aktualizacji ani obsługi funkcji. Przejście do parametrów połączenia w celu skorzystania z nowych możliwości.

Jakie dane są zbierane?

Istnieją trzy źródła danych:

  • Zestaw SDK, który można zintegrować z aplikacją w środowisku programistycznym lub w czasie wykonywania. Istnieją różne zestawy SDK dla różnych typów aplikacji. Dostępny jest również zestaw SDK dla stron internetowych, który ładuje się do przeglądarki użytkownika wraz ze stroną.

    • Każdy zestaw SDK zawiera wiele modułów, które używają różnych technik do zbierania różnych typów danych telemetrycznych.
    • Jeśli zainstalujesz zestaw SDK w programowania, możesz użyć jego interfejsu API do wysyłania własnych danych telemetrycznych oprócz modułów standardowych. Ta niestandardowa telemetria może zawierać dowolne dane, które chcesz wysłać.
  • Na niektórych serwerach internetowych istnieją również agenci, którzy działają obok aplikacji i wysyłają dane telemetryczne dotyczące procesora CPU, pamięci i zajętości sieci. Na przykład maszyny wirtualne platformy Azure, hosty platformy Docker i serwery aplikacji Java mogą mieć takich agentów.

  • Omówienie dostępności to procesy uruchamiane przez firmę Microsoft, które wysyłają żądania do aplikacji internetowej w regularnych odstępach czasu. Wyniki są wysyłane do usługi Application Insights.

Jakiego rodzaju dane są zbierane?

Główne kategorie to:

  • Telemetria serwera sieci Web: żądania HTTP. Identyfikator URI, czas potrzebny na przetworzenie żądania, kodu odpowiedzi i adresu IP klienta. Session id.
  • Strony internetowe: liczba stron, użytkowników i sesji. Czasy ładowania stron. Wyjątki. Wywołania AJAX.
  • Liczniki wydajności: pamięć, procesor CPU, we/wy i zajętość sieci.
  • Kontekst klienta i serwera: system operacyjny, ustawienia regionalne, typ urządzenia, przeglądarka i rozdzielczość ekranu.
  • Wyjątki i awarie: zrzuty stosu, build idtyp procesora CPU i .
  • Zależności: wywołania usług zewnętrznych, takich jak REST, SQL i AJAX. Identyfikator URI lub parametry połączenia, czas trwania, powodzenie i polecenie.
  • Testy dostępności: czas trwania testu i kroków oraz odpowiedzi.
  • Dzienniki śledzenia i niestandardowe dane telemetryczne: wszystko, co kodujesz w dziennikach lub telemetrii.

Aby uzyskać więcej informacji, zobacz sekcję Dane wysyłane przez usługę Application Insights.

Jak mogę sprawdzić, co jest zbierane?

Jeśli tworzysz aplikację przy użyciu programu Visual Studio, uruchom aplikację w trybie debugowania (F5). Dane telemetryczne są wyświetlane w oknie Dane wyjściowe . Stamtąd możesz skopiować go i sformatować jako kod JSON w celu łatwego przeprowadzenia inspekcji.

Zrzut ekranu przedstawiający uruchamianie aplikacji w trybie debugowania w programie Visual Studio.

W oknie Diagnostyka jest również bardziej czytelny widok.

W przypadku stron internetowych otwórz okno debugowania przeglądarki. Wybierz pozycję F12 i otwórz kartę Sieć .

Zrzut ekranu przedstawiający otwartą kartę Sieć.

Czy mogę napisać kod, aby filtrować dane telemetryczne przed ich wysłaniem?

Należy napisać wtyczkę procesora telemetrii.

Jak długo są przechowywane dane?

Nieprzetworzone punkty danych (czyli elementy, które można wykonywać w analizie i inspekcji w wyszukiwaniu) są przechowywane przez maksymalnie 730 dni. Możesz wybrać czas przechowywania 30, 60, 90, 120, 180, 270, 365, 550 lub 730 dni. Jeśli musisz przechowywać dane dłużej niż 730 dni, możesz użyć ustawień diagnostycznych.

Za dane przechowywane dłużej niż 90 dni są naliczane dodatkowe opłaty. Aby uzyskać więcej informacji na temat cen usługi Application Insights, zobacz stronę cennika usługi Azure Monitor.

Zagregowane dane (czyli liczby, średnie i inne dane statystyczne widoczne w Eksploratorze metryk) są przechowywane z ziarnem wynoszącym 1 minutę przez 90 dni.

Migawki debugowania są przechowywane przez 15 dni. Te zasady przechowywania są ustawiane dla poszczególnych aplikacji. Jeśli chcesz zwiększyć tę wartość, możesz poprosić o zwiększenie, otwierając zgłoszenie do pomocy technicznej w Azure Portal.

Kto może uzyskać dostęp do danych?

Dane są widoczne dla Ciebie i, jeśli masz konto organizacji, członkowie zespołu.

Może zostać wyeksportowany przez Ciebie i członków zespołu i można go skopiować do innych lokalizacji i przekazać do innych osób.

Co firma Microsoft robi z informacjami wysyłanymi przez moją aplikację do usługi Application Insights?

Firma Microsoft używa tych danych tylko do świadczenia usługi.

Gdzie są przechowywane dane?

Możesz wybrać lokalizację podczas tworzenia nowego zasobu usługi Application Insights. Aby uzyskać więcej informacji na temat dostępności usługi Application Insights, zobacz Dostępność produktów według regionów.

Jak bezpieczne są moje dane?

Application Insights to usługa platformy Azure. Zasady zabezpieczeń zostały opisane w oficjalny dokument Azure Security, Privacy, and Compliance (Zabezpieczenia, Prywatność i Zgodność).

Dane są przechowywane na serwerach platformy Microsoft Azure. W przypadku kont w Azure Portal ograniczenia kont są opisane w dokumencie Zabezpieczenia, prywatność i zgodność platformy Azure.

Dostęp do danych przez personel firmy Microsoft jest ograniczony. Uzyskujemy dostęp do Twoich danych tylko przy użyciu Twoich uprawnień i jeśli jest to konieczne do obsługi korzystania z usługi Application Insights.

Dane zagregowane we wszystkich aplikacjach naszych klientów, takich jak współczynniki danych i średni rozmiar śladów, są używane do ulepszania usługi Application Insights.

Czy dane telemetryczne innej osoby mogą kolidować z danymi usługi Application Insights?

Ktoś może wysłać więcej danych telemetrycznych na Twoje konto przy użyciu klucza instrumentacji. Ten klucz można znaleźć w kodzie stron internetowych. W przypadku wystarczającej ilości dodatkowych danych metryki nie będą prawidłowo reprezentować wydajności i użycia aplikacji.

Jeśli udostępniasz kod innym projektom, pamiętaj o usunięciu klucza instrumentacji.

Czy dane są szyfrowane?

Wszystkie dane są szyfrowane w spoczynku i przesyłane między centrami danych.

Czy dane są szyfrowane podczas przesyłania z aplikacji do serwerów usługi Application Insights?

Tak. Używamy protokołu HTTPS do wysyłania danych do portalu z niemal wszystkich zestawów SDK, w tym serwerów internetowych, urządzeń i stron internetowych HTTPS.

Czy zestaw SDK tworzy tymczasowy magazyn lokalny?

Tak. Niektóre kanały telemetrii będą utrwalać dane lokalnie, jeśli nie można uzyskać dostępu do punktu końcowego. W poniższych akapitach opisano, których struktur i kanałów telemetrycznych dotyczy problem:

  • Kanały telemetryczne korzystające z magazynu lokalnego tworzą pliki tymczasowe w katalogach TEMP lub APPDATA, które są ograniczone do określonego konta z uruchomioną aplikacją. Taka sytuacja może wystąpić, gdy punkt końcowy był tymczasowo niedostępny lub jeśli został osiągnięty limit ograniczania przepustowości. Po rozwiązaniu tego problemu kanał telemetrii wznowi wysyłanie wszystkich nowych i utrwalone dane.
  • Te utrwalone dane nie są szyfrowane lokalnie. Jeśli ten problem dotyczy, przejrzyj dane i ogranicz zbieranie danych prywatnych. Aby uzyskać więcej informacji, zobacz Eksportowanie i usuwanie danych prywatnych.
  • Jeśli klient musi skonfigurować ten katalog z określonymi wymaganiami dotyczącymi zabezpieczeń, można go skonfigurować na strukturę. Upewnij się, że proces uruchamiania aplikacji ma dostęp do zapisu w tym katalogu. Upewnij się również, że ten katalog jest chroniony, aby uniknąć odczytywania danych telemetrycznych przez niezamierzonych użytkowników.

Java

Folder C:\Users\username\AppData\Local\Temp jest używany do utrwalania danych. Ta lokalizacja nie jest konfigurowalna z katalogu konfiguracji, a uprawnienia dostępu do tego folderu są ograniczone do określonego użytkownika z wymaganymi poświadczeniami. Aby uzyskać więcej informacji, zobacz implementacja.

.NET

Domyślnie ServerTelemetryChannel używa lokalnego folderu %localAppData%\Microsoft\ApplicationInsights danych aplikacji bieżącego użytkownika lub folderu %TMP%tymczasowego . Aby uzyskać więcej informacji, zobacz implementacja.

Za pośrednictwem pliku konfiguracji:

<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel,   Microsoft.AI.ServerTelemetryChannel">
    <StorageFolder>D:\NewTestFolder</StorageFolder>
</TelemetryChannel>

Za pomocą kodu:

  • Usuń ServerTelemetryChannel z pliku konfiguracji.

  • Dodaj ten fragment kodu do konfiguracji:

    ServerTelemetryChannel channel = new ServerTelemetryChannel();
    channel.StorageFolder = @"D:\NewTestFolder";
    channel.Initialize(TelemetryConfiguration.Active);
    TelemetryConfiguration.Active.TelemetryChannel = channel;
    

NetCore

Domyślnie ServerTelemetryChannel używa lokalnego folderu %localAppData%\Microsoft\ApplicationInsights danych aplikacji bieżącego użytkownika lub folderu %TMP%tymczasowego . Aby uzyskać więcej informacji, zobacz implementacja.

W środowisku systemu Linux magazyn lokalny zostanie wyłączony, chyba że zostanie określony folder magazynu.

Uwaga

W wersji 2.15.0-beta3 i nowszych magazyn lokalny jest teraz automatycznie tworzony dla systemów Linux, Mac i Windows. W przypadku systemów innych niż Windows zestaw SDK automatycznie utworzy lokalny folder magazynu na podstawie następującej logiki:

  • ${TMPDIR}: Jeśli ${TMPDIR} zmienna środowiskowa jest ustawiona, ta lokalizacja jest używana.
  • /var/tmp: Jeśli poprzednia lokalizacja nie istnieje, spróbujemy użyć polecenia /var/tmp.
  • /tmp: Jeśli obie poprzednie lokalizacje nie istnieją, spróbujemy użyć polecenia tmp.
  • Jeśli żadna z tych lokalizacji nie istnieje, magazyn lokalny nie zostanie utworzony, a konfiguracja ręczna będzie nadal wymagana.

Aby uzyskać szczegółowe informacje o implementacji, zobacz ServerTelemetryChannel przechowuje dane telemetryczne w folderze domyślnym podczas przejściowych błędów w środowiskach innych niż Windows.

Poniższy fragment kodu pokazuje, jak ustawić ServerTelemetryChannel.StorageFolder metodę ConfigureServices() w Startup.cs klasie:

services.AddSingleton(typeof(ITelemetryChannel), new ServerTelemetryChannel () {StorageFolder = "/tmp/myfolder"});

Aby uzyskać więcej informacji, zobacz Konfiguracja niestandardowa platformy AspNetCore.

Node.js

Domyślnie %TEMP%/appInsights-node{INSTRUMENTATION KEY} jest używany do utrwalania danych. Uprawnienia dostępu do tego folderu są ograniczone do bieżącego użytkownika i administratorów. Aby uzyskać więcej informacji, zobacz implementację.

Prefiks appInsights-node folderu można zastąpić, zmieniając wartość środowiska uruchomieniowego zmiennej statycznej Sender.TEMPDIR_PREFIX znalezionej w pliku Sender.ts.

JavaScript (przeglądarka)

Magazyn sesji HTML5 służy do utrwalania danych. Używane są dwa oddzielne bufory: AI_buffer i AI_sent_buffer. Dane telemetryczne, które są wsadowe i oczekujące na wysłanie, są przechowywane w programie AI_buffer. Dane telemetryczne, które właśnie zostały wysłane, są umieszczane do AI_sent_buffer momentu, gdy serwer pozyskiwania odpowie na to, że został pomyślnie odebrany.

Po pomyślnym odebraniu telemetrii zostanie ona usunięta ze wszystkich buforów. W przypadku przejściowych awarii (na przykład użytkownik traci łączność sieciową), dane telemetryczne pozostają do AI_buffer momentu pomyślnego odebrania lub serwer pozyskiwania odpowiada, że dane telemetryczne są nieprawidłowe (na przykład nieprawidłowy schemat lub zbyt stary).

Bufory telemetrii można wyłączyć, ustawiając wartość enableSessionStorageBufferfalse. Gdy magazyn sesji jest wyłączony, macierz lokalna jest zamiast tego używana jako magazyn trwały. Ponieważ zestaw SDK języka JavaScript działa na urządzeniu klienckim, użytkownik ma dostęp do tej lokalizacji przechowywania za pośrednictwem narzędzi deweloperskich przeglądarki.

Zestaw OpenCensus Python

Domyślnie zestaw OPENCensus Python SDK używa bieżącego folderu %username%/.opencensus/.azure/użytkownika . Uprawnienia dostępu do tego folderu są ograniczone do bieżącego użytkownika i administratorów. Aby uzyskać więcej informacji, zobacz implementację. Folder z utrwałymi danymi zostanie nazwany po pliku języka Python, który wygenerował dane telemetryczne.

Lokalizację pliku magazynu można zmienić, przekazując storage_path parametr w konstruktorze używanego eksportera.

AzureLogHandler(
  connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000',
  storage_path='<your-path-here>',
)

Jak mogę wysyłać dane do usługi Application Insights przy użyciu protokołu TLS 1.2?

Aby zapewnić bezpieczeństwo danych przesyłanych do punktów końcowych usługi Application Insights, zdecydowanie zachęcamy klientów do skonfigurowania aplikacji do używania co najmniej protokołu Transport Layer Security (TLS) 1.2. Starsze wersje protokołu TLS/Secure Sockets Layer (SSL) zostały uznane za podatne na zagrożenia. Mimo że nadal działają, aby umożliwić zgodność z poprzednimi wersjami, nie są zalecane. Branża szybko porzuca obsługę tych starszych protokołów.

Rada Standardów Bezpieczeństwa PCI wyznaczyła termin 30 czerwca 2018 r., aby wyłączyć starsze wersje protokołu TLS/SSL i uaktualnić je do bezpieczniejszych protokołów. Gdy platforma Azure spadnie w starszej wersji obsługi, jeśli aplikacja lub klienci nie będą mogli komunikować się za pośrednictwem co najmniej protokołu TLS 1.2, nie będzie można wysyłać danych do usługi Application Insights. Podejście, które należy wykonać w celu przetestowania i zweryfikowania obsługi protokołu TLS aplikacji, będzie się różnić w zależności od systemu operacyjnego lub platformy oraz języka lub platformy używanej przez aplikację.

Nie zalecamy jawnego ustawiania aplikacji na używanie protokołu TLS 1.2, chyba że jest to konieczne. To ustawienie może przerwać funkcje zabezpieczeń na poziomie platformy, które umożliwiają automatyczne wykrywanie i korzystanie z nowszych bezpieczniejszych protokołów w miarę ich dostępności, takich jak TLS 1.3. Zalecamy przeprowadzenie dokładnej inspekcji kodu aplikacji w celu sprawdzenia pod kątem trwałego kodowania określonych wersji protokołu TLS/SSL.

Wskazówki dotyczące platformy/języka

Platforma/język Pomoc techniczna Więcej informacji
Azure App Services Obsługiwana konfiguracja może być wymagana. Wsparcie zostało ogłoszone w kwietniu 2018 r. Przeczytaj anons, aby uzyskać szczegółowe informacje o konfiguracji.
Aplikacje funkcji platformy Azure Obsługiwana konfiguracja może być wymagana. Wsparcie zostało ogłoszone w kwietniu 2018 r. Przeczytaj anons, aby uzyskać szczegółowe informacje o konfiguracji.
.NET Obsługiwana, długoterminowa obsługa (LTS). Aby uzyskać szczegółowe informacje o konfiguracji, zapoznaj się z tymi instrukcjami.
Agent usługi Application Insights Obsługiwana konfiguracja jest wymagana. Agent usługi Application Insights korzysta z konfiguracji + systemu operacyjnego.NET do obsługi protokołu TLS 1.2.
Node.js W wersji 10.5.0 może być wymagana konfiguracja. Użyj oficjalnej dokumentacji protokołu TLS/SSL Node.js dla dowolnej konfiguracji specyficznej dla aplikacji.
Java Obsługiwana obsługa zestawu JDK dla protokołu TLS 1.2 została dodana w zestawie JDK 6 update 121 i JDK 7. Zestaw JDK 8 domyślnie używa protokołu TLS 1.2.
Linux Dystrybucje systemu Linux mają tendencję do polegania na protokole OpenSSL na potrzeby obsługi protokołu TLS 1.2. Sprawdź dziennik zmian OpenSSL , aby potwierdzić, że obsługiwana jest wersja protokołu OpenSSL.
Windows 8.0 – 10 Obsługiwane i włączone domyślnie. Aby potwierdzić, że nadal używasz ustawień domyślnych.
Windows Server 2012 - 2016 Obsługiwane i włączone domyślnie. Aby potwierdzić, że nadal używasz ustawień domyślnych.
Windows 7 z dodatkiem SP1 i Windows Server 2008 R2 z dodatkiem SP1 Obsługiwane, ale nie są domyślnie włączone. Aby uzyskać szczegółowe informacje na temat sposobu włączania, zobacz stronę ustawień rejestru protokołu Transport Layer Security (TLS ).
Windows Server 2008 SP2 Obsługa protokołu TLS 1.2 wymaga aktualizacji. Zobacz Aktualizacja, aby dodać obsługę protokołu TLS 1.2 w systemie Windows Server 2008 SP2.
Windows Vista Nieobsługiwane. Nie dotyczy

Sprawdź, jaka wersja biblioteki OpenSSL jest uruchomiona w dystrybucji systemu Linux

Aby sprawdzić, jaka wersja programu OpenSSL została zainstalowana, otwórz terminal i uruchom polecenie:

openssl version -a

Uruchamianie testowej transakcji tls 1.2 w systemie Linux

Aby uruchomić test wstępny, aby sprawdzić, czy system Linux może komunikować się za pośrednictwem protokołu TLS 1.2, otwórz terminal i uruchom polecenie:

openssl s_client -connect bing.com:443 -tls1_2

Dane osobowe przechowywane w usłudze Application Insights

Szczegółowe omówienie tego problemu można znaleźć w temacie Zarządzanie danymi osobowymi w usłudze Log Analytics i usłudze Application Insights.

Czy moi użytkownicy mogą wyłączyć usługę Application Insights?

Nie bezpośrednio. Nie udostępniamy przełącznika, który użytkownicy mogą obsługiwać, aby wyłączyć usługę Application Insights.

Taką funkcję można zaimplementować w aplikacji. Wszystkie zestawy SDK obejmują ustawienie interfejsu API, które wyłącza zbieranie danych telemetrycznych.

Dane wysyłane przez usługę Application Insights

Zestawy SDK różnią się między platformami, a istnieje kilka składników, które można zainstalować. Aby uzyskać więcej informacji, zobacz Omówienie usługi Application Insights. Każdy składnik wysyła różne dane.

Klasy danych wysyłanych w różnych scenariuszach

Akcja Zebrane klasy danych (zobacz następną tabelę)
Dodawanie zestawu SDK usługi Application Insights do projektu internetowego platformy .NET ServerContext
Wywnioskować
Liczniki wydajności
Żądania
Wyjątki
Sesja
users
Instalowanie agenta usługi Application Insights w usługach IIS Zależności
ServerContext
Wywnioskować
Liczniki wydajności
Dodawanie zestawu SDK usługi Application Insights do aplikacji internetowej Java ServerContext
Wywnioskować
Żądanie
Sesja
users
Dodawanie zestawu JAVAScript SDK do strony internetowej ClientContext
Wywnioskować
Strona
ClientPerf
AJAX
Definiowanie właściwości domyślnych Właściwości we wszystkich zdarzeniach standardowych i niestandardowych
Śledzenie wywołań Wartości liczbowe
Właściwości
Śledzenie połączeń* Nazwa zdarzenia
Właściwości
Wywołaj metodę TrackException Wyjątki
Zrzut stosu
Właściwości
Zestaw SDK nie może zbierać danych. Na przykład:
— Nie można uzyskać dostępu do liczników wydajności
- Wyjątek w inicjatorze telemetrii
Diagnostyka zestawu SDK

W przypadku zestawów SDK dla innych platform zobacz ich dokumenty.

Klasy zebranych danych

Zebrana klasa danych Zawiera (nie wyczerpującą listę)
Właściwości Dowolne dane — określone przez kod
DeviceContext Id, adres IP, ustawienia regionalne, model urządzenia, sieć, typ sieci, nazwa producenta OEM, rozdzielczość ekranu, wystąpienie roli, nazwa roli, typ urządzenia
ClientContext System operacyjny, ustawienia regionalne, język, sieć, rozpoznawanie okien
Sesja session id
ServerContext Nazwa komputera, ustawienia regionalne, system operacyjny, urządzenie, sesja użytkownika, kontekst użytkownika, operacja
Wywnioskować Geolokalizacja z adresu IP, sygnatury czasowej, systemu operacyjnego, przeglądarki
Metryki Nazwa i wartość metryki
Zdarzenia Nazwa i wartość zdarzenia
Odsłon Adres URL i nazwa strony lub nazwa ekranu
Perf klienta Adres URL/nazwa strony, czas ładowania przeglądarki
AJAX Wywołania HTTP ze strony internetowej do serwera
Żądania Adres URL, czas trwania, kod odpowiedzi
Zależności Typ (SQL, HTTP, ...), parametry połączenia lub identyfikator URI, synchronizacja/asynchronizacja, czas trwania, powodzenie, instrukcja SQL (z agentem usługi Application Insights)
Wyjątki Typ, komunikat, stosy wywołań, plik źródłowy, numer wiersza, thread id
Ulega awarii Process id, , parent process id; crash thread idpoprawka aplikacji, id, kompilacja; typ wyjątku, adres, przyczyna; zaciemnione symbole i rejestry, binarne adresy początkowe i końcowe, nazwa binarna i ścieżka, typ procesora
Ślad Poziom komunikatu i ważności
Liczniki wydajności Czas procesora, dostępna pamięć, szybkość żądania, szybkość wyjątków, liczba bajtów prywatnych procesów, szybkość we/wy, czas trwania żądania, długość kolejki żądań
Dostępność Kod odpowiedzi testu sieci Web, czas trwania każdego kroku testu, nazwa testu, sygnatura czasowa, powodzenie, czas odpowiedzi, lokalizacja testu
Diagnostyka zestawu SDK Komunikat śledzenia lub wyjątek

Niektóre dane można wyłączyć, edytując ApplicationInsights.config.

Uwaga

Adres IP klienta służy do wnioskowania lokalizacji geograficznej, ale domyślnie dane IP nie są już przechowywane, a wszystkie zera są zapisywane w skojarzonym polu. Aby dowiedzieć się więcej na temat obsługi danych osobowych, zobacz Zarządzanie danymi osobowymi w usłudze Log Analytics i usłudze Application Insights. Jeśli musisz przechowywać dane adresów IP, geolokalizacja i obsługa adresów IP przeprowadzi Cię przez opcje.

Czy mogę zmodyfikować lub zaktualizować dane po ich zebraniu?

Nie. Dane są tylko do odczytu i można je usunąć tylko za pośrednictwem funkcji przeczyszczania. Aby dowiedzieć się więcej, zobacz Wskazówki dotyczące danych osobowych przechowywanych w usłudze Log Analytics i usłudze Application Insights.

Często zadawane pytania

Ta sekcja zawiera odpowiedzi na często zadawane pytania.

Co się stanie z telemetrią usługi Application Insights, gdy serwer lub urządzenie utraci połączenie z platformą Azure?

Wszystkie nasze zestawy SDK, w tym zestaw SDK sieci Web, obejmują niezawodny transport lub niezawodny transport. Gdy serwer lub urządzenie utraci połączenie z platformą Azure, dane telemetryczne są przechowywane lokalnie w systemie plików (zestawy SDK serwera) lub w magazynie sesji HTML5 (Zestaw SDK sieci Web). Zestaw SDK okresowo ponawia próbę wysyłania tej telemetrii do momentu, gdy nasza usługa pozyskiwania uzna ją za "nieaktualną" (48 godzin dla dzienników, 30 minut dla metryk). Przestarzałe dane telemetryczne są porzucane. W niektórych przypadkach, takich jak gdy magazyn lokalny jest pełny, ponów próbę nie wystąpi.

Czy dane osobowe są wysyłane w telemetrii?

Jeśli kod wysyła takie dane, możesz wysłać dane osobowe. Może się to również zdarzyć, jeśli zmienne w śladach stosu zawierają dane osobowe. Twój zespół programistyczny powinien przeprowadzać oceny ryzyka w celu zapewnienia prawidłowego obsługi danych osobowych. Dowiedz się więcej o przechowywaniu danych i ochronie prywatności.

Wszystkie oktety adresu internetowego klienta są zawsze ustawione na wartość 0 po wyszukaniu atrybutów geolokalizacji.

Zestaw SDK języka JavaScript usługi Application Insights domyślnie nie zawiera żadnych danych osobowych w autouzupełnianie. Jednak niektóre dane osobowe używane w aplikacji mogą zostać odebrane przez zestaw SDK (na przykład pełne nazwy lub window.title identyfikatory kont w parametrach zapytania adresu URL XHR). W przypadku niestandardowego maskowania danych osobowych dodaj inicjator telemetrii.