Začínáme s diagnostickým agentem Java

Tento článek popisuje, jak začít používat diagnostického agenta Java. Popisuje také Nástroj pro diagnostiku Javy v modulu plug-in AKS pro IntelliJ IDEA.

Diagnostický agent Java je agent Javy pro řešení potíží s procesem Javy. Není potřeba znovu sestavit, znovu nasadit ani restartovat aplikaci. V současné době podporuje přidávání protokolů kolem funkce ve třídě Java. Při zavolání funkce se protokol vytiskne spolu s výpočtem celkové doby spotřebované funkcí.

Požadavky

Nastavit přesměrování portů

Pomocí následujícího příkazu nastavte přesměrování portů do služby agenta:

kubectl port-forward svc/diag4j-agent-service -n <namespace> <port>:8080

Použití diagnostického nástroje Java na modulu plug-in AKS pro IntelliJ IDEA

Pomocí nástroje pro diagnostiku Java na modulu plug-in AKS připojte agenta diagnostiky Java k aplikaci Java spuštěné v kontejneru podů v clusteru Azure Kubernetes Service (AKS).

Po připojení agenta můžete řešit potíže přidáním protokolů kolem funkce třídy. Tento záznam použijte k otestování, zda se funkce spustí, a k výpočtu celkové doby strávené v této funkci. Tato analýza vám může pomoct najít kritické body výkonu ve vaší aplikaci.

Na kartě Diagnostika se zobrazuje konfigurace modulu plug-in. Tady můžete:

  • Nakonfigurujte místní port, který přesměrovává na službu agenta.
  • Prohlédněte si pody označené jako kubeconfig ve vašem lokálním prostředí.
  • Zvolte Obnovit pro aktualizaci tabulky podů. Po přepnutí clusteru aktualizujte tabulku, aby se načetly pody z nového clusteru.

snímek obrazovky karty Diagnostika v IntelliJ IDEA.

Připojte agenta

Kontejner podů musí mít složku /tmp a musí mít oprávnění k zápisu do složky /tmp .

Pokud chcete povolit připojení agenta v prostředí JVM, nepřidávejte -XX:+DisableAttachMechanism do možností JVM.

Back-endový diagnostický server se po 6 hodinách zavře.

Pokud chcete agenta připojit, vyberte pod, ke kterého chcete agenta připojit, a pak vyberte kontejner. Agenta můžete připojit pouze k jednomu kontejneru v podu. Pak počkejte na dokončení procesu připojování.

snímek obrazovky IntelliJ IDEA, který zobrazuje kartu Diagnostika s otevřeným dialogem Výběr kontejneru.

Nastavení aktivního kontejneru podů

Po úspěšném připojení agenta ho použijte k řešení potíží.

Do agenta se možná vložil více podů, takže musíte nastavit aktivní pod. V IntelliJ IDEA na kartě Diagnostic klikněte pravým tlačítkem na pod a potom vyberte Vybrat jako aktivní.

Snímek obrazovky karty Diagnostika IntelliJ IDEA s vybraným podem a zobrazenou položkou nabídky

Přidání protokolování kolem funkce třídy

Nakonfigurovaný protokol se po 30 minutách automaticky odebere.

Nástroj můžete použít k přidání protokolování kolem funkcí třídy, ale ne rozhraní, konstruktorů atd.

Pokud chcete do funkce přidat protokolování, klikněte na ni v editoru pravým tlačítkem myši a pak vyberte Java Diagnostic>Add AroundLog, jak je znázorněno na následujícím snímku obrazovky.

Snímek obrazovky z IntelliJ IDEA, který zobrazuje místní nabídku otevřenou pro funkci s zvýrazněnou možností nabídky Přidat kolem logu.

V tomto příkladu, po přidání protokolování, můžete volat <host>/infor, abyste zobrazili výstup podobný následujícímu příkladu před a po zavolání funkce:

===== START ===== Method: updateInformation Start Time: 2024-12-12T07:37:55.404107848Z
Done with the validation
Done with the DB access
Done with the data filtering
===== END ===== Method: updateInformation End Time: 2024-12-12T07:37:55.404316940Z Total Time: 0 milliseconds

Odstraňte všechny nakonfigurované protokoly

Chcete-li odstranit všechny logy, které agent přidává, vyberte Odebrat všechny AroundLogs.

Poznámka

Dočasný kontejner v podu používá back-endový Java agent. Po restartování podu se agent odebere.

Řešení problémů

K vypršení časového limitu může dojít, když se pokusíte připojit agenta k podu spuštěném na uzlu, který pro tuto funkci ještě není povolený. K vypršení časového limitu dochází, protože uzel nejprve potřebuje načíst image agenta, což způsobuje zpoždění. Pokud dojde k tomuto zpoždění, vyberte Aktualizovat a zkontrolujte, jestli je agent připojený, nebo zkuste agenta připojit znovu.

Pokud se příloha nezdaří, zkontrolujte protokol pojmenovaný diagnostic-container-<hashcode> v dočasném kontejneru.

Informace o operacích modulu plug-in najdete v protokolech v kontejneru podů s názvem diag4j-agent-service-<hashcode>.

Další krok

Začínáme s komponentou Spring Boot Admin diagnostického nástroje Java (diag4j) v AKS