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
diag4j je nainstalované ve vašem clusteru.
Java LTS verze 11, 17 nebo 21.
Plugin IntelliJ IDEA , nainstalovaný místně prostřednictvím Nastavení >Pluginy>Instalovat plugin z disku.
Aplikace v Javě pro řešení potíží Další informace najdete v tématu Nasazení aplikace Spring Boot do služby Azure Kubernetes Service.
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.
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í.
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í.
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.
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