arthas是实时监控代码的工具,记录一下使用方法。
使用流程
-
进入服务器excute shell,启动并选择java进程:java -jar arthas-boot.jar 1
-
输入命令
常用命令1:watch
作用:实时监控方法的入参和输出,以及exception信息
场景:适合在没有打日志,需要查问题的时候。或者C端不方便抓包的时候用,绝了。
eg:watch CLASS_NAME METHOD_NAME “{params, returnObj}” -x 3
注:其中 -x 3是显示的层数,这里是3层 -x 5就是5层。如queryPage返回一个List< DTO>,第一层:ArrayList,第二层:dto,第三层:dto里的field。如果fiekd里有list,就看不到具体内容了。
图1:watch命令显示三层时的returnObj常用命令2:trace
作用:追踪方法的调用栈及耗时。
场景:适合一个方法中有较复杂的方法调用时使用,或者想看接口每一部分的耗时及优化时。
eg:trace CLASS_NAME METHOD_NAME -
调用方法。因为是实时的,类似在方法上做了标记,在触发方法后记录需要的信息,注意是一次性的
-
返回excute shell,就能看到打印出来的信息了
复制CLASSNAME METHODNAME的方法
- idea直接copy reference
图2:idea里copy方法名的引用
可以在方法上右键copy reference,效果如下:
com.defaultPackage.AddFriendAlertTest#testAddFriend
#
删掉后:
watch com.defaultPackage.AddFriendAlertTest testAddFriend "{params, returnObj}" -x 3
- 使用arthas plugin
见Ref1
Reference
1.使用arthas plugin
2. Arthas常用方法
致谢
感谢 我的同事!我的好姐妹!lsq大佬!教我使用arthas