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

方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测。

posted on 2019-11-23 09:44  HB1  阅读(139)  评论(0)    收藏  举报

导航