Usługa Application Insights dla języka Java 2.x
Przestroga
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 artykule 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 wyjaśniono, jak:
- 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ć, co użytkownicy robią z aplikacją.
- Wysyłanie dzienników śledzenia do usługi Application Insights i eksplorowanie ich przy użyciu portalu usługi Application Insights.
- Monitorowanie zależności, przechwyconych wyjątków i czasów 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
. - Metryki miar dla kodu aplikacji opartego na maszynie wirtualnej Java (JVM). Wyeksportuj dane do ulubionych systemów monitorowania przy użyciu monitorowania aplikacji Micrometer.
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.
Wprowadzenie do usługi Application Insights w projekcie sieci Web w języku 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 jest rozszerzalną usługą analizy dla deweloperów sieci Web, która ułatwia zrozumienie wydajności i użycia aktywnej aplikacji. Usługa Application Insights obsługuje aplikacje w języku Java działające w systemach Linux, Unix lub Windows.
Wymagania wstępne
Potrzebne elementy:
- Konto platformy Azure z aktywną subskrypcją. Możesz bezpłatnie utworzyć konto.
- Działająca aplikacja Java.
Uzyskiwanie klucza instrumentacji usługi Application Insights
Zaloguj się w witrynie Azure Portal.
W witrynie Azure Portalutwórz zasób usługi Application Insights. Jako typ aplikacji ustaw wartość Aplikacja internetowa Java.
Znajdź klucz instrumentacji nowego zasobu. Wkrótce będzie trzeba wkleić ten klucz do projektu kodu.
Dodawanie zestawu SDK usługi Application Insights dla środowiska Java do projektu
Wybierz typ projektu.
Jeśli projekt został już skonfigurowany do używania narzędzia Maven do kompilacji, scal następujący kod z plikiem pom.xml . Następnie odśwież zależności projektu, aby pliki binarne zostały pobrane.
<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>
Często zadawane pytania
Jaka jest relacja między składnikami
-web-auto
,-web
i-core
?-
applicationinsights-web-auto
Udostę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-web
Udostę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-core
Udostę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 środowiska Java 3.x usługi Application Insights. 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 uzyskanym 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 z właściwością -Dapplicationinsights.configurationDirectory="E:\myconfigs\appinsights"
.
- Klucz instrumentacji jest wysyłany wraz z każdym elementem telemetrii i dzięki temu te elementy mogą być wyświetlane dla odpowiedniego zasobu usługi Application Insights.
- Składnik żądań HTTP jest opcjonalny. Powoduje automatyczne wysyłanie telemetrii dotyczącej żądań i czasów odpowiedzi do portalu.
- Korelacja zdarzenia jest dodatkiem do składnika żądań 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 ustawienia klucza instrumentacji
Zestaw SDK usługi Application Insights szuka klucza w następującej kolejności:
- Właściwość systemu: -DAPPINSIGHTS_INSTRUMENTATIONKEY=your_ikey
- Zmienna środowiskowa: APPINSIGHTS_INSTRUMENTATIONKEY
- Plik konfiguracji: ApplicationInsights.xml
Możesz również ustawić klucz w kodzie:
String instrumentationKey = "00000000-0000-0000-0000-000000000000";
if (instrumentationKey != null)
{
TelemetryConfiguration.getActive().setInstrumentationKey(instrumentationKey);
}
Dodawanie agenta
Zainstaluj agenta Java, aby przechwytywać 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 telemetrii w usłudze Application Insights
Wróć do zasobu usługi Application Insights w Azure Portal.
Dane żądań HTTP są wyświetlane w okienku przeglądu. Jeśli tak nie jest, zaczekaj kilka sekund, a następnie wybierz pozycję Odśwież.
Dowiedz się więcej o metrykach.
Klikaj elementy wykresów, aby wyświetlać bardziej szczegółowe metryki zagregowane.
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, zezwól użytkownikom na korzystanie z niej i obejrzyj dane telemetryczne wyświetlane w portalu.
Upewnij się, że zapora pozwala aplikacji na wysłanie telemetrii do tych 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.proxyHost
systemowe ihttp.proxyPort
.Na serwerach systemu Windows zainstaluj:
Pakiet redystrybucyjny Microsoft Visual C++
Ten składnik umożliwia liczniki wydajności.
Azure App Service, Azure Kubernetes Service, konfiguracja maszyn wirtualnych
Najlepszym i najłatwiejszym podejściem do monitorowania aplikacji działających u dowolnego dostawcy zasobów platformy Azure jest użycie usługi Application Insights w języku 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 zbierać 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 w celu rejestrowania określonych metod wewnętrznych i wywołań wykonanych za pośrednictwem sterownika JDBC, z danymi chronometrażu i nazewnictwa operacji automatycznych.
Ś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 definiowana w pliku AI-Agent.xml .
Liczniki wydajności
Wybierz pozycję Zbadaj>metryki , aby wyświetlić zakres liczników wydajności.
Dostosowywanie zbierania danych 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 dodatkowych liczników wydajności
Można określić więcej liczników wydajności do zebrania.
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 pobrania. -
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 są w formacie wiersza tabeli.
Liczniki wydajności systemu Windows
Każdy licznik wydajności systemu Windows jest składową kategorii (w taki sam sposób, w jaki pole jest składową 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 jedno wystąpienie. JeślicategoryName
element toProcess
i licznik wydajności, który chcesz zebrać, pochodzi z bieżącego procesu JVM, na którym działa aplikacja, określ wartość"__SELF__"
.
Liczniki wydajności sytemu Unix
Zainstaluj zebrane za pomocą wtyczki usługi 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 telemetrię do stron sieci Web, aby monitorować wyświetlenia stron i metryki użytkowników.
- Konfigurowanie testów sieci Web, aby upewnić się, że aplikacja stale działa i odpowiada.
Wysyłanie własnej telemetrii
Po zainstalowaniu zestawu SDK możesz użyć interfejsu API do wysyłania własnych danych telemetrycznych:
- Śledź niestandardowe zdarzenia i metryki, aby dowiedzieć się, jak użytkownicy korzystają z aplikacji.
- Wyszukiwanie zdarzeń i dzienników, aby łatwiej diagnozować problemy.
Testy dostępności sieci Web
Usługa Application Insights może służyć do testowania witryny sieci Web w regularnych odstępach czasu, aby sprawdzić, czy witryna działa i odpowiada poprawnie.
Dowiedz się więcej o sposobie konfigurowania testów sieci Web dostępności.
Rozwiązywanie problemów
Zobacz dedykowany artykuł dotyczący rozwiązywania problemów.
Testowanie łączności między hostem aplikacji a usługą pozyskiwania
Zestawy SDK usługi Application Insights i agenci wysyłają dane telemetryczne w celu pozyskania ich jako wywołań REST do naszych punktów końcowych pozyskiwania. Możesz przetestować łączność z serwera internetowego lub maszyny hosta aplikacji do punktów końcowych usługi pozyskiwania przy użyciu pierwotnych 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ć.
Porada
Musisz ustawić klucz instrumentacji usługi Application Insights tylko raz dla aplikacji. Jeśli używasz platformy takiej jak Java Spring, być może klucz został już zarejestrowany w innej lokalizacji w 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 wyższym.
Próg rejestrowania przechwyconego można zmienić przy użyciu 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>
Alternatywy
Zamiast korzystać z agenta 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.
Dodawanie bibliotek rejestrowania do projektu
Wybierz odpowiedni sposób dla danego 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 pliki binarne zostały pobrane.
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 pliki binarne zostały pobrane.
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.+'
Korzystanie z 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
link w sekcji pobierania dla odpowiedniego dołączania. Dodaj pobrany plik jar appender do projektu.
Rejestratora | Pobierz | Biblioteka |
---|---|---|
Logback | Plik Jar dołączania logback | applicationinsights-logging-logback |
Log4J, wersja 2.0 | Log4J v2 appender Jar | applicationinsights-logging-log4j2 |
Log4j v1.2 | Log4J v1.2 appender Jar | applicationinsights-logging-log4j1_2 |
Dodawanie dołączania do struktury 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 v2.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łączanie usługi Application Insights można odwoływać się do dowolnego skonfigurowanego rejestratora i niekoniecznie przez główny rejestrator, jak pokazano w poprzednich przykładach kodu.
Eksplorowanie śladów w portalu usługi Application Insights
Po skonfigurowaniu projektu w celu wysyłania śladów do usługi Application Insights możesz wyświetlać te ślady i przeszukiwać je w portalu usługi Application Insights w okienku Wyszukiwania .
Wyjątki przesyłane za pośrednictwem rejestratorów będą wyświetlane w portalu jako dane telemetryczne wyjątków .
Monitorowanie zależności, przechwyconych wyjątków i czasów wykonywania metody w aplikacjach internetowych Java
Jeśli instrumentujesz aplikację internetową Java przy użyciu zestawu SDK usługi Application Insights, możesz użyć agenta Java, aby uzyskać 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
metody ,OkHttp
ijava.net.HttpURLConnection
są przechwytywane. - Wywołania usługi Redis: połączenia wykonywane za pośrednictwem klienta Jedis są przechwytywane.
- Zapytania JDBC: w przypadku programów 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 za pomocą żądań HTTP i innych danych telemetrycznych:
- Log4j 1.2
- Log4j2
- Rejestrowanie zwrotne
Lepsze nazewnictwo operacji: służy do agregacji żądań w portalu.
-
Spring: na podstawie elementu
@RequestMapping
. -
JAX-RS: na podstawie elementu
@Path
.
-
Spring: na podstawie elementu
Aby użyć agenta 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 używana wersja agenta Java 2.x jest zgodna z wersją używanego zestawu SDK Java usługi Application Insights 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. Edytuj 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 konfiguracji (Spring Boot)
java -javaagent:/path/to/agent.jar -jar path/to/TestApp.jar
Aby uzyskać 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 był on wyświetlany w katalogu D:/home/site/wwwroot/ . Aby potwierdzić, że agent znajduje się w poprawnym katalogu App Service, przejdź do pozycjiNarzędzia programistyczne Advanced Tools>>Debug Console i sprawdź zawartość katalogu lokacji.
-
Klucz:
Zapisz ustawienia i uruchom ponownie aplikację. Te kroki dotyczą tylko usług aplikacji działających w systemie Windows.
Uwaga
AI-Agent.xml i plik jar agenta powinien znajdować się w tym samym folderze. Są one często umieszczane razem w folderze /resources projektu.
Włączanie śledzenia rozproszonego 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
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 przejście do nowszych wersji zestawów SDK z obsługą W3C tak szybko, jak to możliwe.
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 w kafelku Wydajność są wyświetlane zagregowane czasy wykonywania zależności zdalnej i metody.
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. Istnieją pewne gotowe filtry, których można użyć. Możesz również napisać własne filtry niestandardowe.
Filtry gotowe do użycia 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 zareagowała.
- Określone nazwy zdarzeń.
Uwaga
Filtruje niesymetryczność metryk aplikacji. Na przykład możesz zdecydować, że 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, użyj zamiast tego opcji Próbkowanie .
Ustawianie filtrów
W ApplicationInsights.xmldodaj sekcję podobną TelemetryProcessors
do tego przykładu:
<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.
Wbudowane filtry
W tej sekcji omówiono wbudowane filtry, które są dostępne.
Filtr telemetrii metryk
<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ż w tym czasie 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ą "stronę główną" w adresie URL.
Filtr telemetrii żądania
<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 we SyntheticSource
właściwości. 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 śledzenia telemetrii
Filtruje ślady dzienników rejestrowane przy użyciu funkcji TrackTrace() lub modułu zbierającego struktury rejestrowania:
<Processor type="TraceTelemetryFilter">
<Add name="FromSeverityLevel" value="ERROR"/>
</Processor>
Prawidłowe
FromSeverityLevel
wartości to:- WYŁĄCZONE: filtruje wszystkie ślady.
- TRACE: Brak filtrowania. Równa się poziomowi TRACE.
- INFORMACJE: Filtruje poziom ŚLEDZENIA.
- OSTRZEGAJ: Filtruje dane TRACE i INFO.
- BŁĄD: Filtruje ostrzeżenie, INFORMACJE i ŚLAD.
- KRYTYCZNE: filtruje wszystkie, ale KRYTYCZNE.
Filtry niestandardowe
W poniższych sekcjach przedstawiono kroki tworzenia własnych filtrów niestandardowych.
Koduj filtr
W kodzie utwórz klasę, która implementuje TelemetryProcessor
element :
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 strukturze Spring niestandardowe procesory telemetryczne muszą być zarejestrowane w głównej klasie aplikacji jako fasola. Po uruchomieniu aplikacji zostaną one automatycznie uruchomione.
@Bean
public TelemetryProcessor successFilter() {
return new SuccessFilter();
}
Możesz utworzyć własne parametry filtru w pliku application.properties
. Następnie użyjesz zewnętrznej struktury konfiguracji platformy Spring Boot, aby przekazać te parametry do filtru niestandardowego.
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 od konstruktora lub metody zestawu, zostanie zignorowany.
zebrane: 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 zebraną razem z wtyczką usługi Application Insights. To rozwiązanie typu open source zbiera różne statystyki systemowe i sieciowe.
Zazwyczaj będziesz używać 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.
Uzyskiwanie klucza instrumentacji
W 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.
Instalacja zebrana i wtyczka
Na maszynach z serwerem z systemem Linux:
- Zainstaluj zebraną wersję 5.4.0 lub nowszą.
- Pobierz wtyczkę modułu zapisywania zebranego przez usługę Application Insights. Zanotuj numer wersji.
- Skopiuj plik jar wtyczki do
/usr/share/collectd/java
pliku . - Edytuj
/etc/collectd/collectd.conf
:Upewnij się, że wtyczka Java jest włączona.
Zaktualizuj element JVMArg,
java.class.path
aby uwzględnić następujący plik jar. Zaktualizuj numer wersji, aby był zgodny z pobranym numerem wersji:/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 instrukcją.
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 zobaczyć 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>
pliku dodaj wiersze dyrektywy, takie jak te w poniższej tabeli:Dyrektywy Efekt Exclude disk
Wyklucz wszystkie dane zebrane przez wtyczkę disk
.Exclude disk:read,write
Wyklucz źródła o nazwie read
iwrite
zdisk
wtyczki.
Oddzielne dyrektywy z nową linią.
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 przybył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 wtyczki usługi Application Insights. Dodaj ten wiersz w pliku
<Plugin ApplicationInsightsWriter>
:SDKLogger true
- Otwórz terminal i uruchom
collectd
w trybie pełnym, aby zobaczyć wszelkie problemy, które zgłasza:sudo collectd -f
Znany problem
Wtyczka zapisu usługi Application Insights jest niezgodna z niektórymi wtyczkami odczytu. Niektóre wtyczki czasami wysyłają NaN
element , ale wtyczka usługi Application Insights oczekuje numeru zmiennoprzecinkowego.
-
Objaw: Dziennik pokazuje błędy, które obejmują "Sztuczna
collectd
inteligencja: ... SyntaxError: Nieoczekiwany token N. - Obejście: Wyklucz dane zebrane przez wtyczkę zapisu problemu.
Używanie mikrometru z zestawem JAVA SDK usługi Application Insights (niezalecane)
Metryki monitorowania aplikacji mikrometrów dla kodu aplikacji opartego na maszynie JVM umożliwiają eksportowanie danych do ulubionych systemów monitorowania. W tej sekcji pokazano, jak używać mikrometrów 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 :
- Usługa Application Insights spring-boot-starter 2.5.0 lub nowsza.
- Micrometer Azure Registry 1.1.0 lub nowsza.
- Micrometer Spring Starsza wersja 1.1.0 lub nowsza. Przywraca kod autokonfiguracji w strukturze Spring.
- Zasób usługi ApplicationInsights.
Wykonaj następujące 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ą.
Poprzednie kroki powinny zostać uruchomione z automatycznie zagregowanymi metrykami zagregowanymi do usługi Azure Monitor.
Korzystanie z platformy Spring 2.x
Dodaj następujące zależności do pliku pom.xml lub build.gradle :
- Application Insights Spring-boot-starter 2.1.2 lub nowszy
- Azure-spring-boot-metrics-starters 2.0.7 lub nowszy
- Zasób usługi Application Insights
Wykonaj następujące kroki:
Zaktualizuj plik pom.xml aplikacji Spring Boot i dodaj w nim 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ą.
Poprzednie kroki powinny zostać uruchomione z automatycznie zagregowanymi metrykami zagregowanymi do usługi Azure Monitor. Aby uzyskać więcej informacji na temat dostosowywania szablonu startowego Spring Boot usługi Application Insights, zobacz readme w witrynie GitHub.
Metryki domyślne:
- Automatycznie skonfigurowane metryki dla oprogramowania 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 fasoli:
-
CacheMetrics
(CaffeineCache
,EhCache2
,GuavaCache
,HazelcastCache
iJCache
) DataBaseTableMetrics
HibernateMetrics
JettyMetrics
- Metryki platformy
OkHttp3
- Metryki platformy
Kafka
-
Wyłącz automatyczne zbieranie metryk:
- Metryki maszyny wirtualnej JVM:
management.metrics.binders.jvm.enabled=false
- Metryki powrotu dzienników:
management.metrics.binders.logback.enabled=false
- Metryki czasu pracy:
management.metrics.binders.uptime.enabled=false
- Metryki procesora:
management.metrics.binders.processor.enabled=false
- FileDescriptorMetrics:
management.metrics.binders.files.enabled=false
- Hystrix Metrics if library on
classpath
:management.metrics.binders.hystrix.enabled=false
- Metryki aspektu, jeśli biblioteka w systemie
classpath
:spring.aop.enabled=false
Uwaga
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 :
- Usługa Application Insights Web Auto 2.5.0 lub nowsza
- Micrometer Azure Registry 1.1.0 lub nowsza
- Zasób usługi Application Insights
Wykonaj następujące 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ę mikrometrów.
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 pamięci podręcznej Guava:
@Bean
GuavaCacheMetrics guavaCacheMetrics() {
Return new GuavaCacheMetrics();
}
Kilka metryk nie jest domyślnie włączonych, ale może być powiązanych z poprzednią modą. 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);
Następne kroki
- Dodaj monitorowanie do stron internetowych, aby monitorować czasy ładowania stron, wywołania AJAX i wyjątki przeglądarki.
- Zapisywanie niestandardowych danych telemetrycznych w celu śledzenia użycia 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).