美文网首页
arthas watch使用

arthas watch使用

作者: kingTao_ | 来源:发表于2020-07-28 17:04 被阅读0次

watch能力

1.让你能方便的观察到指定方法的调用情况。能观察到的范围为:返回值、抛出异常、入参,通过编写 OGNL 表达式进行对应变量的查看。
2.watch的使用姿势比较丰富,可以在四个不同的场景观察方法的执行。比如方法调用之前、方法调用之后、方法异常之后、方法结束之后。默认观察的是方法结束之后。
3.如果观察的是方法结束之后的场景,由于入参可能在执行方法时被改变,所以此时输出的可能不是真正的入参。因此,要看真正的入参,要看方法调用之前的,也就是加上-b的参数。
4.另外,使用-b参数观察的话,则观察不到方法返回的结果以及抛出的异常了

watchs使用

耗时大于10ms并且第一个参数等于1才输出
watch *.CommonTest test "{params,returnObj,throwExp}" '#cost>10 && params[0]==1' -x 5 -n 1

解析
    *.CommonTest 类名
    test 方法名

    监控入参、返回、异常
    params 入参
    returnObj 返回
    throwExp 异常
    
    监控指标
    '#cost>10 && params[0]==1' 耗时超过10ms 且 第一个参数等于1
    -x 5 监控数据遍历深度5
    -n 1 只监控一次

常见参数

参数名称 参数说明
class-pattern 类名表达式匹配
method-pattern 方法名表达式匹配
express 观察表达式
condition-express 条件表达式
[b] 在方法调用之前观察
[e] 在方法异常之后观察
[s] 在方法返回之后观察
[f] 在方法结束之后(正常返回和异常返回)观察
[E] 开启正则表达式匹配,默认为通配符匹配
[x:] 指定输出结果的属性遍历深度,默认为 1
[n:] 只执行n次,默认会不断输出,除非用户按下cltr+c

各种使用示例

# 观察CommonTest的test方法
# 输出 入参、返回结果、抛出的异常 —— 输出的内容可以动态调整
# 后面跟着的是 条件表达式,表示耗时超过10ms才输出
# -n 表示只执行一次,-x表示 入参和返回结果的展开层次为5层
watch *.CommonTest test "{params,returnObj,throwExp}" '#cost>10' -x 5 -n 1

# 耗时大于10ms并且第一个参数等于1才输出
watch *.CommonTest test "{params,returnObj,throwExp}" '#cost>10 && params[0]==1' -x 5 -n 1

# 第一个参数大于1 并且第二个参数等于hello才输出
watch *.CommonTest test "{params,returnObj,throwExp}" 'params[0]>1 && params[1]=="hello"' -x 5 -n 1

# 第一个参数小于5或者第二个参数等于"world"就输出
watch *.CommonTest test "{params,returnObj,throwExp}" 'params[0]<5 || params[1]=="wolrd"' -x 5 -n 1

# 第一个参数的name字段等于world时才输出。
# 由于在方法执行过程中参数的name属性可能发生改变,因此加上-b才能观察到真正的入参
watch -b *.CommonTest test "{params,returnObj,throwExp}" 'params[0].name=="wolrd"' -x 5 -n 1

# 由于同时指定了-s和-b,所以方法被调用一次,就会输出2次结果(两个场景分开输出),分别是方法被调用前,和返回之后
# 注意,这里如果-n只设置成1,那么只会输出-b对应的输出,-s对应的输出由于没有次数了就无法输出了
watch *.CommonTest test '{params,returnObj,throwExp}' -x 5 -n 2 -s -b

相关文章

  • arthas watch使用

    watch能力 watchs使用 常见参数 参数名称参数说明class-pattern类名表达式匹配method-...

  • 如何使用Arthas提高日常开发效率?

    Arthas有什么功能,怎么用,请看:Arthas使用手册[https://arthas.aliyun.com/d...

  • Arthas-Java排查神器使用

    推荐使用arthas-boot.jar方式 1、下载及安装 arthas-boot是Arthas的启动程序,它启动...

  • arthas源码分析

    arthas简介 arthas 是Alibaba开源的Java诊断工具,基于jvm Agent方式,使用Instr...

  • 排查线上CPU飙高

    1、本案例的排查过程使用的阿里开源的Arthas工具进行的,不使用arthas,使用JDK自带的命令也是可以。 2...

  • 超好用的自带火焰图的 Java 性能分析工具 Async-pro

    最近 Arthas 性能分析工具上线了火焰图分析功能,Arthas 使用 async-profiler 生成 C...

  • Arthas使用

    下载arthas-boot.jar: 然后用java -jar的方式启动: 选择一个pid进入(如1): 通过th...

  • Arthas使用

    1、写作背景 在此记录,以备遗忘 2、核心操作 2.1、Arthas安装 linux安装 wget https:/...

  • Arthas使用

    Authas — 开源的java诊断工具 下载安装 authas是一个jar包,可以直接下载后运行 就可以启动起来...

  • Arthas使用

    1.代码热修复:jad --source-only com.test.demo.dmp.constant.DmpC...

网友评论

      本文标题:arthas watch使用

      本文链接:https://www.haomeiwen.com/subject/urxqrktx.html