Partager via


Bien démarrer avec l’agent de diagnostic Java

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

É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.

La capture d’écran Capture d'écran de l'onglet Diagnostic d'IntelliJ IDEA.

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.

Capture d’écran d’IntelliJ IDEA montrant l’onglet Diagnostic avec la boîte de dialogue Sélection du conteneur ouverte.

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.

Capture d’écran de l’onglet Diagnostic IntelliJ IDEA avec un pod sélectionné et l'élément de menu 'Sélectionner comme actif' affiché.

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.

Capture d’écran d’IntelliJ IDEA montrant le menu contextuel ouvert pour une fonction avec l’option de menu Add AroundLog mise en surbrillance.

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