失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > greys的简单使用

greys的简单使用

时间:2020-05-22 10:48:59

相关推荐

greys的简单使用

阿里开源的greys对问题排查非常有用,其底层使用instrument和asm字节码增强,简单记录下这个命令的使用:

1.命令greys.sh java进程号,这样就会在目标机器上启动了服务端口3568和一个greys客户端,如果你是在目标机器上操作的话,你可以直接给予目标机器的greys客户端进行操作了。 如果你没有目标机器的权限,但是你要协助解决问题的话可以执行命令./greys.sh 目标机器Id:3568,这样也可以启动一个greys客户端,这样你就可以进行各种操作了

2.假设我们有一个类和方法原型:com.mytest.MyGreysService::getGreyInfo(Long uid,String name)

2.1 a. 查看参数的命令: watch -b com.mytest.MyGreysService getGreyInfo params[0] 该命令可以输出第一个参数的值,也就是uid的值。

b. 查看调用了这个方法本身的对象的其他字段的值:

watch -b com.mytest.MyGreysService getGreyInfo target.redisTemplate

这个就是查看调用了getGreyInfo方法的实例的字段redisTemplate的值

c.查看某个方法的异常信息:

watch -e com.mytest.MyGreysService getGreyInfo throwExp.printStackTrace()

2.2 查看方法调用耗时的命令:

trace -n 3 com.mytest.MyGreysService getGreyInfo 该命令可以查看getGrayInfo方法直接调用的第一层方法的耗时

2.3. 查看具体方法的耗时的命令

ptrace -t -n 3MyGreysServicegetGreyInfo --path=com.test*

该方法可以查看getGrayInfo直接和间接调用的方法的耗时,具体输出哪些方法的耗时是通过path路径限制的

2.4 查看并回放具体方法调用:

tt -i index

该方法结合ptrace可以查看具体方法的参数和耗时等信息

tt -i index -p

该方法结合ptrace可以重放具体方法的调用,这样就可以重放对应的方法,调试的时候非常方便

2.5 查看方法的统计信息,调用耗时,异常数量等

a. tt -t com.mytest.MyGreysService getGreyInfo params[1] == “test” 参数的具体值

b. tt -t com.mytest.MyGreysService getGreyInfo params.length== 5 参数的总个数

c. tt -t com.mytest.MyGreysService getGreyInfo params[1].length()==4 第二个字符串参数的长度

这个工具对于查找各种问题非常方便

greys官网地址

如果觉得《greys的简单使用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。