À propos du projet
Arthas est un outil de diagnostic Java open-source d'Alibaba. Son objectif déclaré est de permettre aux développeurs de dépanner des problèmes de production sur des applications Java sans modifier le code ni redémarrer les serveurs. Le README le décrit comme un observateur qui ne suspend pas les threads existants, répondant au problème courant selon lequel les environnements de production sont souvent inaccessibles depuis les configurations de développement local et que le débogage à distance via IDE ou l'ajout de logs est lent ou risqué.
Les principales capacités listées dans le README incluent : vérifier si une classe est chargée et d'où elle est chargée (utile pour les conflits de jars) ; décompiler des classes ; afficher les statistiques du classloader telles que les comptes, la hiérarchie et les fuites possibles ; inspecter les détails d'appel de méthodes incluant paramètres, valeurs de retour et exceptions levées ; voir les traces de pile des appels de méthodes spécifiés ; tracer les invocations de méthodes pour identifier les sous-invocations lentes ; surveiller les statistiques de méthodes telles que le QPS, le temps de réponse et le taux de succès ; surveiller les métriques système, les états des threads, l'utilisation CPU et les statistiques GC ; un mode ligne de commande interactif avec auto-complétion ; un accès telnet et websocket pour le diagnostic local et distant en ligne de commande ou via navigateur ; un support profiler/graphes de flammes ; la récupération des objets heap instances d'une classe spécifiée ; et la prise en charge de JDK 8+ en version 4.x, incluant JDK 17, 21 et 25, sur Linux, Mac et Windows.
Les options d'installation présentées incluent le arthas-boot.jar recommandé démarré avec java, ou un script d'installation en une ligne qui télécharge as.sh sur Linux, Unix et Mac. Les liens de documentation couvrent le manuel utilisateur, l'installation, le téléchargement, le démarrage rapide, l'usage avancé, les commandes, la console web, Docker, le starter Spring Boot, les cas d'usage, la FAQ, le guide de contribution et les notes de version.
Les exemples de fonctionnalités dans le README démontrent le dashboard, thread (classement des threads par utilisation CPU), jad (décompilation), mc (compilation en mémoire de .java en .class), retransform (hot-swap de classes chargées), sc (recherche de classes chargées avec métadonnées détaillées), vmtool (obtention d'instances heap d'une classe), stack (affichage de la pile d'appels d'une méthode), trace (recherche d'invocations de méthodes lentes), watch (observation de paramètres et exceptions sous conditions), monitor (statistiques d'invocation périodiques), tt/time tunnel (enregistrement des données d'invocation pour inspection ultérieure), classloader (liste des classloaders et comptes de classes chargées), la console web, et la sortie profiler/graphes de flammes.
Le README mentionne également plus de 120 utilisateurs enregistrés et liste des projets dérivés tels que Bistoury, tout en créditant des projets tels que bytekit, greys-anatomy, termd, crash, cli, un compilateur mémoire, Apache Commons Net et async-profiler.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.