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
diag4j installerat i ditt kluster.
Java LTS version 11, 17 eller 21.
Pluginet IntelliJ IDEA , som installeras lokalt via Inställningar>Plugin-program>Installera plugin från disk.
Java-program att felsöka med. Mer information finns i Distribuera Spring Boot-program till Azure Kubernetes Service.
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.
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.
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.
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.
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