学习arthas(十三)监视代码的执行结果

Arthas
placeholder image
admin 发布于:2023-10-02 16:04:03
阅读:loading

arthas watch命令是arthas工具提供的一个命令,用于在应用运行过程中观察指定方法的执行情况,可以帮助开发人员实时监视指定类和方法的调用情况。可以方便地观察到指定方法的调用与执行情况,对于代码执行的:返回值、异常、入参、this等代码范围,通过OGNL表达式进行对应代码逻辑范围上执行的应用排查。


(1)监控一个类的一个方法,跟踪参数、this对象、返回值、异常信息

watch  cn.chendd.blog.admin.blog.tag.controller.TagManageController queryTagsPage 
--exclude-class-pattern *CGLIB* -x 2 {params,target,returnObj,throwExp}[object Object]

(2)监控方法调用超过 100 秒以上

watch  cn.chendd.blog.admin.blog.tag.controller.TagManageController queryTagsPage 
--exclude-class-pattern *CGLIB* -x 2 {params,target,returnObj,throwExp} '#cost>100'

image.png

(3)根据参数值过滤

watch cn.chendd.blog.admin.blog.tag.controller.TagManageController queryTagsPage 
--exclude-class-pattern *CGLIB* -x 2 {params,target,returnObj,throwExp} 'params[0].strong.name()=="yes"'

image.png

(4)根据返回值的属性进行过滤

watch cn.chendd.blog.admin.blog.tag.controller.TagManageController queryTagsPage 
--exclude-class-pattern *CGLIB* -x 2 {params,target,returnObj,throwExp} 'returnObj.total > 20'

image.png

注意事项

  • watch命令会在应用程序中添加一个拦截器,可能会对性能产生一定的影响,因此在生产环境中使用时需谨慎。

  • watch命令只能观察当前JVM中的方法执行情况,对于其他JVM或远程服务器上的应用无法进行观察。

  • watch命令可以配合其他arthas命令一起使用,如trace、tt等,来更全面地观察和分析应用的执行情况。

 点赞


 发表评论

当前回复:作者

 评论列表


留言区