Kom igång med Java Diagnostic Agent för AKS

Den här artikeln beskriver hur du kommer igång med javadiagnostikagenten. Det beskriver även Java Diagnostic Tool i AKS-pluginet för IntelliJ IDEA.

Java Diagnostic Agent är en Java-agent för felsökning av en Java-process. Den behöver inte återskapa, distribuera om eller starta om ett program. För närvarande har den stöd för att lägga till loggar runt en funktion i en Java-klass. När funktionen anropas skrivs loggen ut tillsammans med en beräkning av den totala tid som används av funktionen.

Förutsättningar

Upprätta portvidarebefordring

Använd följande kommando för att upprätta portvidarebefordring till agenttjänsten:

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

Använd Java Diagnostic Tool i AKS-plugin för IntelliJ IDEA

Använd Java Diagnostic Tool i AKS-plugin-programmet för att koppla Java Diagnostic Agent till Java-programmet som körs i en poddcontainer i ett Azure Kubernetes Service (AKS) kluster.

När du har bifogat agenten kan du felsöka genom att lägga till loggar runt en klassfunktion. Använd den här loggen för att testa om funktionen körs och för att beräkna den totala tiden i funktionen. Den här analysen kan hjälpa dig att hitta prestandaflaskhalsar i ditt program.

Fliken Diagnostik visar plugin-konfigurationen. Här kan du:

  • Konfigurera den lokala port som vidarebefordras till agenttjänsten.
  • Visa poddarna som visas med kubeconfig i din lokala miljö.
  • Välj Uppdatera för att uppdatera poddtabellen. När du har bytt kluster uppdaterar du tabellen för att läsa in poddarna i det nya klustret.

Skärmbild av fliken IntelliJ IDEA-diagnostik.

Koppla agenten

Poddcontainern måste ha en /tmp-mapp och den måste ha skrivbehörighet till mappen /tmp .

För att möjliggöra att agenten bifogas i JVM lägger du inte till -XX:+DisableAttachMechanism i JVM-alternativen.

Diagnostikservern i bakgrunden stängs efter 6 timmar.

Om du vill koppla agenten väljer du den podd som du vill koppla agenten till och väljer sedan containern. Du kan bara koppla agenten till en container i podden. Vänta sedan tills bifogningsprocessen är avslutad.

Skärmbild av IntelliJ IDEA som visar fliken Diagnostik med dialogrutan Containerval öppen.

Ange den aktiva podcontainern

När du har anslutit agenten använder du den för felsökning.

Flera poddar kan ha injicerat agenten, så du måste ange en aktiv pod. Högerklicka på en pod på fliken Diagnostik i IntelliJ IDEA och välj sedan Markera som aktiv.

Skärmbild av fliken IntelliJ IDEA-diagnostik med en pod markerad och menyalternativet 'Välj som aktivt' visas.

Lägga till loggning runt en klassfunktion

Den konfigurerade loggen tas bort automatiskt efter 30 minuter.

Du kan använda verktyget för att lägga till loggning runt klassfunktioner, men inte gränssnitt, konstruktorer och så vidare.

Om du vill lägga till loggning i en funktion högerklickar du på den i redigeraren och väljer sedan Java Diagnostic>Add AroundLog, som du ser i följande skärmbild.

Skärmbild av IntelliJ IDEA som visar snabbmenyn som öppnats för en funktion med menyalternativet Lägg till AroundLog markerat.

I det här exemplet när du har lagt till loggningen kan du anropa <host>/infor för att se utdata som liknar följande exempel före och efter att funktionen anropas:

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

Ta bort alla konfigurerade loggar

Om du vill ta bort alla loggar som agenten lägger till väljer du Ta bort alla runtloggar.

Not

En tillfällig container i podden använder den backend-Java-agenten. När podden har startats om tas agenten bort.

Felsökning

En timeout kan inträffa när du försöker koppla agenten till en podd som körs på en nod som inte redan är aktiverad för funktionen. Tidsgränsen inträffar eftersom noden först måste hämta agentbilden, vilket orsakar en fördröjning. När den här fördröjningen inträffar väljer du Uppdatera för att kontrollera om agenten är ansluten eller försöker ansluta agenten igen.

Om anslutningen misslyckas, kontrollera loggen som heter diagnostic-container-<hashcode> i den tillfälliga containern.

Du hittar information om plugin-programmets åtgärder i loggarna under poddcontainern med namnet diag4j-agent-service-<hashcode>.

Nästa steg

Kom igång med Spring Boot Admin-komponenten i Java Diagnostic Tool (diag4j) på AKS