Alibaba Arthas 使用记录
Arthas 是Alibaba开源的Java诊断工具
下面记录几个常用功能:
1、watch
监控com.apache 包下面的所有的类的方法调用,这个一般在不了解程序运行逻辑的时候探测某个操作的执行。
原生的Arthas 不打印watch到的方法所在的类名和方法名,修改源码WatchAdviceListener.watching 可以实现该效果。
watch com.apache.* * "{params,returnObj}" -x 2 -n 200
2、dump
有些类执行时会被修改,所以导出运行时的类更为准确。
下面命令会在运行时导出com.apache 包下面的所有的类。
原生的Arthas 只支持最多导出5个类,作者说以后会加入该参数的设置。
作者未实现前,可以修改DumpClassCommand.process类修改该设定。
dump com.apache.*
3、trace
该命令能打印出方法内的一些执行细节。
该命令我还未怎么用,但肯定会有用。
$ trace -j demo.MathGame run Press Ctrl+C to abort. Affect(class-cnt:1 , method-cnt:1) cost in 31 ms. `---ts=2018-12-04 01:09:14;thread_name=main;id=1;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$AppClassLoader@3d4eac69 `---[5.190646ms] demo.MathGame:run() +---[4.465779ms] demo.MathGame:primeFactors() `---[0.375324ms] demo.MathGame:print()
4、stack
打印出调用堆栈,探测未知逻辑很有用。
5、tt
方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测。
浙公网安备 33010602011771号