Arthas 常用命令

224 阅读2分钟

一,Watch命令

1.1 命令示例

watch com.MathGame primeFactors rerankSizeLimit '{params,returnObj,throwExp}'  -n 5  -x 3 

1.2 查看集合类型

watch com.MathGame primeFactors rerankSizeLimit '{params,returnObj.{#this.id},throwExp}'  -n 5  -x 3 

1.3 查看条件判断

watch com.MathGame primeFactors rerankSizeLimit '{params,returnObj.{#this.id},throwExp}' 'params[0].id == "123456"'  -n 5  -x 3 

1.4 查看参数返回前、返回后的值

watch com.MathGame primeFactors rerankSizeLimit '{params,returnObj,throwExp}' -b -s  -n 5  -x 3 

其中-s为返回后,-b为返回前,可以同时观测,返回内容不受-b -s先后位置影响。

二,OGNL命令

2.1 使用参考

2.2 调用静态函数

$ ognl '@java.lang.System@out.println("hello")'
null

2.3 获取静态类的静态字段

$ ognl '@demo.MathGame@random'
@Random[
    serialVersionUID=@Long[3905348978240129619],
    seed=@AtomicLong[125451474443703],
    multiplier=@Long[25214903917],
    addend=@Long[11],
    mask=@Long[281474976710655],
    DOUBLE_UNIT=@Double[1.1102230246251565E-16],
    BadBound=@String[bound must be positive],
    BadRange=@String[bound must be greater than origin],
    BadSize=@String[size must be non-negative],
    seedUniquifier=@AtomicLong[-3282039941672302964],
    nextNextGaussian=@Double[0.0],
    haveNextNextGaussian=@Boolean[false],
    serialPersistentFields=@ObjectStreamField[][isEmpty=false;size=3],
    unsafe=@Unsafe[sun.misc.Unsafe@28ea5898],
    seedOffset=@Long[24],
]

三,options命令

名称默认值描述
unsafefalse是否支持对系统级别的类进行增强,打开该开关可能导致把 JVM 搞挂,请慎重选择!
dumpfalse是否支持被增强了的类 dump 到外部文件中,如果打开开关,class 文件会被 dump 到/${application working dir}/arthas-class-dump/目录下,具体位置详见控制台输出
batch-re-transformtrue是否支持批量对匹配到的类执行 retransform 操作
json-formatfalse是否支持 json 化的输出
disable-sub-classfalse是否禁用子类匹配,默认在匹配目标类的时候会默认匹配到其子类,如果想精确匹配,可以关闭此开关
support-default-methodtrue是否支持匹配到 default method, 默认会查找 interface,匹配里面的 default method。参考 #1105在新窗口打开
save-resultfalse是否打开执行结果存日志功能,打开之后所有命令的运行结果都将保存到~/logs/arthas-cache/result.log
job-timeout1d异步后台任务的默认超时时间,超过这个时间,任务自动停止;比如设置 1d, 2h, 3m, 25s,分别代表天、小时、分、秒
print-parent-fieldstrue是否打印在 parent class 里的 filed
verbosefalse是否打印更多详细信息
stricttrue是否启用 strict 模式

四, arthas 下载

wget alibaba.github.io/arthas/arth…