Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u aan de slag gaat met de diagnostische Java-agent. Het beschrijft ook het diagnostisch hulpprogramma voor Java in AKS voor IntelliJ IDEA.
De Diagnostische Java-agent is een Java-agent voor het oplossen van problemen met een Java-proces. Het is niet nodig om een toepassing opnieuw te bouwen, opnieuw te implementeren of opnieuw te starten. Op dit moment biedt het ondersteuning voor het toevoegen van logboeken rond een functie in een Java-klasse. Wanneer de functie wordt aangeroepen, wordt het logboek samen met een berekening van de totale tijd die door de functie wordt verbruikt, afgedrukt.
Voorwaarden
diag4j geïnstalleerd in uw cluster.
Java LTS versie 11, 17 of 21.
De invoegtoepassing IntelliJ IDEA , lokaal geïnstalleerd via Instellingen>Plugins>Installeer plug-in vanaf schijf.
Java-toepassingen waarmee u problemen kunt oplossen. Zie Spring Boot-toepassing implementeren in de Azure Kubernetes Service-voor meer informatie.
Port Forwarding instellen
Gebruik de volgende opdracht om poort doorsturen tot stand te brengen naar de agent service:
kubectl port-forward svc/diag4j-agent-service -n <namespace> <port>:8080
Het diagnostisch hulpprogramma voor Java gebruiken in de AKS-invoegtoepassing voor IntelliJ IDEA
Gebruik de Java Diagnostic Tool in de AKS-invoegtoepassing om de Java Diagnostische agent te koppelen aan de Java-toepassing die wordt uitgevoerd in een podcontainer op een Azure Kubernetes Service (AKS)-cluster.
Nadat u de agent hebt gekoppeld, kunt u problemen oplossen door logboeken toe te voegen rond een klassefunctie. Gebruik dit logboek om te testen of de functie wordt uitgevoerd en om de totale tijd te berekenen die in de functie is besteed. Deze analyse kan u helpen bij het vinden van prestatieknelpunten in uw toepassing.
Op het tabblad Diagnostisch ziet u de configuratie van de invoegtoepassing. Hier kunt u het volgende doen:
- Configureer de lokale poort die wordt doorgestuurd naar de agentservice.
- Bekijk de pods die worden vermeld met
kubeconfigin uw lokale omgeving. - Selecteer Vernieuwen om de podtabel bij te werken. Nadat u van clusters bent overgeschakeld, vernieuwt u de tabel om de pods in het nieuwe cluster te laden.
De agent koppelen
De pod-container moet een /tmp-map hebben en moet schrijfrechten hebben voor de /tmp-map.
Om het koppelen van de agent in de JVM in te schakelen, voegt u -XX:+DisableAttachMechanism niet toe aan de JVM-opties.
De diagnostische back-endserver wordt na 6 uur gesloten.
Als u de agent wilt koppelen, selecteert u de pod waaraan u de agent wilt koppelen en selecteert u vervolgens de container. U kunt de agent alleen koppelen aan één container in de pod. Wacht vervolgens totdat het bijlageproces is voltooid.
De actieve podcontainer instellen
Nadat u de agent hebt gekoppeld, kunt u deze gebruiken om problemen op te lossen.
Meerdere pods hebben mogelijkerwijs de agent geïnjecteerd, dus u moet een actieve pod selecteren. Klik in IntelliJ IDEA op het tabblad Diagnostische met de rechtermuisknop op een pod en selecteer vervolgens Selecteren als de actieve.
Logboekregistratie toevoegen rond een klassefunctie
Het geconfigureerde logboek wordt na 30 minuten automatisch verwijderd.
U kunt het hulpprogramma gebruiken om logboekregistratie toe te voegen rond klassefuncties, maar niet interfaces, constructors, enzovoort.
Als u logboekregistratie wilt toevoegen aan een functie, klikt u er met de rechtermuisknop op in de editor en selecteert u Java Diagnostic>Add AroundLog, zoals wordt weergegeven in de volgende schermopname.
In dit voorbeeld kunt u, nadat u de logboekregistratie hebt toegevoegd, <host>/infor aanroepen om uitvoer te zien die vergelijkbaar is met het volgende voorbeeld voor en nadat de functie is aangeroepen:
===== 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
Alle geconfigureerde logboeken verwijderen
Als u alle logboeken wilt verwijderen die door de agent worden toegevoegd, selecteert u All AroundLogs verwijderen.
Notitie
Een tijdelijke container in de pod maakt gebruik van de back-end-Java-agent. Nadat de pod opnieuw is opgestart, wordt de agent verwijderd.
Probleemoplossing
Er kan een time-out optreden wanneer u probeert de agent te koppelen aan een pod die draait op een knooppunt waarop deze functie nog niet is ingeschakeld. De time-out treedt op omdat het knooppunt eerst de agentimage moet ophalen, waardoor vertraging ontstaat. Wanneer deze vertraging optreedt, selecteert u Vernieuwen om te controleren of de agent is gekoppeld of probeert u de agent opnieuw te koppelen.
Als de bijlage mislukt, controleert u het logboek met de naam diagnostic-container-<hashcode> in de tijdelijke container.
U vindt informatie over de bewerkingen van de invoegtoepassing in de logboeken onder de podcontainer met de naam diag4j-agent-service-<hashcode>.