Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive come iniziare a usare l'agente di diagnostica Java. Descrive anche lo strumento di diagnostica Java nel plugin AKS per IntelliJ IDEA.
L'agente di diagnostica Java è un agente Java per la risoluzione dei problemi di un processo Java. Non è necessario ricompilare, ridistribuire o riavviare un'applicazione. Attualmente supporta l'aggiunta di log per una funzione in una classe Java. Quando viene chiamata la funzione, il log viene stampato insieme a un calcolo del tempo totale utilizzato dalla funzione.
Prerequisiti
diag4j installato nel tuo cluster.
Java LTS versione 11, 17 o 21.
Il plug-in IntelliJ IDEA , installato localmente tramite le Impostazioni di >Plugin>Installa Plugin da Disco.
Applicazioni Java con cui risolvere i problemi. Per altre informazioni, vedere Distribuire l'applicazione Spring Boot nel servizio Azure Kubernetes.
Stabilire il port forwarding
Utilizzare il comando seguente per impostare il port forwarding al servizio agente.
kubectl port-forward svc/diag4j-agent-service -n <namespace> <port>:8080
Usare lo strumento di diagnostica Java nel plug-in AKS per IntelliJ IDEA
È possibile usare lo strumento di diagnostica Java nel plug-in servizio Azure Kubernetes per collegare l'agente di diagnostica Java all'applicazione Java in esecuzione in un contenitore pod in un cluster del servizio Azure Kubernetes.
Dopo aver collegato l'agente, consente di eseguire attività di risoluzione dei problemi, ad esempio l'aggiunta di log per una funzione di classe. È possibile usare questo log per verificare se la funzione viene eseguita e per calcolare il tempo totale impiegato nella funzione. Questa analisi consente di individuare i colli di bottiglia delle prestazioni nell'applicazione.
La configurazione del plug-in viene visualizzata nella scheda Diagnostica. Qui è possibile eseguire le attività seguenti:
- Configurare la porta locale che inoltra il servizio all'agente.
- Visualizzare i pod elencati con
kubeconfig
nell'ambiente locale. - Selezionare Aggiorna per aggiornare la tabella dei pod. Dopo aver cambiato cluster, è necessario aggiornare la tabella per caricare i pod in un nuovo cluster.
Allegare l'agente
Il contenitore pod deve avere una cartella /tmp e deve disporre dell'autorizzazione di scrittura per la cartella /tmp.
Per abilitare il collegamento dell'agente nella JVM, assicurarsi di non aggiungere -XX:+DisableAttachMechanism
alle opzioni JVM.
Il server di diagnostica back-end viene chiuso dopo 6 ore.
Per collegare l'agente, fare clic sul pod a cui si vuole collegare l'agente e quindi selezionare il contenitore. È possibile collegare l'agente solo a un contenitore nel pod. Attendere quindi il completamento del processo di allegazione.
Impostare il contenitore pod attivo
Dopo aver collegato correttamente l'agente, è possibile usarlo per la risoluzione dei problemi.
È possibile che più pod abbiano inserito l'agente, quindi è necessario impostare un pod attivo. In IntelliJ IDEA, nella scheda diagnostica fare clic con il pulsante destro del mouse su un pod e quindi selezionare Selezionare come attivo uno.
Aggiungere il log a una funzione di classe
Il log configurato viene rimosso automaticamente dopo 30 minuti.
È possibile usare lo strumento per aggiungere la registrazione delle funzioni di classe, ma non interfacce, costruttori e così via.
Per aggiungere la registrazione a una funzione, fare clic con il pulsante destro del mouse nell'editor, quindi selezionare Diagnostica Java>Aggiungi AroundLog, come illustrato nello screenshot seguente.
In questo esempio, dopo aver aggiunto la registrazione, è possibile chiamare <host>/infor
per visualizzare l'output simile all'esempio seguente prima e dopo la chiamata della funzione:
===== 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
Rimuovere tutti i log configurati
Per rimuovere tutti i log aggiunti dall'agente, selezionare Rimuovi tutti gli AroundLogs.
Nota
L'agente Java back-end è utilizzato da un contenitore effimero nel pod. Dopo il riavvio del pod, l'agente viene rimosso.
Risoluzione dei problemi
Un timeout può verificarsi quando si tenta di collegare l'agente a un pod in esecuzione in un nodo che non ha ancora abilitato la funzionalità. Il timeout può verificarsi perché il nodo deve prima recuperare l'immagine dell'agente, causando un ritardo. In questo caso, è possibile selezionare Aggiorna per verificare se l'agente è collegato oppure provare a collegare nuovamente l'agente.
Se l'allegato non viene inviato correttamente, è possibile controllare il registro denominato diagnostic-container-<hashcode>
nel contenitore temporaneo.
È possibile trovare informazioni sulle operazioni del plug-in nei log nel contenitore pod denominato diag4j-agent-service-<hashcode>
.