Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ostrzeżenie
Ten artykuł dotyczy języka Java 2.x usługi Application Insights, który nie jest już zalecany.
Dokumentację dotyczącą najnowszej wersji można znaleźć w witrynie Application Insights Java 3.x.
Z tego artykułu dowiesz się, jak używać języka Java 2.x usługi Application Insights. W tym artykule pokazano, jak wykonać następujące działania:
- Rozpocznij pracę i dowiedz się, jak instrumentować żądania, śledzić zależności, zbierać liczniki wydajności, diagnozować problemy z wydajnością i wyjątki oraz pisać kod, aby śledzić działania użytkowników w aplikacji.
- Wysyłanie dzienników śledzenia do usługi Application Insights i eksplorowanie ich przy użyciu portalu usługi Application Insights.
- Monitoruj zależności, przechwycone wyjątki i czasy wykonywania metod w aplikacjach internetowych Java.
- Filtrowanie danych telemetrycznych w aplikacji internetowej Java.
- Zapoznaj się z metrykami wydajności systemu Linux w usłudze Application Insights przy użyciu polecenia
collectd. - Mierzenie metryk dla kodu aplikacji opartego na maszynie wirtualnej Java (JVM). Wyeksportuj dane do ulubionych systemów monitorowania przy użyciu monitorowania aplikacji Micrometer.
Uwaga / Notatka
31 marca 2025 r. zakończy się wsparcie dla mechanizmu pobierania klucza instrumentacji. Pobieranie klucza instrumentacji będzie nadal działać, ale nie będziemy już udostępniać aktualizacji ani zapewniać wsparcia dla tej funkcji. Przejście do parametrów połączenia w celu skorzystania z nowych możliwości.
Wprowadzenie do usługi Application Insights w projekcie internetowym Java
W tej sekcji użyjesz zestawu SDK usługi Application Insights do instrumentacji żądań, śledzenia zależności, zbierania liczników wydajności, diagnozowania problemów z wydajnością i wyjątków oraz pisania kodu w celu śledzenia działań użytkowników w aplikacji.
Application Insights to rozszerzalna usługa analizy dla deweloperów internetowych, która pomaga zrozumieć wydajność i użycie aplikacji na żywo. Usługa Application Insights obsługuje aplikacje Java działające w systemach Linux, Unix lub Windows.
Wymagania wstępne
Potrzebujesz:
- Konto Azure z aktywną subskrypcją. Możesz bezpłatnie utworzyć konto.
- Działająca aplikacja Java.
Pobierz klucz instrumentacji usługi Application Insights
Zaloguj się do witryny Azure Portal.
W witrynie Azure Portal utwórz zasób usługi Application Insights. Ustaw typ aplikacji na aplikację internetową Java.
Znajdź klucz instrumentacji nowego zasobu. Ten klucz należy wkleić wkrótce do projektu kodu.
Dodawanie zestawu SDK usługi Application Insights dla języka Java do projektu
Wybierz typ projektu.
Jeśli projekt jest już skonfigurowany do używania narzędzia Maven do kompilacji, wstaw następujący kod do pliku pom.xml. Następnie odśwież zależności projektu, aby pobrać pliki binarne.
<dependencies>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-web-auto</artifactId>
<!-- or applicationinsights-web for manual web filter registration -->
<!-- or applicationinsights-core for bare API -->
<version>2.6.4</version>
</dependency>
</dependencies>
Najczęściej zadawane pytania
Jaka jest relacja między składnikami
-web-auto,-webi-core?-
applicationinsights-web-autoUdostępnia metryki, które śledzą liczbę żądań serwletu HTTP i czasy odpowiedzi, automatycznie rejestrując filtr serwletu usługi Application Insights w czasie wykonywania. -
applicationinsights-webUdostępnia również metryki, które śledzą liczbę żądań serwletu HTTP i czasy odpowiedzi. Jednak wymagana jest ręczna rejestracja filtru serwletu usługi Application Insights w aplikacji. -
applicationinsights-coreUdostępnia na przykład goły interfejs API, jeśli aplikacja nie jest oparta na serwletach.
-
Jak zaktualizować zestaw SDK do najnowszej wersji?
- Od listopada 2020 r. w celu monitorowania aplikacji Java zalecamy używanie usługi Application Insights Java 3.x. Aby uzyskać więcej informacji na temat rozpoczynania pracy, zobacz Application Insights Java 3.x.
Dodawanie pliku ApplicationInsights.xml
Dodaj ApplicationInsights.xml do folderu resources w projekcie lub upewnij się, że został dodany do ścieżki klasy wdrożenia projektu. Skopiuj do niego następujący kod XML.
Zastąp klucz instrumentacji kluczem otrzymanym z Azure Portal.
<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings" schemaVersion="2014-05-30">
<!-- The key from the portal: -->
<InstrumentationKey>** Your instrumentation key **</InstrumentationKey>
<!-- HTTP request component (not required for bare API) -->
<TelemetryModules>
<Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebRequestTrackingTelemetryModule"/>
<Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebSessionTrackingTelemetryModule"/>
<Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebUserTrackingTelemetryModule"/>
</TelemetryModules>
<!-- Events correlation (not required for bare API) -->
<!-- These initializers add context data to each event -->
<TelemetryInitializers>
<Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationIdTelemetryInitializer"/>
<Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationNameTelemetryInitializer"/>
<Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebSessionTelemetryInitializer"/>
<Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserTelemetryInitializer"/>
<Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserAgentTelemetryInitializer"/>
</TelemetryInitializers>
</ApplicationInsights>
Opcjonalnie plik konfiguracji może znajdować się w dowolnej lokalizacji dostępnej dla aplikacji. Właściwość -Dapplicationinsights.configurationDirectory systemowa określa katalog zawierający ApplicationInsights.xml. Na przykład plik konfiguracji znajdujący się w E:\myconfigs\appinsights\ApplicationInsights.xml zostanie skonfigurowany za pomocą właściwości -Dapplicationinsights.configurationDirectory="E:\myconfigs\appinsights".
- Klucz instrumentacji jest wysyłany wraz z każdym elementem telemetrii i nakazuje usłudze Application Insights wyświetlanie go w zasobie.
- Składnik żądania HTTP jest opcjonalny. Automatycznie wysyła dane telemetryczne dotyczące żądań i czasów odpowiedzi do portalu.
- Korelacja zdarzeń jest dodatkiem do składnika żądania HTTP. Przypisuje identyfikator do każdego żądania odebranego przez serwer. Następnie dodaje ten identyfikator jako właściwość do każdego elementu telemetrii jako właściwość
Operation.Id. Umożliwia skorelowanie danych telemetrycznych skojarzonych z każdym żądaniem przez ustawienie filtru w wyszukiwaniu diagnostycznym.
Alternatywne sposoby ustawiania klucza instrumentacji
Zestaw SDK usługi Application Insights szuka klucza w następującej kolejności:
- Właściwość systemowa: -DAPPINSIGHTS_INSTRUMENTATIONKEY=your_ikey
- Zmienna środowiskowa: APPINSIGHTS_INSTRUMENTATIONKEY
- Plik konfiguracji: ApplicationInsights.xml
Można go również ustawić w kodzie:
String instrumentationKey = "00000000-0000-0000-0000-000000000000";
if (instrumentationKey != null)
{
TelemetryConfiguration.getActive().setInstrumentationKey(instrumentationKey);
}
Dodawanie agenta
Zainstaluj agenta Java, aby przechwycić wychodzące wywołania HTTP, zapytania JDBC, rejestrowanie aplikacji i lepsze nazewnictwo operacji.
Uruchamianie aplikacji
Uruchom go w trybie debugowania na komputerze deweloperskim lub opublikuj go na serwerze.
Wyświetlanie danych telemetrycznych w usłudze Application Insights
Wróć do zasobu usługi Application Insights w witrynie Azure Portal.
Dane żądań HTTP są wyświetlane w okienku przeglądu. Jeśli tam nie ma, zaczekaj kilka sekund, a następnie wybierz pozycję Odśwież.
Dowiedz się więcej o metrykach.
Kliknij dowolny wykres, aby wyświetlić bardziej szczegółowe zagregowane metryki.
Dane wystąpienia
Kliknij określony typ żądania, aby wyświetlić poszczególne wystąpienia.
Log Analytics: zaawansowany język zapytań
W miarę gromadzenia większej ilości danych można uruchamiać zapytania w celu agregowania danych i znajdowania poszczególnych wystąpień. Log Analytics to zaawansowane narzędzie do zrozumienia wydajności i użycia oraz do celów diagnostycznych.
Instalowanie aplikacji na serwerze
Teraz opublikuj aplikację na serwerze, pozwól użytkownikom na korzystanie z niej i obejrzyj dane telemetryczne wyświetlane w portalu.
Upewnij się, że zapora umożliwia aplikacji wysyłanie danych telemetrycznych do następujących portów:
- dc.services.visualstudio.com:443
- f5.services.visualstudio.com:443
Jeśli ruch wychodzący musi być kierowany przez zaporę, zdefiniuj właściwości
http.proxyHostsystemowe ihttp.proxyPort.Na serwerach z systemem Windows zainstaluj:
Pakiet redystrybucyjny Programu Microsoft Visual C++
Ten składnik umożliwia liczniki wydajności.
Azure App Service, Azure Kubernetes Service, konfiguracja maszyn wirtualnych
Najlepszym i najprostszym podejściem do monitorowania aplikacji działających u dowolnego dostawcy zasobów platformy Azure jest użycie usługi Application Insights Java 3.x.
Wyjątki i błędy żądań
Nieobsługiwane wyjątki i błędy żądań są automatycznie zbierane przez filtr internetowy usługi Application Insights.
Aby zebrać dane dotyczące innych wyjątków, możesz wstawić wywołania do funkcji trackException() w kodzie.
Monitorowanie wywołań metod i zależności zewnętrznych
Zainstaluj agenta Java, aby rejestrować określone metody wewnętrzne i wywołania wykonywane za pośrednictwem JDBC, z danymi dotyczącymi czasu wykonania i automatycznego nazewnictwa operacji.
Śledzenie rozproszone W3C
Zestaw JAVA SDK usługi Application Insights obsługuje teraz śledzenie rozproszone W3C.
Konfiguracja przychodzącego zestawu SDK jest dokładniej objaśniona w temacie Korelacja telemetrii w usłudze Application Insights.
Konfiguracja wychodzącego zestawu SDK jest zdefiniowana w pliku AI-Agent.xml .
Liczniki wydajności
Wybierz pozycję Zbadaj>metryki , aby wyświetlić szereg liczników wydajności.
Dostosowywanie kolekcji liczników wydajności
Aby wyłączyć zbieranie standardowych zestawów liczników wydajności, dodaj następujący kod w węźle głównym pliku ApplicationInsights.xml :
<PerformanceCounters>
<UseBuiltIn>False</UseBuiltIn>
</PerformanceCounters>
Zbieranie większej liczby liczników wydajności
Można określić dodatkowe liczniki wydajności do zbierania.
Liczniki JMX (uwidocznione przez maszynę wirtualną Java)
<PerformanceCounters>
<Jmx>
<Add objectName="java.lang:type=ClassLoading" attribute="TotalLoadedClassCount" displayName="Loaded Class Count"/>
<Add objectName="java.lang:type=Memory" attribute="HeapMemoryUsage.used" displayName="Heap Memory Usage-used" type="composite"/>
</Jmx>
</PerformanceCounters>
-
displayName: nazwa wyświetlana w portalu usługi Application Insights. -
objectName: nazwa obiektu JMX. -
attribute: atrybut nazwy obiektu JMX do uzyskania. -
type(opcjonalnie): typ atrybutu obiektu JMX:- Ustawienie domyślne: prosty typ, taki jak int lub long.
-
composite: Dane licznika wydajności są w formacieAttribute.Data. -
tabular: Dane licznika wydajności mają format wiersza tabeli.
Liczniki wydajności systemu Windows
Każdy licznik wydajności systemu Windows jest członkiem kategorii (w taki sam sposób, jak pole jest elementem członkowskim klasy). Kategorie mogą być globalne lub mają numerowane lub nazwane wystąpienia.
<PerformanceCounters>
<Windows>
<Add displayName="Process User Time" categoryName="Process" counterName="%User Time" instanceName="__SELF__" />
<Add displayName="Bytes Printed per Second" categoryName="Print Queue" counterName="Bytes Printed/sec" instanceName="Fax" />
</Windows>
</PerformanceCounters>
-
displayName: nazwa wyświetlana w portalu usługi Application Insights. -
categoryName: kategoria licznika wydajności (obiekt wydajności), z którym jest skojarzony ten licznik wydajności. -
counterName: nazwa licznika wydajności. -
instanceName: Nazwa wystąpienia kategorii licznika wydajności lub pusty ciąg (""), jeśli kategoria zawiera pojedyncze wystąpienie. JeślicategoryNametoProcess, a licznik wydajności, który chcesz zebrać, pochodzi z bieżącego procesu JVM, na którym działa Twoja aplikacja, określ"__SELF__".
Liczniki wydajności systemu Unix
Zainstaluj collectd z wtyczką Application Insights, aby uzyskać szeroką gamę danych systemowych i sieciowych.
Pobieranie danych użytkownika i sesji
Teraz wysyłasz dane telemetryczne z serwera internetowego. Aby uzyskać pełny widok 360 stopni aplikacji, możesz dodać więcej monitorowania:
- Dodaj dane telemetryczne do stron internetowych, aby monitorować widoki stron i metryki użytkowników.
- Skonfiguruj testy internetowe , aby upewnić się, że aplikacja pozostaje aktywna i odpowiada.
Wysyłanie własnych danych telemetrycznych
Po zainstalowaniu zestawu SDK możesz użyć interfejsu API do wysyłania własnych danych telemetrycznych:
- Śledź zdarzenia niestandardowe i metryki , aby dowiedzieć się, co użytkownicy robią z aplikacją.
- Wyszukaj zdarzenia i dzienniki , aby ułatwić diagnozowanie problemów.
Testy dostępności stron internetowych
Usługa Application Insights może testować witrynę internetową w regularnych odstępach czasu, aby sprawdzić, czy działa prawidłowo.
Dowiedz się więcej o sposobie konfigurowania testów dostępności internetowych.
Rozwiązywanie problemów
Zobacz dedykowany artykuł dotyczący rozwiązywania problemów.
Testowanie łączności między hostem aplikacji a usługą zbierania danych
Zestawy SDK i agenci usługi Application Insights wysyłają dane telemetryczne, które są przetwarzane jako wywołania REST do naszych punktów końcowych. Możesz przetestować łączność z serwera webowego lub maszyny hostującej aplikację do punktów końcowych usługi pozyskiwania, używając bezpośrednich klientów REST z poziomu programu PowerShell lub poleceń curl. Zobacz Rozwiązywanie problemów z brakującą telemetrią aplikacji w usłudze Azure Monitor Application Insights.
Eksplorowanie dzienników śledzenia języka Java w usłudze Application Insights
Jeśli używasz funkcji Logback lub Log4J (wersja 1.2 lub 2.0) do śledzenia, możesz automatycznie wysyłać dzienniki śledzenia do usługi Application Insights, gdzie można je eksplorować i wyszukiwać.
Wskazówka
Musisz ustawić klucz instrumentacji Application Insights tylko raz dla swojej aplikacji. Jeśli używasz struktury takiej jak Java Spring, być może klucz został już zarejestrowany w innym miejscu konfiguracji aplikacji.
Korzystanie z agenta Java usługi Application Insights
Domyślnie agent java usługi Application Insights automatycznie przechwytuje rejestrowanie wykonywane na WARN poziomie i powyżej.
Możesz zmienić próg przechwytywanego rejestrowania za pomocą pliku AI-Agent.xml:
<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsightsAgent>
<Instrumentation>
<BuiltIn>
<Logging threshold="info"/>
</BuiltIn>
</Instrumentation>
</ApplicationInsightsAgent>
Przechwytywanie rejestrowania agenta Java można wyłączyć przy użyciu pliku AI-Agent.xml :
<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsightsAgent>
<Instrumentation>
<BuiltIn>
<Logging enabled="false"/>
</BuiltIn>
</Instrumentation>
</ApplicationInsightsAgent>
Alternatives
Zamiast używać agenta Języka Java, możesz wykonać te instrukcje.
Instalowanie zestawu Java SDK
Postępuj zgodnie z instrukcjami, aby zainstalować zestaw SDK usługi Application Insights dla języka Java, jeśli jeszcze tego nie zrobiono.
Dodaj biblioteki rejestrowania do projektu
Wybierz odpowiedni sposób dla projektu.
Maven
Jeśli projekt został już skonfigurowany do używania narzędzia Maven do kompilacji, scal jeden z poniższych fragmentów kodu do pliku pom.xml . Następnie odśwież zależności projektu, aby pobrać pliki binarne.
Logback
<dependencies>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-logging-logback</artifactId>
<version>[2.0,)</version>
</dependency>
</dependencies>
Log4J, wersja 2.0
<dependencies>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-logging-log4j2</artifactId>
<version>[2.0,)</version>
</dependency>
</dependencies>
Log4J v1.2
<dependencies>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-logging-log4j1_2</artifactId>
<version>[2.0,)</version>
</dependency>
</dependencies>
Gradle
Jeśli projekt został już skonfigurowany do używania narzędzia Gradle do kompilacji, dodaj jeden z następujących wierszy do dependencies grupy w pliku build.gradle . Następnie odśwież zależności projektu, aby pobrać pliki binarne.
Logback
compile group: 'com.microsoft.azure', name: 'applicationinsights-logging-logback', version: '2.0.+'
Log4J, wersja 2.0
compile group: 'com.microsoft.azure', name: 'applicationinsights-logging-log4j2', version: '2.0.+'
Log4J v1.2
compile group: 'com.microsoft.azure', name: 'applicationinsights-logging-log4j1_2', version: '2.0.+'
Użyj linku jar
Postępuj zgodnie z wytycznymi, aby ręcznie zainstalować zestaw JAVA SDK usługi Application Insights i pobrać plik jar. Na stronie Maven Central wybierz jar łącze w sekcji pobierania dla odpowiedniego appendera. Dodaj pobrany plik jar appendera do projektu.
| Logger | Pobierz | Biblioteka |
|---|---|---|
| Rejestrowanie zwrotne | Appender Logback Jar | applicationinsights-logging-logback |
| Log4J, wersja 2.0 | Log4J v2 appender Jar | applicationinsights-logging-log4j2 |
| Log4j, wersja 1.2 | Appender Log4J w wersji 1.2 jar | applicationinsights-logging-log4j1_2 |
Dodaj dołącznik do frameworka rejestrowania
Aby rozpocząć pobieranie śladów, scal odpowiedni fragment kodu z plikiem konfiguracji Logback lub Log4J.
Logback
<appender name="aiAppender"
class="com.microsoft.applicationinsights.logback.ApplicationInsightsAppender">
<instrumentationKey>[APPLICATION_INSIGHTS_KEY]</instrumentationKey>
</appender>
<root level="trace">
<appender-ref ref="aiAppender" />
</root>
Log4J, wersja 2.0
<Configuration packages="com.microsoft.applicationinsights.log4j.v2">
<Appenders>
<ApplicationInsightsAppender name="aiAppender" instrumentationKey="[APPLICATION_INSIGHTS_KEY]" />
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="aiAppender"/>
</Root>
</Loggers>
</Configuration>
Log4J v1.2
<appender name="aiAppender"
class="com.microsoft.applicationinsights.log4j.v1_2.ApplicationInsightsAppender">
<param name="instrumentationKey" value="[APPLICATION_INSIGHTS_KEY]" />
</appender>
<root>
<priority value ="trace" />
<appender-ref ref="aiAppender" />
</root>
Dołączniki Application Insights mogą być odnoszone przez dowolnego zarejestrowanego rejestratora, a niekoniecznie przez główny rejestrator, jak pokazano w poprzednich przykładach kodu.
Przeglądaj swoje ślady w portalu usługi Application Insights
Po skonfigurowaniu projektu w celu wysyłania śladów do usługi Application Insights możesz wyświetlać i przeszukiwać te ślady w portalu usługi Application Insights w okienku Wyszukiwania .
Wyjątki przesłane za pośrednictwem rejestratorów będą wyświetlane w portalu jako dane telemetryczne wyjątków .
Monitorowanie zależności, wyjątków przechwyconych i czasów wykonywania metod w aplikacjach internetowych Java
Jeśli instrumentujesz aplikację internetową Java za pomocą zestawu SDK usługi Application Insights, możesz użyć agenta Języka Java, aby uzyskać bardziej szczegółowe informacje bez żadnych zmian kodu:
Zależności: dane dotyczące wywołań, które aplikacja wykonuje do innych składników, w tym:
-
Wychodzące wywołania HTTP: wywołania wykonywane za pośrednictwem
Apache HttpClient,OkHttp, ijava.net.HttpURLConnectionsą przechwytywane. - Wywołania usługi Redis: wywołania wykonywane za pośrednictwem klienta Jedis są przechwytywane.
- Zapytania JDBC: w przypadku baz danych MySQL i PostgreSQL, jeśli wywołanie trwa dłużej niż 10 sekund, agent zgłasza plan zapytania.
-
Wychodzące wywołania HTTP: wywołania wykonywane za pośrednictwem
Rejestrowanie aplikacji: przechwytywanie i korelowanie dzienników aplikacji z żądaniami HTTP i innymi danymi telemetrycznymi:
- Log4j 1.2
- Log4j2
- Logback
Lepsze nazewnictwo operacji: służy do agregacji żądań w portalu.
-
Spring: na
@RequestMappingpodstawie . -
JAX-RS: na podstawie
@Path.
-
Spring: na
Aby użyć agenta Języka Java, zainstaluj go na serwerze. Aplikacje internetowe muszą być instrumentowane przy użyciu zestawu JAVA SDK usługi Application Insights.
Instalowanie agenta usługi Application Insights dla języka Java
Na maszynie z uruchomionym serwerem Java pobierz agenta 2.x. Upewnij się, że wersja używanego agenta Java 2.x jest zgodna z wersją używanego zestawu JAVA SDK usługi Application Insights w wersji 2.x.
Edytuj skrypt uruchamiania serwera aplikacji i dodaj następujący argument JVM:
-javaagent:<full path to the agent JAR file>Na przykład w usłudze Tomcat na maszynie z systemem Linux:
export JAVA_OPTS="$JAVA_OPTS -javaagent:<full path to agent JAR file>"Uruchom ponownie serwer aplikacji.
Konfigurowanie agenta
Utwórz plik o nazwie AI-Agent.xml i umieść go w tym samym folderze co plik jar agenta.
Ustaw zawartość pliku XML. Zmodyfikuj poniższy przykład, aby uwzględnić lub pominąć żądane funkcje.
<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsightsAgent>
<Instrumentation>
<BuiltIn enabled="true">
<!-- capture logging via Log4j 1.2, Log4j2, and Logback, default is true -->
<Logging enabled="true" />
<!-- capture outgoing HTTP calls performed through Apache HttpClient, OkHttp,
and java.net.HttpURLConnection, default is true -->
<HTTP enabled="true" />
<!-- capture JDBC queries, default is true -->
<JDBC enabled="true" />
<!-- capture Redis calls, default is true -->
<Jedis enabled="true" />
<!-- capture query plans for JDBC queries that exceed this value (MySQL, PostgreSQL),
default is 10000 milliseconds -->
<MaxStatementQueryLimitInMS>1000</MaxStatementQueryLimitInMS>
</BuiltIn>
</Instrumentation>
</ApplicationInsightsAgent>
Więcej opcji konfiguracyjnych (Spring Boot)
java -javaagent:/path/to/agent.jar -jar path/to/TestApp.jar
W przypadku usługi Azure App Service wykonaj następujące kroki:
Wybierz pozycję Ustawienia>aplikacji.
W obszarze Ustawienia aplikacji dodaj nową parę wartości klucza:
-
Klucz:
JAVA_OPTS -
Wartość:
-javaagent:D:/home/site/wwwroot/applicationinsights-agent-2.6.4.jar
Agent musi być spakowany jako zasób w projekcie, aby mógł on znajdować się w katalogu D:/home/site/wwwroot/ . Aby potwierdzić, że agent znajduje się w poprawnym katalogu usługi App Service, przejdź do pozycji Narzędzia programistyczne>>Konsola debugowania i sprawdź zawartość katalogu aplikacji.
-
Klucz:
Zapisz ustawienia i uruchom ponownie aplikację. Te kroki dotyczą tylko usług aplikacji działających w systemie Windows.
Uwaga / Notatka
AI-Agent.xml , a plik jar agenta powinien znajdować się w tym samym folderze. Są one często umieszczane razem w folderze /resources projektu.
Włącz śledzenie rozproszone W3C
Dodaj następujący fragment kodu do AI-Agent.xml:
<Instrumentation>
<BuiltIn enabled="true">
<HTTP enabled="true" W3C="true" enableW3CBackCompat="true"/>
</BuiltIn>
</Instrumentation>
Uwaga / Notatka
Tryb zgodności z poprzednimi wersjami jest domyślnie włączony. Parametr enableW3CBackCompat jest opcjonalny i powinien być używany tylko wtedy, gdy chcesz go wyłączyć.
Najlepiej byłoby, gdyby wszystkie usługi zostały zaktualizowane do nowszych wersji zestawów SDK obsługujących protokół W3C. Zalecamy jak najszybsze przejście do nowszych wersji zestawów SDK z obsługą usługi W3C.
Upewnij się, że zarówno konfiguracje przychodzące , jak i wychodzące (agent) są dokładnie takie same.
Wyświetlanie danych
W zasobie usługi Application Insights zagregowane czasy wykonywania zależności zdalnej i metody są wyświetlane na kafelku Wydajność.
Aby wyszukać poszczególne wystąpienia raportów zależności, wyjątków i metod, otwórz pozycję Wyszukaj.
Dowiedz się więcej na temat diagnozowania problemów z zależnościami.
Pytania lub problemy?
Użyj następujących zasobów:
- Brak danych? Ustaw wyjątki zapory.
- Rozwiązywanie problemów z językiem Java.
Filtrowanie danych telemetrycznych w aplikacji internetowej Java
Filtry umożliwiają wybranie danych telemetrycznych wysyłanych przez aplikację internetową Java do usługi Application Insights. Istnieje kilka wbudowanych filtrów, których można użyć. Możesz również napisać własne filtry niestandardowe.
Filtry dostępne od razu po instalacji obejmują:
- Poziom ważności śledzenia.
- Określone adresy URL, słowa kluczowe lub kody odpowiedzi.
- Szybkie odpowiedzi. Innymi słowy, żądania, na które aplikacja szybko odpowiedziała.
- Określone nazwy zdarzeń.
Uwaga / Notatka
Filtry zniekształcają metryki aplikacji. Możesz na przykład zdecydować, że aby zdiagnozować powolne odpowiedzi, ustawisz filtr, aby odrzucić szybkie czasy odpowiedzi. Należy jednak pamiętać, że średni czas odpowiedzi zgłoszony przez usługę Application Insights będzie wtedy wolniejszy niż rzeczywista szybkość. Ponadto liczba żądań będzie mniejsza niż rzeczywista liczba.
Jeśli jest to problem, zamiast tego użyj opcji Próbkowanie .
Ustawianie filtrów
W ApplicationInsights.xml dodaj sekcję taką jak ten przykład TelemetryProcessors:
<ApplicationInsights>
<TelemetryProcessors>
<BuiltInProcessors>
<Processor type="TraceTelemetryFilter">
<Add name="FromSeverityLevel" value="ERROR"/>
</Processor>
<Processor type="RequestTelemetryFilter">
<Add name="MinimumDurationInMS" value="100"/>
<Add name="NotNeededResponseCodes" value="200-400"/>
</Processor>
<Processor type="PageViewTelemetryFilter">
<Add name="DurationThresholdInMS" value="100"/>
<Add name="NotNeededNames" value="home,index"/>
<Add name="NotNeededUrls" value=".jpg,.css"/>
</Processor>
<Processor type="TelemetryEventFilter">
<!-- Names of events we don't want to see -->
<Add name="NotNeededNames" value="Start,Stop,Pause"/>
</Processor>
<!-- Exclude telemetry from availability tests and bots -->
<Processor type="SyntheticSourceFilter">
<!-- Optional: specify which synthetic sources,
comma-separated
- default is all synthetics -->
<Add name="NotNeededSources" value="Application Insights Availability Monitoring,BingPreview"
</Processor>
</BuiltInProcessors>
<CustomProcessors>
<Processor type="com.fabrikam.MyFilter">
<Add name="Successful" value="false"/>
</Processor>
</CustomProcessors>
</TelemetryProcessors>
</ApplicationInsights>
Sprawdź pełny zestaw wbudowanych procesorów.
Filtry wbudowane
W tej sekcji omówiono wbudowane filtry, które są dostępne.
Filtr metryki telemetrii
<Processor type="MetricTelemetryFilter">
<Add name="NotNeeded" value="metric1,metric2"/>
</Processor>
-
NotNeeded: Rozdzielona przecinkami lista niestandardowych nazw metryk
Filtr telemetrii widoku strony
<Processor type="PageViewTelemetryFilter">
<Add name="DurationThresholdInMS" value="500"/>
<Add name="NotNeededNames" value="page1,page2"/>
<Add name="NotNeededUrls" value="url1,url2"/>
</Processor>
-
DurationThresholdInMS: czas trwania odnosi się do czasu potrzebnego do załadowania strony. Jeśli ten parametr jest ustawiony, strony ładowane szybciej niż tym razem nie są zgłaszane. -
NotNeededNames: Rozdzielona przecinkami lista nazw stron. -
NotNeededUrls: rozdzielona przecinkami lista fragmentów adresów URL. Na przykład"home"filtruje wszystkie strony, które mają "strona główna" w adresie URL.
Filtr żądań telemetrii
<Processor type="RequestTelemetryFilter">
<Add name="MinimumDurationInMS" value="500"/>
<Add name="NotNeededResponseCodes" value="page1,page2"/>
<Add name="NotNeededUrls" value="url1,url2"/>
</Processor>
Filtr syntetycznego źródła
Filtruje wszystkie dane telemetryczne, które mają wartości w właściwości SyntheticSource. Uwzględniane są żądania botów, pająków i testów dostępności.
Filtruje dane telemetryczne dla wszystkich syntetycznych żądań:
<Processor type="SyntheticSourceFilter" />
Filtruje dane telemetryczne dla określonych syntetycznych źródeł:
<Processor type="SyntheticSourceFilter" >
<Add name="NotNeeded" value="source1,source2"/>
</Processor>
-
NotNeeded: Rozdzielona przecinkami lista syntetycznych nazw źródłowych
Filtr zdarzeń telemetrii
Filtruje zdarzenia niestandardowe, które zostały zarejestrowane przy użyciu funkcji TrackEvent():
<Processor type="TelemetryEventFilter" >
<Add name="NotNeededNames" value="event1, event2"/>
</Processor>
-
NotNeededNames: Rozdzielona przecinkami lista nazw zdarzeń
Filtr telemetrii śledzenia
Filtruje ślady dzienników rejestrowane przy użyciu funkcji TrackTrace() lub kolektora frameworku logowania:
<Processor type="TraceTelemetryFilter">
<Add name="FromSeverityLevel" value="ERROR"/>
</Processor>
Prawidłowe
FromSeverityLevelwartości to:- OFF: Filtruje wszystkie ślady.
- TRACE: Brak filtrowania. Równa się poziomowi TRACE.
- INFO: Filtruje poziom TRACE.
- OSTRZEGAJ: filtruje dane TRACE i INFO.
- BŁĄD: Filtruje ostrzeżenie, INFORMACJE i ŚLAD.
- KRYTYCZNE: filtruje wszystko poza KRYTYCZNYMI.
Filtry niestandardowe
W poniższych sekcjach przedstawiono kroki tworzenia własnych filtrów niestandardowych.
Zaprogramuj filtr
W kodzie utwórz klasę, która implementuje TelemetryProcessorelement :
package com.fabrikam.MyFilter;
import com.microsoft.applicationinsights.extensibility.TelemetryProcessor;
import com.microsoft.applicationinsights.telemetry.Telemetry;
public class SuccessFilter implements TelemetryProcessor {
/* Any parameters that are required to support the filter.*/
private final String successful;
/* Initializers for the parameters, named "setParameterName" */
public void setNotNeeded(String successful)
{
this.successful = successful;
}
/* This method is called for each item of telemetry to be sent.
Return false to discard it.
Return true to allow other processors to inspect it. */
@Override
public boolean process(Telemetry telemetry) {
if (telemetry == null) { return true; }
if (telemetry instanceof RequestTelemetry)
{
RequestTelemetry requestTelemetry = (RequestTelemetry) telemetry;
return request.getSuccess() == successful;
}
return true;
}
}
Wywoływanie filtru w pliku konfiguracji
Teraz w ApplicationInsights.xml:
<ApplicationInsights>
<TelemetryProcessors>
<CustomProcessors>
<Processor type="com.fabrikam.SuccessFilter">
<Add name="Successful" value="false"/>
</Processor>
</CustomProcessors>
</TelemetryProcessors>
</ApplicationInsights>
Wywoływanie filtru (Java Spring)
W przypadku aplikacji opartych na frameworku Spring niestandardowe procesory telemetryczne muszą być zarejestrowane w głównej klasie aplikacji jako bean. Zostaną następnie automatycznie powiązane po uruchomieniu aplikacji.
@Bean
public TelemetryProcessor successFilter() {
return new SuccessFilter();
}
Utworzysz własne parametry filtru w pliku application.properties. Następnie użyjesz zewnętrznej struktury konfiguracji Spring Boot, aby przekazać te parametry do niestandardowego filtru.
Rozwiązywanie problemów
Ta sekcja zawiera poradę dotyczącą rozwiązywania problemów.
Mój filtr nie działa
Sprawdź, czy podano prawidłowe wartości parametrów. Na przykład czasy trwania powinny być liczbami całkowitymi. Nieprawidłowe wartości spowodują zignorowanie filtru. Jeśli filtr niestandardowy zgłasza wyjątek w konstruktorze lub metodzie ustawiającej, zostanie zignorowany.
zbierane: metryki wydajności systemu Linux w usłudze Application Insights (przestarzałe)
Aby zapoznać się z metrykami wydajności systemu Linux w usłudze Application Insights, zainstaluj collectd wraz z wtyczką do Application Insights. To rozwiązanie typu open source zbiera różne statystyki systemowe i sieciowe.
Zazwyczaj należy użyć narzędzia collectd , jeśli usługa internetowa Java została już instrumentowana za pomocą usługi Application Insights. Udostępnia ona więcej danych, które ułatwiają zwiększenie wydajności aplikacji lub diagnozowanie problemów.
Pobierz klucz instrumentacji
W witrynie Azure Portal otwórz zasób usługi Application Insights , w którym mają być wyświetlane dane. Możesz też utworzyć nowy zasób.
Utwórz kopię klucza instrumentacji, który identyfikuje zasób.
Zainstaluj collectd i wtyczkę.
Na serwerach z systemem Linux:
- Zainstaluj zebraną wersję 5.4.0 lub nowszą.
- Pobierz wtyczkę collectd writer dla aplikacji Application Insights. Zanotuj numer wersji.
- Skopiuj plik JAR wtyczki do folderu
/usr/share/collectd/java. - Edytuj
/etc/collectd/collectd.conf:Upewnij się, że wtyczka Java jest włączona.
Zaktualizuj element JVMArg dla elementu
java.class.path, aby uwzględnić następujący plik jar. Zaktualizuj numer wersji, aby był zgodny z pobranym numerem:/usr/share/collectd/java/applicationinsights-collectd-1.0.5.jar
Dodaj ten fragment kodu przy użyciu klucza instrumentacji z zasobu:
LoadPlugin "com.microsoft.applicationinsights.collectd.ApplicationInsightsWriter" <Plugin ApplicationInsightsWriter> InstrumentationKey "Your key" </Plugin>Oto część przykładowego pliku konfiguracji:
... # collectd plugins LoadPlugin cpu LoadPlugin disk LoadPlugin load ... # Enable Java Plugin LoadPlugin "java" # Configure Java Plugin <Plugin "java"> JVMArg "-verbose:jni" JVMArg "-Djava.class.path=/usr/share/collectd/java/applicationinsights-collectd-1.0.5.jar:/usr/share/collectd/java/collectd-api.jar" # Enabling Application Insights plugin LoadPlugin "com.microsoft.applicationinsights.collectd.ApplicationInsightsWriter" # Configuring Application Insights plugin <Plugin ApplicationInsightsWriter> InstrumentationKey "12345678-1234-1234-1234-123456781234" </Plugin> # Other plugin configurations ... ... </Plugin> ...
Skonfiguruj inne zebrane wtyczki, które mogą zbierać różne dane z różnych źródeł.
Uruchom ponownie collectd zgodnie z instrukcjami ręcznymi.
Wyświetlanie danych w usłudze Application Insights
W zasobie usługi Application Insights otwórz pozycję Metryki i dodaj wykresy. Wybierz metryki, które chcesz wyświetlić w kategorii Niestandardowe .
Domyślnie metryki są agregowane na wszystkich maszynach hosta, z których zostały zebrane metryki. Aby wyświetlić metryki na hosta, w okienku Szczegóły wykresu włącz grupowanie, a następnie wybierz grupowanie według kolekcji CollectD-Host.
Wyklucz przekazywanie określonych statystyk
Domyślnie wtyczka usługi Application Insights wysyła wszystkie dane zebrane przez wszystkie włączone collectd read wtyczki.
Aby wykluczyć dane z określonych wtyczek lub źródeł danych:
Edytuj plik konfiguracji.
W
<Plugin ApplicationInsightsWriter>dodaj wiersze dyrektywy podobne do tych w poniższej tabeli:Dyrektywa Efekt Exclude diskWyklucz wszystkie dane zebrane przez wtyczkę disk.Exclude disk:read,writeWyklucz źródła o nazwie readiwritezdiskwtyczki.
Oddziel instrukcje przez wiersz nowy.
Masz problemy?
Ta sekcja zawiera porady dotyczące rozwiązywania problemów.
Nie widzę danych w portalu
Wypróbuj następujące opcje:
- Otwórz pozycję Wyszukaj , aby sprawdzić, czy dotarły nieprzetworzone zdarzenia. Czasami pojawiają się one dłużej w Eksploratorze metryk.
- Może być konieczne ustawienie wyjątków zapory dla danych wychodzących.
- Włącz śledzenie w wtyczce usługi Application Insights. Dodaj ten wiersz w pliku
<Plugin ApplicationInsightsWriter>:SDKLogger true
- Otwórz terminal i uruchom
collectdw trybie szczegółowym, aby sprawdzić wszelkie zgłaszane problemy:sudo collectd -f
Znany problem
Wtyczka zapisu Application Insights jest niezgodna z niektórymi wtyczkami odczytu. Niektóre wtyczki czasami wysyłają NaN wartość, ale wtyczka Application Insights oczekuje liczby zmiennoprzecinkowej.
-
Objaw: w dzienniku są wyświetlane błędy, które obejmują "Sztuczna
collectdinteligencja: ... SyntaxError: Nieoczekiwany token N." - Obejście: Wyklucz dane zebrane przez wtyczki do zapisu danych problemu.
Użycie biblioteki Micrometer z Java SDK dla usługi Application Insights (niezalecane)
Mikrometryczne monitorowanie aplikacji mierzy metryki kodu aplikacji opartego na maszynie JVM i umożliwia eksportowanie danych do ulubionych systemów monitorowania. W tej sekcji pokazano, jak używać mikrometru z usługą Application Insights zarówno dla aplikacji Spring Boot, jak i innych niż Spring Boot.
Korzystanie z platformy Spring Boot 1.5x
Dodaj następujące zależności do pliku pom.xml lub build.gradle:
- Application Insights spring-boot-starter wersja 2.5.0 lub nowsza.
- Mikrometr Azure Registry 1.1.0 lub nowszy.
- Micrometer Spring Legacy 1.1.0 lub nowsza wersja. Przywraca kod autokonfiguracji w strukturze Spring.
- Zasób usługi ApplicationInsights.
Wykonaj te kroki:
Zaktualizuj plik pom.xml aplikacji Spring Boot i dodaj w nim następujące zależności:
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>applicationinsights-spring-boot-starter</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-spring-legacy</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-azure-monitor</artifactId> <version>1.1.0</version> </dependency>Zaktualizuj plik application.properties lub YML przy użyciu klucza instrumentacji usługi Application Insights, używając następującej właściwości:
azure.application-insights.instrumentation-key=<your-instrumentation-key-here>Skompiluj aplikację i uruchom ją.
Powyższe kroki powinny pomóc Ci w uruchomieniu zbierania wstępnie zagregowanych metryk automatycznie zbieranych w usłudze Azure Monitor.
Korzystanie z platformy Spring 2.x
Dodaj następujące zależności do pliku pom.xml lub build.gradle :
- Usługa Application Insights Spring-boot-starter 2.1.2 lub nowsza
- Azure-spring-boot-metrics-starters 2.0.7 lub nowszy
- Zasób usługi Application Insights
Wykonaj te kroki:
Zaktualizuj plik pom.xml aplikacji Spring Boot i dodaj w niej następującą zależność:
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-spring-boot-metrics-starter</artifactId> <version>2.0.7</version> </dependency>Zaktualizuj plik application.properties lub YML przy użyciu klucza instrumentacji usługi Application Insights, używając następującej właściwości:
azure.application-insights.instrumentation-key=<your-instrumentation-key-here>Skompiluj aplikację i uruchom ją.
Powyższe kroki powinny umożliwić Ci działanie z wstępnie zagregowanymi metrykami, automatycznie zbieranymi w usłudze Azure Monitor. Aby uzyskać więcej informacji na temat dostosowywania szablonu startowego Usługi Application Insights Spring Boot, zobacz plik readme w witrynie GitHub.
Metryki domyślne:
- Automatycznie skonfigurowane metryki dla serwerów Tomcat, JVM, Logback Metrics, Log4J Metrics, Uptime Metrics, Processor Metrics i FileDescriptorMetrics.
- Jeśli na przykład program Netflix Hystrix znajduje się na ścieżce klasy, otrzymamy również te metryki.
- Następujące metryki mogą być dostępne przez dodanie odpowiednich JavaBeans:
-
CacheMetrics(CaffeineCache,EhCache2,GuavaCache,HazelcastCacheiJCache) DataBaseTableMetricsHibernateMetricsJettyMetrics-
OkHttp3Metryki -
KafkaMetryki
-
Wyłącz zbieranie metryk automatycznych:
- Metryki JVM:
management.metrics.binders.jvm.enabled=false
- Metryki logback:
management.metrics.binders.logback.enabled=false
- Metryki niezawodności
management.metrics.binders.uptime.enabled=false
- Metryki procesora:
management.metrics.binders.processor.enabled=false
- FileDescriptorMetrics:
management.metrics.binders.files.enabled=false
- Metryki programu Hystrix, gdy biblioteka jest w systemie
classpath:management.metrics.binders.hystrix.enabled=false
- Metryki interfejsu AspectJ, jeśli biblioteka w pliku
classpath:spring.aop.enabled=false
Uwaga / Notatka
Określ poprzednie właściwości w pliku application.properties lub application.yml aplikacji Spring Boot.
Używanie mikrometru z aplikacjami internetowymi spoza platformy Spring Boot
Dodaj następujące zależności do pliku pom.xml lub build.gradle:
- Application Insights Web Auto 2.5.0 lub nowsza
- Mikrometr Azure Registry 1.1.0 lub nowszy
- Zasób usługi Application Insights
Wykonaj te kroki:
Dodaj następujące zależności w pliku pom.xml lub build.gradle :
<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-azure-monitor</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>applicationinsights-web-auto</artifactId> <version>2.5.0</version> </dependency>Jeśli jeszcze tego nie zrobiono, dodaj plik ApplicationInsights.xml w folderze resources. Aby uzyskać więcej informacji, zobacz Dodawanie pliku ApplicationInsights.xml.
Przykładowa klasa Servlet (emituje metrykę czasomierza):
@WebServlet("/hello") public class TimedDemo extends HttpServlet { private static final long serialVersionUID = -4751096228274971485L; @Override @Timed(value = "hello.world") protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().println("Hello World!"); MeterRegistry registry = (MeterRegistry) getServletContext().getAttribute("AzureMonitorMeterRegistry"); //create new Timer metric Timer sampleTimer = registry.timer("timer"); Stream<Integer> infiniteStream = Stream.iterate(0, i -> i+1); infiniteStream.limit(10).forEach(integer -> { try { Thread.sleep(1000); sampleTimer.record(integer, TimeUnit.MILLISECONDS); } catch (Exception e) {} }); } @Override public void init() throws ServletException { System.out.println("Servlet " + this.getServletName() + " has started"); } @Override public void destroy() { System.out.println("Servlet " + this.getServletName() + " has stopped"); } }Przykładowa klasa konfiguracji:
@WebListener public class MeterRegistryConfiguration implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent servletContextEvent) { // Create AzureMonitorMeterRegistry private final AzureMonitorConfig config = new AzureMonitorConfig() { @Override public String get(String key) { return null; } @Override public Duration step() { return Duration.ofSeconds(60);} @Override public boolean enabled() { return false; } }; MeterRegistry azureMeterRegistry = AzureMonitorMeterRegistry.builder(config); //set the config to be used elsewhere servletContextEvent.getServletContext().setAttribute("AzureMonitorMeterRegistry", azureMeterRegistry); } @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { } }
Aby dowiedzieć się więcej o metrykach, zobacz dokumentację mikrometru.
Inny przykładowy kod dotyczący tworzenia różnych typów metryk można znaleźć w oficjalnym repozytorium GitHub Micrometer.
Wiązanie większej liczby kolekcji metryk
W poniższych sekcjach pokazano, jak zebrać więcej metryk.
SpringBoot/Spring
Utwórz fasolę odpowiedniej kategorii metryk. Załóżmy na przykład, że potrzebujesz metryk usługi Guava Cache:
@Bean
GuavaCacheMetrics guavaCacheMetrics() {
Return new GuavaCacheMetrics();
}
Kilka metryk nie jest domyślnie włączonych, ale można je powiązać w poprzedni sposób. Aby uzyskać pełną listę, zobacz repozytorium Micrometer GitHub.
Aplikacje inne niż Spring
Dodaj następujący kod powiązania do pliku konfiguracji:
New GuavaCacheMetrics().bind(registry);
Podstawowy interfejs API dla zdarzeń niestandardowych i metryk
Wstaw kilka wierszy kodu w aplikacji, aby dowiedzieć się, co użytkownicy robią z nim, lub aby ułatwić diagnozowanie problemów. Dane telemetryczne można wysyłać z aplikacji urządzeń i komputerów stacjonarnych, klientów internetowych i serwerów internetowych. Użyj podstawowego API telemetrii usługi Application Insights, aby wysyłać niestandardowe zdarzenia i metryki oraz własne wersje standardowej telemetrii. Ten interfejs API jest tym samym interfejsem API, którego używają standardowe moduły zbierające dane usługi Application Insights.
Podsumowanie interfejsu API
Podstawowy interfejs API jest jednolity na wszystkich platformach, oprócz kilku odmian, takich jak GetMetric (tylko platforma.NET).
| Metoda | Używany do |
|---|---|
TrackPageView |
Strony, ekrany, okienka lub formularze. |
TrackEvent |
Akcje użytkownika i inne zdarzenia. Służy do śledzenia zachowania użytkownika lub monitorowania wydajności. |
TrackMetric |
Pomiary wydajności, takie jak długość kolejki, niezwiązane z określonymi zdarzeniami. |
TrackException |
Rejestrowanie wyjątków dla diagnostyki. Prześledź, gdzie występują w odniesieniu do innych zdarzeń i zbadaj ślady stosu. |
TrackRequest |
Rejestrowanie częstotliwości i czasu trwania żądań serwera na potrzeby analizy wydajności. |
TrackTrace |
Komunikaty dziennika diagnostycznego zasobów. Możesz również przechwytywać dzienniki innych firm. |
TrackDependency |
Rejestrowanie czasu trwania i częstotliwości wywołań do składników zewnętrznych, od których zależy aplikacja. |
Do większości tych wywołań telemetrii można dołączyć właściwości i metryki.
Wymagania wstępne
Jeśli nie masz jeszcze odwołania do zestawu SDK usługi Application Insights:
Dodaj zestaw SDK usługi Application Insights do projektu.
W kodzie urządzenia lub serwera internetowego uwzględnij następujące elementy:
import com.microsoft.applicationinsights.TelemetryClient;
Uzyskaj instancję TelemetryClient
Pobierz wystąpienie klasy TelemetryClient:
private TelemetryClient telemetry = new TelemetryClient();
TelemetryClient jest bezpieczny wątkowo.
Uwaga / Notatka
Jeśli używasz usługi Azure Functions w wersji 2 lub nowszej lub usługi Azure WebJobs w wersji 3 lub nowszej, zobacz Monitorowanie usługi Azure Functions.
Możesz chcieć utworzyć więcej wystąpień TelemetryClient dla innych modułów swojej aplikacji. Na przykład może istnieć jedno TelemetryClient wystąpienie w klasie środowiska pośredniczącego do raportowania zdarzeń logiki biznesowej. Możesz ustawić właściwości, takie jak UserId i DeviceId , aby zidentyfikować maszynę. Te informacje są dołączone do wszystkich zdarzeń wysyłanych przez wystąpienie.
telemetry.getContext().getUser().setId("...");
telemetry.getContext().getDevice().setId("...");
TrackEvent
W usłudze Application Insights zdarzenie niestandardowe to punkt danych, który można wyświetlić w Eksploratorze metryk jako zagregowaną liczbę i w wyszukiwaniu diagnostycznym jako pojedyncze wystąpienia. (Nie jest to związane z MVC ani inną strukturą "events".
Wstaw wywołania TrackEvent w kodzie, aby zliczyć różne zdarzenia. Możesz na przykład śledzić, jak często użytkownicy wybierają określoną funkcję. Możesz też chcieć wiedzieć, jak często osiągają określone cele lub popełniają określone błędy.
Na przykład w aplikacji do gry wyślij zdarzenie za każdym razem, gdy użytkownik wygra grę:
telemetry.trackEvent("WinGame");
Zdarzenia niestandardowe w usłudze Log Analytics
Dane telemetryczne są dostępne w customEvents tabeli na karcie Dzienniki usługi Application Insights lub w interfejsie użytkownika. Zdarzenia mogą pochodzić z trackEvent(..) lub wtyczki automatycznej kolekcji analizy kliknięć.
Jeśli próbkowanie jest wykonywane, itemCount właściwość pokazuje wartość większą niż 1. Na przykład itemCount==10 oznacza, że z 10 wywołań do trackEvent() metody, proces próbkowania przesłał tylko jedno z nich. Aby uzyskać poprawną liczbę zdarzeń niestandardowych, użyj kodu takiego jak customEvents | summarize sum(itemCount).
Uwaga / Notatka
itemCount ma minimalną wartość jedną; sam rekord reprezentuje wpis.
TrackMetric
Usługa Application Insights może wyświetlać metryki, które nie są dołączone do określonych zdarzeń. Można na przykład monitorować długość kolejki w regularnych odstępach czasu. W przypadku metryk poszczególne miary są mniej interesujące niż różnice i trendy, dlatego wykresy statystyczne są przydatne.
Aby wysyłać metryki do usługi Application Insights, możesz użyć interfejsu TrackMetric(..) API. Istnieją dwa sposoby na przesłanie metryki:
Pojedyncza wartość. Za każdym razem, gdy wykonujesz pomiar w aplikacji, wysyłasz odpowiednią wartość do usługi Application Insights.
Załóżmy na przykład, że masz metrykę opisjącą liczbę elementów w kontenerze. W określonym przedziale czasu najpierw umieścisz trzy elementy w kontenerze, a następnie usuniesz dwa elementy. Zatem należy zadzwonić
TrackMetricdwa razy. Najpierw należy przekazać wartość3, a następnie przekazać wartość-2. Usługa Application Insights przechowuje obie wartości.Agregacja. Podczas pracy z metrykami każda pojedyncza miara jest rzadko interesująca. Zamiast tego ważne jest podsumowanie tego, co wydarzyło się w określonym okresie. Takie podsumowanie jest nazywane agregacją.
W poprzednim przykładzie suma zagregowanej metryki dla tego okresu to
1, a liczba wartości metryki to2. W przypadku korzystania z podejścia agregacji należy wywołaćTrackMetrictylko raz w danym okresie i wysłać zagregowane wartości. Zalecamy takie podejście, ponieważ może znacznie zmniejszyć koszty i obciążenie związane z wydajnością, wysyłając mniej punktów danych do usługi Application Insights, jednocześnie zbierając wszystkie istotne informacje.
Przykłady pojedynczej wartości
Aby wysłać pojedynczą wartość metryki:
telemetry.trackMetric("queueLength", 42.0);
Metryki zdefiniowane przez użytkownika w usłudze Log Analytics
Dane telemetryczne są dostępne w customMetrics tabeli w usłudze Application Insights Analytics. Każdy wiersz reprezentuje wywołanie metody trackMetric(..) w aplikacji.
-
valueSum: suma pomiarów. Aby uzyskać średnią wartość, podziel przezvalueCount. -
valueCount: liczba pomiarów, które zostały zebrane w tym wywołaniutrackMetric(..).
Uwaga / Notatka
valueCount ma minimalną wartość jedną; sam rekord reprezentuje wpis.
Widoki stron
W aplikacji urządzenia lub strony internetowej dane telemetryczne widoku strony są wysyłane domyślnie po załadowaniu każdego ekranu lub strony. Można jednak zmienić wartość domyślną, aby śledzić wyświetlenia stron w więcej lub innym czasie. Na przykład w aplikacji, która wyświetla karty lub okienka, możesz śledzić stronę za każdym razem, gdy użytkownik otworzy nowe okienko.
Dane użytkownika i sesji są wysyłane jako właściwości wraz z widokami stron, więc wykresy użytkownika i sesji nabierają znaczenia, gdy pojawiają się dane telemetryczne dotyczące wyświetleń strony.
Niestandardowe widoki stron
telemetry.trackPageView("GameReviewPage");
Telemetria stron w usłudze Log Analytics
W usłudze Log Analytics dwie tabele pokazują dane z operacji przeglądarki:
-
pageViews: zawiera dane dotyczące adresu URL i tytułu strony. -
browserTimings: zawiera dane dotyczące wydajności klienta, takie jak czas potrzebny na przetwarzanie danych przychodzących.
Aby dowiedzieć się, jak długo trwa przetwarzanie różnych stron w przeglądarce:
browserTimings
| summarize avg(networkDuration), avg(processingDuration), avg(totalDuration) by name
Aby odkryć popularność różnych przeglądarek:
pageViews
| summarize count() by client_Browser
Aby skojarzyć widoki stron z wywołaniami AJAX, złącz je z zależnościami.
pageViews
| join (dependencies) on operation_Id
TrackRequest
Zestaw SDK serwera używa TrackRequest do rejestrowania żądań HTTP.
Możesz również wywołać je samodzielnie, jeśli chcesz symulować żądania w kontekście, w którym nie masz uruchomionego modułu usługi internetowej.
Zalecanym sposobem wysyłania danych telemetrycznych żądania jest traktowanie żądania jako kontekstu operacji.
Kontekst operacji
Elementy telemetryczne można skorelować razem, kojarząc je z kontekstem operacji. Standardowy moduł śledzenia żądań wykonuje tę funkcję w przypadku wyjątków i innych zdarzeń wysyłanych podczas przetwarzania żądania HTTP. W obszarze Wyszukiwanie i analiza można łatwo znaleźć wszelkie zdarzenia skojarzone z żądaniem przy użyciu jego identyfikatora operacji.
Elementy telemetryczne zgłaszane w zakresie operacji stają się elementami podrzędnym takiej operacji. Konteksty operacji można zagnieżdżać.
W obszarze Wyszukiwanie kontekst operacji służy do tworzenia listy Powiązane elementy .
Żądania w usłudze Log Analytics
W usłudze Application Insights Analytics żądania są wyświetlane w requests tabeli.
Jeśli próbkowanie jest wykonywane, itemCount właściwość pokazuje wartość większą niż 1. Na przykład itemCount==10 oznacza, że z 10 wywołań do trackRequest() metody, proces próbkowania przesłał tylko jedno z nich. Aby uzyskać prawidłową liczbę żądań i średni czas trwania segmentowany według nazw żądań, użyj kodu takiego jak:
requests
| summarize count = sum(itemCount), avgduration = avg(duration) by name
TrackException
Wysyłanie wyjątków do usługi Application Insights:
- Aby je zliczyć, aby wskazać częstotliwość problemu.
- Aby zbadać poszczególne wystąpienia.
Raporty obejmują ślady stosu.
try {
...
} catch (Exception ex) {
telemetry.trackException(ex);
}
Wyjątki są przechwytywane automatycznie, więc nie zawsze trzeba wywoływać TrackException jawnie.
Wyjątki w usłudze Log Analytics
W usłudze Application Insights Analytics wyjątki są wyświetlane w exceptions tabeli.
Jeśli próbkowanie jest wykonywane, itemCount właściwość pokazuje wartość większą niż 1. Na przykład itemCount==10 oznacza, że z 10 wywołań do trackException() metody, proces próbkowania przesłał tylko jedno z nich. Aby uzyskać prawidłową liczbę wyjątków segmentowanych według typu wyjątku, użyj kodu takiego jak:
exceptions
| summarize sum(itemCount) by type
Większość ważnych informacji o stosie jest już wyodrębniona do osobnych zmiennych, ale można rozłożyć strukturę details, aby uzyskać więcej informacji. Ponieważ ta struktura jest dynamiczna, należy przekształcić wynik na oczekiwany typ. Przykład:
exceptions
| extend method2 = tostring(details[0].parsedStack[1].method)
Aby skojarzyć wyjątki z powiązanymi żądaniami, użyj operacji łączenia:
exceptions
| join (requests) on operation_Id
TrackTrace
Użyj TrackTrace do diagnozowania problemów przez wysłanie "śladu nawigacyjnego" do usługi Application Insights. Fragmenty danych diagnostycznych można wysyłać i sprawdzać w wyszukiwaniu diagnostycznym.
Uwaga / Notatka
W języku Java agent java usługi Application Insights autokolektuje i wysyła dzienniki do portalu.
telemetry.trackTrace(message, SeverityLevel.Warning, properties);
Rejestrowanie zdarzenia diagnostycznego, takiego jak wprowadzanie lub opuszczanie metody.
| Parameter | Description |
|---|---|
message |
Dane diagnostyczne. Może być znacznie dłuższa niż nazwa. |
properties |
Mapa ciągu na ciąg. Więcej danych służy do filtrowania wyjątków w portalu. Wartości domyślne są puste. |
severityLevel |
Obsługiwane wartości: SeverityLevel.ts. |
Możesz wyszukiwać zawartość wiadomości, ale w przeciwieństwie do wartości właściwości, nie można jej filtrować.
Limit rozmiaru elementu message jest znacznie wyższy niż limit rozmiaru właściwości. Zaletą TrackTrace jest to, że można umieścić stosunkowo długie dane w komunikacie. Możesz na przykład zakodować tam dane POST.
Możesz również dodać stopień surowości do wiadomości. Podobnie jak inne dane telemetryczne, możesz dodać wartości właściwości, aby ułatwić filtrowanie lub wyszukiwanie różnych zestawów śladów. Przykład:
Map<String, Integer> properties = new HashMap<>();
properties.put("Database", db.ID);
telemetry.trackTrace("Slow Database response", SeverityLevel.Warning, properties);
W obszarze Wyszukiwanie można łatwo odfiltrować wszystkie komunikaty określonego poziomu ważności powiązanego z określoną bazą danych.
Ślady w usłudze Log Analytics
W usłudze Application Insights Analytics wywołania pojawiają się w tabeli TrackTrace.
Jeśli próbkowanie jest wykonywane, itemCount właściwość pokazuje wartość większą niż 1. Na przykład itemCount==10 oznacza, że z 10 wywołań do trackTrace() metody, proces próbkowania przesłał tylko jedno z nich. Aby uzyskać poprawną liczbę wywołań śledzenia, użyj kodu takiego jak traces | summarize sum(itemCount).
TrackDependency
Użyj wywołania , TrackDependency aby śledzić czasy odpowiedzi i wskaźniki powodzenia wywołań do zewnętrznego fragmentu kodu. Wyniki są wyświetlane na wykresach zależności w portalu. Poniższy fragment kodu musi zostać dodany wszędzie tam, gdzie jest wykonywane wywołanie zależności.
boolean success = false;
Instant startTime = Instant.now();
try {
success = dependency.call();
}
finally {
Instant endTime = Instant.now();
Duration delta = Duration.between(startTime, endTime);
RemoteDependencyTelemetry dependencyTelemetry = new RemoteDependencyTelemetry("My Dependency", "myCall", delta, success);
dependencyTelemetry.setTimeStamp(startTime);
telemetry.trackDependency(dependencyTelemetry);
}
Uwaga / Notatka
W języku Java wiele wywołań zależności można automatycznie śledzić przy użyciu agenta Java usługi Application Insights.
To wywołanie jest używane, jeśli chcesz śledzić wywołania, których automatyczne śledzenie nie przechwyci.
Zależności w usłudze Log Analytics
W usłudze Application Insights Analytics wywołania trackDependency są wyświetlane w dependencies tabeli.
Jeśli próbkowanie jest wykonywane, itemCount właściwość pokazuje wartość większą niż 1. Na przykład itemCount==10 oznacza, że z 10 wywołań do trackDependency() metody, proces próbkowania przesłał tylko jedno z nich. Aby uzyskać poprawną liczbę zależności segmentowanych według składnika docelowego, użyj kodu takiego jak:
dependencies
| summarize sum(itemCount) by target
Aby skojarzyć zależności z powiązanymi żądaniami, użyj sprzężenia:
dependencies
| join (requests) on operation_Id
Opróżnianie danych
Zwykle zestaw SDK wysyła dane w stałych odstępach czasu, zazwyczaj 30 sekund lub za każdym razem, gdy bufor jest pełny, czyli zazwyczaj 500 elementów. W niektórych przypadkach może być konieczne opróżnienie buforu. Przykładem jest użycie zestawu SDK w aplikacji, która zostanie zamknięta.
telemetry.flush();
//Allow some time for flushing before shutting down
Thread.sleep(5000);
Uwaga / Notatka
Java SDK automatycznie opróżnia dane podczas zamykania aplikacji.
Uwierzytelnieni użytkownicy
W aplikacji internetowej użytkownicy są domyślnie identyfikowani przez pliki cookie . Użytkownik może być liowany więcej niż raz, jeśli uzyskuje dostęp do aplikacji z innej maszyny lub przeglądarki lub jeśli usunie pliki cookie.
Jeśli użytkownicy logowali się do aplikacji, możesz uzyskać dokładniejszą liczbę, ustawiając uwierzytelniony identyfikator użytkownika w kodzie przeglądarki. Nie jest konieczne użycie rzeczywistej nazwy logowania użytkownika. Musi być tylko identyfikatorem unikatowym dla tego użytkownika. Nie może zawierać spacji ani znaków ,;=|.
Identyfikator użytkownika jest również ustawiany w pliku cookie sesji i wysyłany do serwera. Jeśli zestaw SDK serwera jest zainstalowany, uwierzytelniony identyfikator użytkownika jest wysyłany jako część właściwości kontekstu zarówno telemetrii klienta, jak i serwera. Następnie możesz filtrować i wyszukiwać.
Jeśli aplikacja grupuje użytkowników na kontach, możesz również przekazać identyfikator konta. Obowiązują te same ograniczenia znaków.
W Eksploratorze metryk można utworzyć wykres zliczający użytkowników, uwierzytelnione i konta użytkowników.
Możesz również wyszukać punkty danych klienta powiązane z określonymi nazwami użytkowników i kontami.
Filtrowanie, wyszukiwanie i segmentowanie danych przy użyciu właściwości
Właściwości i miary można dołączać do zdarzeń, metryk, widoków stron, wyjątków i innych danych telemetrycznych.
Właściwości to wartości ciągów, których można użyć do filtrowania danych telemetrycznych w raportach użycia. Jeśli na przykład aplikacja udostępnia kilka gier, możesz dołączyć nazwę gry do każdego wydarzenia, aby zobaczyć, które gry są bardziej popularne.
Istnieje ograniczenie długości ciągu do 8,192 znaków. Jeśli chcesz wysłać duże fragmenty danych, użyj parametru komunikatu .TrackTrace
Metryki to wartości liczbowe, które można przedstawiać graficznie. Na przykład możesz sprawdzić, czy występuje stopniowy wzrost wyników osiąganych przez graczy. Wykresy można podzielić na segmenty według właściwości, które są wysyłane ze zdarzeniem, aby można było uzyskać oddzielne lub skumulowane grafy dla różnych gier.
Wartości metryki powinny być większe lub równe 0, aby wyświetlić poprawnie.
Istnieją pewne ograniczenia dotyczące liczby właściwości, wartości właściwości i metryk , których można użyć.
Map<String, String> properties = new HashMap<String, String>();
properties.put("game", currentGame.getName());
properties.put("difficulty", currentGame.getDifficulty());
Map<String, Double> metrics = new HashMap<String, Double>();
metrics.put("Score", currentGame.getScore());
metrics.put("Opponents", currentGame.getOpponentCount());
telemetry.trackEvent("WinGame", properties, metrics);
Ważne
Upewnij się, że nie rejestrujesz informacji umożliwiających identyfikację w ustawieniach.
Ostrzeżenie
Nie używaj tego samego wystąpienia elementu telemetrii (event w tym przykładzie) do powtarzającego się wywoływania Track*(). Takie rozwiązanie może spowodować wysłanie danych telemetrycznych z nieprawidłową konfiguracją.
Niestandardowe pomiary i właściwości w usłudze Log Analytics
W usłudze Log Analytics metryki niestandardowe oraz właściwości są wyświetlane w atrybutach customMeasurements oraz customDimensions każdego rekordu telemetrii.
Jeśli na przykład dodasz właściwość o nazwie "game" do danych telemetrycznych żądania, to zapytanie zlicza wystąpienia różnych wartości "game" i wyświetla średnią metryki niestandardowej "score".
requests
| summarize sum(itemCount), avg(todouble(customMeasurements.score)) by tostring(customDimensions.game)
Zwróć uwagę, że:
- Podczas wyodrębniania wartości z JSON-a
customDimensionslubcustomMeasurementsma ona typ dynamiczny, więc należy ją rzutować natostringlubtodouble. - Aby wziąć pod uwagę możliwość próbkowania, użyj
sum(itemCount), a niecount().
Zdarzenia czasowe
Czasami chcesz utworzyć wykres czasu potrzebnego do wykonania akcji. Na przykład możesz chcieć wiedzieć, jak długo użytkownicy będą rozważać wybory w grze. Aby uzyskać te informacje, użyj parametru pomiaru.
long startTime = System.currentTimeMillis();
// Perform timed action
long endTime = System.currentTimeMillis();
Map<String, Double> metrics = new HashMap<>();
metrics.put("ProcessingTime", (double)endTime-startTime);
// Setup some properties
Map<String, String> properties = new HashMap<>();
properties.put("signalSource", currentSignalSource.getName());
// Send the event
telemetry.trackEvent("SignalProcessed", properties, metrics);
Domyślne właściwości niestandardowej telemetrii
Jeśli chcesz ustawić domyślne wartości właściwości dla niektórych zapisywanych zdarzeń niestandardowych, ustaw je w wystąpieniu TelemetryClient . Do każdego elementu telemetrii, który jest wysyłany z tego klienta, są one dołączone.
import com.microsoft.applicationinsights.TelemetryClient;
import com.microsoft.applicationinsights.TelemetryContext;
...
TelemetryClient gameTelemetry = new TelemetryClient();
TelemetryContext context = gameTelemetry.getContext();
context.getProperties().put("Game", currentGame.Name);
gameTelemetry.TrackEvent("WinGame");
Poszczególne wywołania telemetryczne mogą zastąpić wartości domyślne w słownikach właściwości.
Wyłączanie telemetrii
Aby dynamicznie zatrzymywać i uruchamiać zbieranie i przesyłanie danych telemetrycznych:
telemetry.getConfiguration().setTrackingDisabled(true);
Dynamiczny ciąg połączenia
Aby uniknąć mieszania danych telemetrycznych z środowisk programistycznych, testowych i produkcyjnych, możesz utworzyć oddzielne zasoby usługi Application Insights i zmienić ich parametry połączenia w zależności od środowiska.
Zamiast uzyskiwać parametry połączenia z pliku konfiguracji, można ustawić je w metodzie inicjowania kodu:
// Initialize once, e.g., at startup
TelemetryClient telemetry = new TelemetryClient();
// Prefer env var; falls back to hard-coded for illustration
String cs = System.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING");
if (cs != null && !cs.isEmpty()) {
telemetry.getContext().setConnectionString(cs);
}
TelemetriaContext
TelemetryClient ma właściwość Context, która zawiera wartości, które są wysyłane wraz ze wszystkimi danymi telemetrycznymi. Są one zwykle ustawiane przez standardowe moduły telemetryczne, ale można je również ustawić samodzielnie. Przykład:
telemetry.Context.Operation.Name = "MyOperationName";
Jeśli ustawisz dowolną z tych wartości samodzielnie, rozważ usunięcie odpowiedniego wiersza z ApplicationInsights.config , aby wartości i wartości standardowe nie były mylone.
- Składnik: aplikacja i jej wersja.
- Urządzenie: dane dotyczące urządzenia, na którym działa aplikacja. W aplikacjach internetowych jest to serwer lub urządzenie klienckie, z którego są wysyłane dane telemetryczne.
- InstrumentationKey: zasób usługi Application Insights na platformie Azure, na którym jest wyświetlana telemetria.
- Lokalizacja: lokalizacja geograficzna urządzenia.
-
Operacja: Bieżące żądanie HTTP w aplikacjach internetowych. W innych typach aplikacji można ustawić tę wartość na grupowanie zdarzeń.
- ID: wygenerowana wartość, która powiązuje różne zdarzenia, umożliwiając znalezienie powiązanych elementów podczas przeszukiwania diagnostycznego dowolnego zdarzenia.
- Nazwa: identyfikator, zazwyczaj adres URL żądania HTTP.
- Syntetyczne źródło: jeśli nie ma wartości null lub jest pusty, ciąg wskazujący, że źródło żądania zostało zidentyfikowane jako robot lub test internetowy. Domyślnie jest on wykluczony z obliczeń w Eksploratorze metryk.
- Sesja: sesja użytkownika. Identyfikator jest ustawiony na wygenerowaną wartość, która jest zmieniana, gdy użytkownik nie był aktywny przez jakiś czas.
- Użytkownik: informacje o użytkowniku.
Limits
Istnieją pewne limity liczby metryk i zdarzeń na aplikację, czyli na klucz instrumentacji. Ograniczenia zależą od wybranego planu cenowego.
| Resource | Limit domyślny | Maksymalny limit | Notatki |
|---|---|---|---|
| Łączna ilość danych na dzień | 100 GB | Skontaktuj się z pomocą techniczną. | Możesz ustawić limit w celu zmniejszenia ilości danych. Jeśli potrzebujesz więcej danych, możesz zwiększyć limit w portalu do 1000 GB. W przypadku pojemności większych niż 1000 GB wyślij wiadomość e-mail na AIDataCap@microsoft.comadres . |
| Throttling | 32 000 zdarzeń na sekundę | Skontaktuj się z pomocą techniczną. | Limit jest mierzony w ciągu minuty. |
| Dzienniki przechowywania danych | Od 30 do 730 dni | 730 dni | Ten zasób jest przeznaczony dla dzienników. |
| Metryki przechowywania danych | 90 dni | 90 dni | Ten zasób jest przeznaczony dla Eksploratora metryk. |
| Utrzymanie szczegółowych wyników wieloetapowego testu dostępności | 90 dni | 90 dni | Ten zasób zapewnia szczegółowe wyniki każdego kroku. |
| Maksymalny rozmiar elementu telemetrii | 64 KB | 64 KB | |
| Maksymalna liczba elementów telemetrii na partię | 64,000 | 64,000 | |
| Długość nazwy właściwości i metryki | 150 | 150 | Zobacz schematy typów. |
| Długość ciągu wartości właściwości | 8,192 | 8,192 | Zobacz schematy typów. |
| Długość komunikatu śladu i wyjątku | 32,768 | 32,768 | Zobacz schematy typów. |
| Liczba testów dostępności dla zasobu usługi Application Insights | 100 | 100 | |
| Liczba testów dostępności na grupę zasobów | 800 | 800 | Zobacz Azure Resource Manager |
| Maksymalna liczba przekierowań na test dostępności | 10 | 10 | |
| Minimalna częstotliwość testów dostępności | 300 sekund | Niestandardowe częstotliwości testów lub częstotliwości krótsze niż 5 minut wymagają niestandardowych implementacji TrackAvailability. | |
| Przechowywanie danych programu .NET Profiler i Snapshot Debugger | Dwa tygodnie | Skontaktuj się z pomocą techniczną. Maksymalny limit przechowywania wynosi sześć miesięcy. | |
| Dane profilera .NET wysyłane codziennie | Brak ograniczeń | Brak limitu. | |
| Snapshot Debugger dane wysyłane dziennie | 30 migawek dziennie na monitorowaną aplikację | Brak limitu. | Liczbę migawek zebranych na aplikację można modyfikować za pomocą konfiguracji. |
Aby uzyskać więcej informacji na temat cen i przydziałów, zobacz Rozliczenia usługi Application Insights.
Aby uniknąć osiągnięcia limitu szybkości danych, użyj próbkowania.
Aby określić, jak długo są przechowywane dane, zobacz Przechowywanie danych i prywatność.
Dalsze kroki
- Dodaj monitorowanie do stron internetowych , aby monitorować czasy ładowania stron, wywołania AJAX i wyjątki przeglądarki.
- Napisz niestandardowe dane telemetryczne , aby śledzić użycie w przeglądarce lub na serwerze.
- Usługa Log Analytics umożliwia wykonywanie zaawansowanych zapytań dotyczących danych telemetrycznych z aplikacji.
- Użyj wyszukiwania diagnostycznego.
- Rozważ próbkowanie jako alternatywę dla filtrowania, które nie powoduje niesymetryczności metryk.
- Aby dowiedzieć się więcej na temat mikrometru, zobacz dokumentację mikrometru.
- Aby dowiedzieć się więcej na temat platformy Spring na platformie Azure, zobacz dokumentację platformy Spring na platformie Azure.
- Aby uzyskać więcej informacji, zobacz Azure for Java developers (Platforma Azure dla deweloperów języka Java).