Dela via


Kom igång med Java Diagnostic Agent

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

Du kan använda 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 AKS-kluster (Azure Kubernetes Service).

När du har bifogat agenten kan du utföra felsökningsuppgifter som att lägga till loggar runt en klassfunktion. Du kan använda 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.

Plugin-konfigurationen visas på fliken Diagnostik. Här kan du utföra följande uppgifter:

  • 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 ska du uppdatera tabellen för att ladda in poddarna i det nya klustret.

Skärmbild av fliken IntelliJ IDEA-diagnostik.

Koppla agenten

Poddcontainern ska ha en /tmp- mapp och den bör ha skrivbehörighet till mappen /tmp.

Om du vill aktivera anslutning av agenten i JVM måste du inte lägga till -XX:+DisableAttachMechanism till JVM-alternativen.

Diagnosservern på backend stängs efter 6 timmar.

Om du vill koppla agenten klickar du på 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 kan du använda 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, enligt 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 lagts till av agenten väljer du Ta bort alla aroundLogs-.

Not

Serverdelens Java-agent används av en tillfällig container i podden. 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 har aktiverat funktionen. Tidsgränsen kan inträffa eftersom noden först måste hämta agentbilden, vilket orsakar en fördröjning. När detta inträffar kan du välja Uppdatera för att kontrollera om agenten har anslutits eller så kan du försöka ansluta agenten igen.

Om den bifogade filen misslyckas kan du kontrollera loggen med namnet 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