Sdílet prostřednictvím


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

Diagnostický nástroj Java na modulu plug-in AKS můžete použít k připojení diagnostického agenta Java k aplikaci Java spuštěné v kontejneru podů v clusteru Azure Kubernetes Service (AKS).

Po připojení agenta vám umožní provádět úlohy řešení potíží, jako je přidání protokolů kolem funkce třídy. Tento protokol můžete použít k otestování, jestli se funkce spustí, a k výpočtu celkového času stráveného ve funkci. Tato analýza vám může pomoct najít kritické body výkonu ve vaší aplikaci.

Konfigurace modulu plug-in se zobrazí na kartě Diagnostika. Tady můžete provádět následující úlohy:

  • 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í clusterů byste měli aktualizovat tabulku, aby se pody načetly v novém clusteru.

snímek obrazovky karty Diagnostika v IntelliJ IDEA.

Připojte agenta

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

Pokud chcete povolit připojení agenta v prostředí JVM, nezapomeňte do možností prostředí JVM přidat -XX:+DisableAttachMechanism.

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

Pokud chcete agenta připojit, klikněte na pod, ke kterého chcete agenta připojit, a 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 můžete použít 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 logování, klikněte na ni pravým tlačítkem v editoru 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

Pokud chcete odebrat všechny protokoly přidané agentem, vyberte Remove All AroundLogs.

Poznámka

Backendový agent Java je používán dočasným kontejnerem v podu. 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ý tuto funkci ještě nepovolil. K vypršení časového limitu může dojít, protože uzel musí nejprve načíst image agenta, což způsobuje zpoždění. Pokud k tomu dojde, můžete vybrat Aktualizovat a zkontrolovat, jestli je agent připojený, nebo můžete zkusit agenta připojit znovu.

Pokud se příloha nezdaří, můžete zkontrolovat protokol s názvem 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