Megosztás a következőn keresztül:


A Java diagnosztikai ügynök használatának első lépései

Ez a cikk a Java diagnosztikai ügynök használatának első lépéseit ismerteti. Emellett az IntelliJ IDEA AKS-beépülő moduljának Java Diagnosztikai eszközét is ismerteti.

A Java diagnosztikai ügynök Egy Java-folyamat hibaelhárítására szolgáló Java-ügynök. Nem kell újraépítenie, újra üzembe helyeznie vagy újraindítania egy alkalmazást. Jelenleg támogatja a naplók hozzáadását egy Java-osztály egy függvénye köré. A függvény meghívásakor a rendszer kinyomtatja a naplót a függvény által felhasznált teljes idő kiszámításával együtt.

Előfeltételek

Porttovábbítás létrehozása

Az alábbi paranccsal hozzon létre porttovábbítást az ügynökszolgáltatáshoz:

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

A Java Diagnosztikai eszköz használata az IntelliJ IDEA AKS beépülő modulján

Az AKS bővítmény Java Diagnosztikai Eszközét használhatja a Java Diagnosztikai Ügynök csatlakoztatására egy Azure Kubernetes Service-fürt podjában futó Java-alkalmazáshoz.

Az ügynök csatolása után hibaelhárítási feladatokat hajthat végre, például naplókat adhat hozzá egy osztályfüggvényhez. Ezzel a naplóval tesztelheti, hogy a függvény végrehajtásra kerül-e, és kiszámítja a függvényben töltött teljes időt. Ez az elemzés segíthet megtalálni a teljesítmény szűk keresztmetszeteit az alkalmazásban.

A beépülő modul konfigurációja megjelenik a Diagnosztikai lapon. Itt a következő feladatokat végezheti el:

  • Állítsa be a helyi portot, amely az ügyfélszolgáltatáshoz továbbít.
  • Tekintse meg a kubeconfig-ként felsorolt podokat a helyi környezetben.
  • Válassza a Frissítés lehetőséget a podtábla frissítéséhez. A fürtök váltása után frissítenie kell a táblát, hogy betöltse a podokat az új fürtbe.

Képernyőkép az IntelliJ IDEA Diagnosztikai lapról.

Az ügynök csatolása

A podtárolónak rendelkeznie kell egy /tmp mappával, és írási engedéllyel kell rendelkeznie a /tmp mappához.

Az ügynök csatolásának engedélyezéséhez a JVM-ben, győződjön meg arról, hogy nem adja hozzá a -XX:+DisableAttachMechanism-t a JVM-beállításokhoz.

A háttérdiagnosztikai kiszolgáló 6 óra elteltével bezárul.

Az ügynök csatolásához kattintson arra a podra, amelyhez csatolni szeretné az ügynököt, majd válassza ki a tárolót. Az ügynököt csak egy tárolóhoz csatolhatja a podban. Ezután várja meg, amíg a csatolás befejeződik.

Képernyőkép az IntelliJ IDEA-ról, amely a Diagnosztika lapot jeleníti meg, és meg van nyitva a Tároló kiválasztása párbeszédpanel.

Az aktív podtároló beállítása

Miután sikeresen csatlakoztatta az ügynököt, hibaelhárításra használhatja.

Több pod telepíthette az ügynököt, ezért ki kell jelölnie egy aktív podot. Az IntelliJ IDEA-ban a Diagnosztikai lapon kattintson a jobb gombbal egy podra, majd válassza a Aktívként kijelöléslehetőséget.

Képernyőkép az IntelliJ IDEA Diagnosztikai lapról, amelyen ki van jelölve egy pod, és megjelenik a

Naplózás hozzáadása egy osztályfüggvényhez

A konfigurált napló 30 perc elteltével automatikusan törlődik.

Az eszközzel naplózhatja az osztályfüggvényeket, de nem az interfészeket, konstruktorokat stb.

Ha naplózást szeretne hozzáadni egy függvényhez, kattintson rá a jobb gombbal a szerkesztőben, majd válassza Java Diagnostic>AroundLoghozzáadása lehetőséget, ahogyan az alábbi képernyőképen látható.

Képernyőkép az IntelliJ IDEA-ról, amely egy függvényhez megnyitott helyi menüt jeleníti meg, kiemelve a AroundLog hozzáadása menüpontot.

Ebben a példában a naplózás hozzáadása után meghívhatja <host>/infor, hogy a függvény meghívása előtt és után az alábbi példához hasonló kimenet jelenik meg:

===== 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

Az összes konfigurált napló eltávolítása

Az ügynök által hozzáadott összes napló eltávolításához válassza a Minden körnapló eltávolításalehetőséget.

Jegyzet

A háttérbeli Java-ügynököt egy rövid élettartamú tároló használja a podban. A pod újraindítása után az ügynök el lesz távolítva.

Hibaelhárítás

Időtúllépés akkor fordulhat elő, ha megpróbálja csatolni az ügynököt egy olyan csomóponton futó podhoz, ahol a funkció még nincs engedélyezve. Az időtúllépés azért fordulhat elő, mert a csomópontnak először le kell kérnie az ügynök lemezképét, ez pedig késést okoz. Ha ez történik, a Frissítés lehetőséget választva ellenőrizheti, hogy az ügynök csatlakoztatva van-e, vagy megpróbálkozhat az ügynök ismételt csatlakoztatásával.

Ha a melléklet meghiúsul, ellenőrizheti a diagnostic-container-<hashcode> nevű naplót az átmeneti tárolóban.

A beépülő modul működésével kapcsolatos információkat a diag4j-agent-service-<hashcode>nevű podtároló naplóiban találja.

Következő lépés

Ismerkedés a Java diagnosztikai eszköz (diag4j) Spring Boot Adminisztrációs összetevőjével az AKS-en