Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment commencer à utiliser l’agent de diagnostic Java. Il décrit également l’outil de diagnostic Java sur le plug-in AKS pour IntelliJ IDEA.
L’agent de diagnostic Java est un agent Java pour résoudre les problèmes d’un processus Java. Il n’est pas nécessaire de reconstruire, redéployer ou redémarrer une application. Actuellement, il prend en charge l’ajout de logs à une fonction dans une classe Java. Lorsque la fonction est appelée, le journal est imprimé avec un calcul du temps total consommé par la fonction.
Conditions préalables
diag4j installé dans votre cluster.
Java LTS version 11, 17 ou 21.
Le plug-in IntelliJ IDEA, installé localement via Paramètres>Plug-ins>Installez le plug-in à partir du disque.
Applications Java pour résoudre les problèmes. Pour plus d’informations, consultez Déployer l’application Spring Boot sur azure Kubernetes Service.
Établir le transfert de port
Utilisez la commande suivante pour établir le transfert de port vers le service agent :
kubectl port-forward svc/diag4j-agent-service -n <namespace> <port>:8080
Utiliser l’outil de diagnostic Java sur le plug-in AKS pour IntelliJ IDEA
Utilisez l’outil de diagnostic Java sur le plug-in AKS pour attacher l’agent de diagnostic Java à l’application Java s’exécutant dans un conteneur de pods sur un cluster Azure Kubernetes Service (AKS).
Après avoir attaché l’agent, vous pouvez résoudre les problèmes en ajoutant des journaux autour d’une fonction de classe. Utilisez ce journal pour tester si la fonction est exécutée et calculer le temps total passé dans la fonction. Cette analyse peut vous aider à localiser les goulots d’étranglement des performances dans votre application.
L’onglet Diagnostic affiche la configuration du plug-in. Ici, vous pouvez :
- Configurez le port local qui transfère vers le service agent.
- Affichez les pods répertoriés avec
kubeconfigdans votre environnement local. - Sélectionnez Actualiser pour actualiser la table de pods. Après avoir changé de cluster, actualisez la table pour charger les pods dans un nouveau cluster.
Attachement de l'agent
Le conteneur de pods doit avoir un dossier /tmp et il doit avoir l’autorisation d’écriture dans le dossier /tmp .
Pour autoriser la liaison de l’agent à la JVM, n’ajoutez pas -XX:+DisableAttachMechanism aux options de la JVM.
Le serveur de diagnostic principal se ferme après 6 heures.
Pour joindre l’agent, sélectionnez le pod auquel vous souhaitez attacher l’agent, puis sélectionnez le conteneur. Vous ne pouvez attacher l’agent qu’à un seul conteneur dans le pod. Ensuite, attendez que le processus d'attachement se termine.
Définir le conteneur de pod actif
Une fois que vous avez attaché l’agent avec succès, utilisez-le pour résoudre les problèmes.
Plusieurs pods peuvent avoir injecté l’agent. Vous devez donc définir un pod actif. Dans IntelliJ IDEA, dans l'onglet Diagnostic, cliquez avec le bouton droit de la souris sur un pod, puis sélectionnez Sélectionner comme actif.
Ajoutez un journal autour d'une fonction de classe
Le journal configuré est automatiquement supprimé après 30 minutes.
Vous pouvez utiliser l’outil pour ajouter la journalisation autour des fonctions de classe, mais pas les interfaces, les constructeurs, et ainsi de suite.
Pour ajouter la journalisation à une fonction, cliquez dessus avec le bouton droit dans l’éditeur, puis sélectionnez Java Diagnostic>Add AroundLog, comme illustré dans la capture d’écran suivante.
Dans cet exemple, après avoir ajouté la journalisation, vous pouvez appeler <host>/infor pour voir la sortie similaire à l’exemple suivant avant et après l’appel de la fonction :
===== 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
Supprimer tous les journaux configurés
Pour supprimer tous les journaux ajoutés par l’agent, sélectionnez Supprimer tous les journaux d’activité.
Remarque
Un conteneur éphémère dans le pod utilise l’agent Java principal. Après le redémarrage du pod, l'agent est supprimé.
Dépannage
Un dépassement de délai peut se produire lorsque vous tentez de rattacher l’agent à un pod s’exécutant sur un nœud sur lequel la fonctionnalité n’est pas déjà activée. Le délai d’expiration se produit parce que le nœud doit d’abord récupérer l’image de l’agent, ce qui provoque un retard. Lorsque ce délai se produit, sélectionnez Actualiser pour vérifier si l’agent est attaché ou réessayez d’attacher l’agent.
Si la pièce jointe échoue, vérifiez le journal nommé diagnostic-container-<hashcode> dans le conteneur éphémère.
Vous trouverez des informations sur le fonctionnement du plug-in dans les journaux du conteneur pod nommé diag4j-agent-service-<hashcode>.
Étape suivante
Commencer avec le composant Spring Boot Admin de l'outil de diagnostic Java (diag4j) sur AKS
