Arthas

arthas是实时监控代码的工具,记录一下使用方法。

使用流程

  1. 进入服务器excute shell,启动并选择java进程:java -jar arthas-boot.jar 1

  2. 输入命令

    常用命令1:watch
    作用:实时监控方法的入参和输出,以及exception信息
    场景:适合在没有打日志,需要查问题的时候。或者C端不方便抓包的时候用,绝了。
    eg:watch CLASS_NAME METHOD_NAME “{params, returnObj}” -x 3
    注:其中 -x 3是显示的层数,这里是3层 -x 5就是5层。如queryPage返回一个List< DTO>,第一层:ArrayList,第二层:dto,第三层:dto里的field。如果fiekd里有list,就看不到具体内容了。
    3层的内容
    图1:watch命令显示三层时的returnObj

    常用命令2:trace
    作用:追踪方法的调用栈及耗时。
    场景:适合一个方法中有较复杂的方法调用时使用,或者想看接口每一部分的耗时及优化时。
    eg:trace CLASS_NAME METHOD_NAME

  3. 调用方法。因为是实时的,类似在方法上做了标记,在触发方法后记录需要的信息,注意是一次性的

  4. 返回excute shell,就能看到打印出来的信息了

复制CLASSNAME METHODNAME的方法

  1. idea直接copy reference
    请添加图片描述
    图2:idea里copy方法名的引用

可以在方法上右键copy reference,效果如下:
com.defaultPackage.AddFriendAlertTest#testAddFriend
#删掉后:
watch com.defaultPackage.AddFriendAlertTest testAddFriend "{params, returnObj}" -x 3

  1. 使用arthas plugin
    见Ref1

Reference

1.使用arthas plugin
2. Arthas常用方法

致谢

感谢 我的同事!我的好姐妹!lsq大佬!教我使用arthas

<think>好的,我现在需要回答用户关于Arthas Java诊断工具的使用指南的问题。首先,用户给出的引用材料有四个,我需要仔细阅读这些引用内容,提取关键信息来构建回答。 首先,引用[1]提到了Arthas是阿里巴巴的Java诊断工具,项目地址在GitCode,还提到了快速指南和问题解决方案。这说明我应该介绍Arthas的基本信息和获取方式,以及它的主要功能。 引用[2]指出Arthas在开发和运维中的最佳实践,强调其提高效率的作用。这里可能需要分点说明在开发和生产环境中的不同使用场景,比如实时诊断、动态追踪等。 引用[3]提供了在线教程和IDEA插件的安装,这部分需要提到如何学习和使用Arthas,特别是交互式教程和IDE集成,这对开发者来说比较实用。 引用[4]详细列举了Arthas解决的问题,比如查看系统运行状况、反编译源码、方法调用耗时分析、JVM监控和热更新等。这些功能可以作为核心功能部分,分点详细说明。 接下来,我需要按照用户的要求,结构清晰,分步骤回答。可能需要分为安装与启动、核心功能、最佳实践、学习资源几个部分。每个部分下再细分小点,比如核心功能包括实时诊断、方法追踪、JVM监控等。 同时,用户要求生成相关问题,我需要根据内容提出三个相关问题,比如如何安装、如何动态更新代码、与其他工具的比较等。 需要注意的是,所有数学表达式要用$...$,但根据引用内容,可能这部分涉及较少,但如果有涉及性能分析中的公式,比如计算耗时,可能需要使用。不过当前内容可能不涉及数学公式,所以可能不需要处理这点。 另外,引用标识要自然地添加到引用的段落末尾。例如,在提到Arthas由阿里巴巴开发时,添加[^1],在提到在线教程时添加[^3]等。 最后,确保回答使用中文,语法正确,符合LaTeX格式要求(如果有的话),并生成相关问题。现在整理这些信息,组织成一个结构清晰的指南。</think>### Arthas Java诊断工具 使用指南 #### 一、Arthas简介 Arthas是阿里巴巴开源的一款**Java诊断工具**,支持实时监控、动态追踪JVM状态,帮助开发者快速定位代码性能问题、类加载异常、方法调用阻塞等场景[^1]。其核心优势在于**无需重启应用**即可完成诊断,适用于开发、测试及生产环境[^2]。 #### 二、安装与启动 1. **快速安装** 通过以下命令下载并启动Arthas: ```bash curl -O https://arthas.aliyun.com/arthas-boot.jar java -jar arthas-boot.jar ``` 启动后,选择目标Java进程即可连接。 2. **IDEA插件集成** 安装`arthas idea`插件,可直接在IDE中生成命令代码片段,提升调试效率。 #### 三、核心功能与命令示例 1. **实时诊断** - **查看JVM状态**:`dashboard`命令全局监控CPU、内存、线程等信息[^4]。 - **反编译源码**:`jad com.example.ClassName`验证JVM加载的类是否为最新版本[^4]。 2. **方法级追踪** - **统计方法耗时**: ```bash trace com.example.ServiceClass methodName ``` 输出方法内部调用路径及每个节点的执行时间。 - **观察方法参数/返回值**: ```bash watch com.example.ServiceClass methodName "{params, returnObj}" ``` 3. **动态热更新** 使用`redefine`命令加载外部修改后的`.class`文件,实现代码热修复。 #### 四、最佳实践场景 1. **开发环境** - 快速定位NPE(空指针异常)的具体触发位置。 - 验证方法逻辑是否符合预期,避免重复编译部署[^2]。 2. **生产环境** - 分析接口响应缓慢的根本原因(如数据库连接池瓶颈)。 - 监控高并发场景下的线程阻塞问题[^2]。 #### 五、学习资源 1. **官方交互式教程**: [Arthas在线教程](https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn)提供实时操作演练。 2. **社区文档**: 详细命令手册及案例参考[GitCode项目地址](https://gitcode.com/gh_mirrors/ar/arthas)。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值