Arthas 服务监控-watch-trace
Watch
Watch:观察指定路径方法的调用情况
作用:
方法执行数据监测,让你能方便的观察到指定的方法的掉用情况
能观察到的范围:返回值、抛出异常、入参、通过编写OGNL表达式进行对应变量的查看
Watch xxx.xxx.xxx.controller.StartAppImg xx (方法名)
命令:watch com.xxx.xxx.controller.Test list
查看list方法的调用详细情况
Watch 路径.类名 方法名
观察 指定路径xxx.方法 (ognl表达式)“{参数,返回值}”-x 2 属性遍历深度
watch com.xxx.xxx.controller test “{params,returnObj}” -x 2
通过 target 获取所有2级属性
watch com.xxx.xxx.xxx.controller.test list "target" -x 2 -b
通过target获取指定属性值
获取方法前后的返回值
trace
作用:
Trace 命令能主动搜索class-pattern/method-pattern 对应的方法调用路径,渲染和统计整个调用链路上的所有性能开销和追踪链路
观察表达式的构成主要由OGNL表达式组成,所以你可以这样写{params,returnObj},只要是一个和法的OGNL表达式,就都能被正常支持
很多时候我们只想看到某个方法的rt大于某个时间之后的trace结果,现在arthas可以按照方法执行的耗时进行过滤,例如 trace “StringUtils isBlank ‘#cost>100’”,表示当执行时间超过100ms时候才会输出trace的结果
trace com.xxx.xxx.xx.controller.StartAppImgController list
查看指定路径方法节点的耗时时间
trace com.xxx.xxx.xxx.controller.StartAppImgController list -n 3
查看指定路径方法节点的耗时时间 并设置命令执行次数
trace com.xxx.xxx.xxx.controller.StartAppImgController list "#cost > .5"
查看指定路径方法节点的耗时时间 过滤大于0.5秒的
Stack
获取方法的调用路径
Stack com.xxx.xxx.xxx.controller.StartAppImgController list
方法参数小于0时追踪方法路径 执行2次
Stack com.xxx.xxx.xxx.controller.StartAppImgController list ‘params[0]<0’ -n 2
追踪大于执行时间0.5 的方法
Stack com.xxx.xxx.xxx.controller.StartAppImgController list ‘#cost>0.5’