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
Usare il plug-in Java Diagnostic Tool per AKS per connettere l'agente Java Diagnostic Agent all'applicazione Java in esecuzione in un contenitore di pod in un cluster Servizio Azure Kubernetes (AKS).
Dopo aver collegato l'agente, è possibile risolvere i problemi aggiungendo i log relativi a una funzione di classe. 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 scheda Diagnostica mostra la configurazione del plug-in. Qui è possibile:
- Configurare la porta locale che inoltra il servizio all'agente.
- Visualizzare i pod elencati con
kubeconfignell'ambiente locale. - Selezionare Aggiorna per aggiornare la tabella dei pod. Dopo aver commutato i cluster, aggiornare la tabella per caricare i pod nel 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, non aggiungere -XX:+DisableAttachMechanism alle opzioni JVM.
Il server di diagnostica back-end si chiude dopo 6 ore.
Per collegare l'agente, selezionare il pod a cui 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, 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, fai clic con il pulsante destro del mouse su un pod e quindi seleziona Seleziona come attivo.
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 e quindi selezionare Java Diagnostic>Add 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 i log.
Nota
Un contenitore temporaneo nel pod usa l'agente di Java back-end. Dopo il riavvio del pod, l'agente viene rimosso.
Risoluzione dei problemi
Può verificarsi un timeout quando si tenta di connettere l'agente a un pod in esecuzione su un nodo che non è già abilitato per la funzionalità. Il timeout si verifica perché il nodo deve prima recuperare l'immagine dell'agente, causando un ritardo. Quando si verifica questo ritardo, selezionare Aggiorna per verificare se l'agente è collegato o provare a collegare nuovamente l'agente.
Se il collegamento non va a buon fine, controllare il log denominato diagnostic-container-<hashcode> nel contenitore effimero.
È possibile trovare informazioni sulle operazioni del plug-in nei log nel contenitore pod denominato diag4j-agent-service-<hashcode>.