Notes
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
Vous pouvez utiliser 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).
Une fois l'agent attaché, vous pouvez effectuer des tâches de dépannage telles que l'ajout de journaux autour d'une fonction de classe. Vous pouvez utiliser 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.
La configuration du plug-in s’affiche sous l’onglet Diagnostic. Ici, vous pouvez effectuer les tâches suivantes :
- Configurez le port local qui transfère vers le service agent.
- Affichez les pods répertoriés avec
kubeconfig
dans votre environnement local. - Sélectionnez Actualiser pour actualiser la table de pods. Une fois que vous avez changé de cluster, vous devez actualiser 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 disposer d’une autorisation d’écriture dans le dossier /tmp.
Pour activer l’attachement de l’agent dans la machine virtuelle JVM, veillez à ne pas ajouter de -XX:+DisableAttachMechanism
aux options JVM.
Le serveur de diagnostic principal est fermé après 6 heures.
Pour joindre l’agent, cliquez sur 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, vous pouvez l’utiliser pour la résolution des 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, faites un clic droit dessus dans l’éditeur, puis sélectionnez Diagnostic Java>Ajouter 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 logs ajoutés par l’agent, sélectionnez Supprimer tous les AroundLogs.
Remarque
L’agent Java principal est utilisé par un conteneur éphémère dans le pod. Après le redémarrage du pod, l'agent est supprimé.
Dépannage
Un délai d'expiration peut se produire lorsque vous essayez de connecter l'agent à un pod s'exécutant sur un nœud qui n'a pas encore activé la fonctionnalité. Le délai d'expiration peut se produire car le nœud doit d'abord récupérer l'image de l'agent, ce qui entraîne un retard. Lorsque cela se produit, vous pouvez sélectionner Actualiser pour vérifier si l'agent s'est bien connecté, ou vous pouvez essayer de le connecter à nouveau.
Si la pièce jointe échoue, vous pouvez vérifier le fichier 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