Maison > interface Web > js tutoriel > le corps du texte

Amélioration de la fiabilité de la planification des tâches : intégration d'Arthas pour la surveillance des API dans DolphinScheduler

Mary-Kate Olsen
Libérer: 2024-11-05 12:56:02
original
1016 Les gens l'ont consulté

Cet article détaille l'intégration d'Arthas dans Apache DolphinScheduler pour permettre la surveillance en temps réel des appels d'API. Arthas, un puissant outil de diagnostic Java, aide les développeurs à inspecter l'état d'exécution, à identifier les goulots d'étranglement des performances et à suivre les appels de méthodes. L'intégration d'Arthas dans DolphinScheduler permet la capture d'informations clés sur les appels lors de la planification des tâches, permettant une détection et une résolution rapides des problèmes pour une meilleure stabilité du système. Ici, nous décrivons les étapes pour démarrer Arthas dans l'environnement DolphinScheduler, surveiller les appels d'API spécifiques et analyser les données de performances collectées pour améliorer la fiabilité et la maintenabilité de la planification.

Installation manuelle

https://arthas.aliyun.com/download/latest_version?mirror=aliyun
arthas-packaging-3.7.2-bin.zip

cp arthas-packaging-3.7.2-bin.zip /opt/arthas
cd /opt/arthas
unzip arthas-packaging-3.7.2-bin.zip

java -jar arthas-boot.jar

Select the corresponding process ID.
Copier après la connexion

Dépannage des erreurs

Erreur 1

[ERROR] Start arthas failed, exception stack trace: 
com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
        at sun.tools.attach.LinuxVirtualMachine.<init>(LinuxVirtualMachine.java:106)
        at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:78)
        at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:250)
        at com.taobao.arthas.core.Arthas.attachAgent(Arthas.java:102)
        at com.taobao.arthas.core.Arthas.<init>(Arthas.java:27)
        at com.taobao.arthas.core.Arthas.main(Arthas.java:161)
Copier après la connexion

Solution :
Dans ${DOLPHINSCHEUDLER_HOME}/api-server/bin, ajoutez la ligne suivante à jvm_args_env.sh :

-XX:+StartAttachListener
Copier après la connexion

Erreur 2

Picked up JAVA_TOOL_OPTIONS: 
java.io.IOException: well-known file /tmp/.java_pid731688 is not secure: file should be owned by the current user (which is 0) but is owned by 989
        at sun.tools.attach.LinuxVirtualMachine.checkPermissions(Native Method)
        at sun.tools.attach.LinuxVirtualMachine.<init>(LinuxVirtualMachine.java:117)
        at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:78)
        at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:250)
        at com.taobao.arthas.core.Arthas.attachAgent(Arthas.java:102)
        at com.taobao.arthas.core.Arthas.<init>(Arthas.java:27)
        at com.taobao.arthas.core.Arthas.main(Arthas.java:161)
[ERROR] Start arthas failed, exception stack trace: 
[ERROR] attach fail, targetPid: 731688
Copier après la connexion

Solution :
Assurez-vous que l'utilisateur exécutant le service Arthas correspond à l'utilisateur exécutant DolphinScheduler pour éviter cette erreur.

Montre

Watch est utilisé pour surveiller les détails d'exécution spécifiques des méthodes, tels que les paramètres et les valeurs de retour.

watch org.apache.dolphinscheduler.api.controller.UsersController queryUserList returnObj
Copier après la connexion
[arthas@731688]$ watch org.apache.dolphinscheduler.api.controller.UsersController queryUserList returnObj
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 126 ms, listenerId: 2
method=org.apache.dolphinscheduler.api.controller.UsersController.queryUserList location=AtExit
ts=2024-08-27 02:04:01; [cost=4.918943ms] result=@Result[
...
Copier après la connexion

Tracer

Trace surveille la profondeur des appels de méthodes, y compris les méthodes appelées et le temps d'exécution de chacune.

[arthas@973263]$ trace org.apache.dolphinscheduler.api.controller.UsersController queryUserList 
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 319 ms, listenerId: 1
`---ts=2024-08-27 10:33:08;thread_name=qtp1836984213-26;id=26;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$AppClassLoader@439f5b3d
    `---[13.962731ms] org.apache.dolphinscheduler.api.controller.UsersController:queryUserList()
        +---[0.18% 0.025123ms ] org.apache.dolphinscheduler.api.controller.UsersController:checkPageParams() #130
        +---[0.09% 0.012549ms ] org.apache.dolphinscheduler.plugin.task.api.utils.ParameterUtils:handleEscapes() #131
        `---[96.47% 13.469876ms ] org.apache.dolphinscheduler.api.service.UsersService:queryUserList() #132
Copier après la connexion

Décharge

Pour générer un fichier de vidage de tas, utilisez :

[arthas@973263]$ heapdump arthas-output/dump.hprof
Dumping heap to arthas-output/dump.hprof ...
Heap dump file created
Copier après la connexion

Analysez le fichier de vidage avec des outils comme MAT pour les diagnostics de fuite de mémoire.

Affichage des modifications de la mémoire JVM

Utiliser la mémoire pour inspecter l'utilisation de la mémoire JVM :

[arthas@973263]$ memory 
Memory                                                         used                 total                max                  usage                
heap                                                           485M                 900M                 900M                 53.91%               
ps_eden_space                                                  277M                 327M                 358M                 77.61%               
...
Copier après la connexion

Affichage de l'utilisation du processeur

Utilisez le tableau de bord pour afficher l'utilisation du processeur et identifiez des threads spécifiques pour une inspection plus approfondie avec thread -n thread_id.

Enhancing Task Scheduling Reliability: Integrating Arthas for API Monitoring in DolphinScheduler

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!