greys在线问题诊断

Greys是一款利用Java6的Instrumentation特性动态增强指定类的工具,能够帮助开发者解决线上性能问题定位困难、代码调试等问题。该工具支持查看已加载类及方法信息、方法执行监控、性能开销渲染等功能。

目标群体

  • 有时候突然一个问题反馈上来,需要入参才能完成定位,但恰恰没有任何日志。回去加上重新部署,一杯咖啡时间过去了,是不是很崩溃?

  • 当你经过反复这样几次折腾之后变得聪明了,在自己的代码的所有入参和出参地方都加上debug日志,但这次问题似乎暴露在别人的代码中了...是不是很无奈?

  • 突然遇到线上一个性能问题无法确定到底是哪个环节的耗时,只能反复抓jstack猜,还有没有办法可以好好的过日子啦?

遇到以上问题时,你就是我们这类工具的目标客户,此类工具能利用Java6的Instrumentation特性,动态增强你所指定的类,获取你想要到的信息

内置主要功能

  • 查看已被JVM所加载的类、方法信息

  • 方法执行监控

调用量,成功失败率,响应时间

  • 方法执行数据操作

入参、返回值、异常信息记录与查看;支持动作回放

  • 性能开销渲染!

跟踪指定路径中的方法调用轨迹、耗时

  • 查看方法调用堆栈

软件安装

  • 在线安装(推荐)

curl -sLk http://ompc.oss.aliyuncs.com/greys/install.sh|sh

解压zip文件后,执行以下命令

cd greys
sh ./install-local.sh

启动Greys

目标机器启动

./ga.sh <PID>
./greys.sh <PID>[@IP:PORT]

如果不指定IP和PORT,默认是127.0.0.1和3658

命令清单

命令说明
help查看命令的帮助文档,每个命令和参数都有很详细的说明
sc查看JVM已加载的类信息
sm查看已加载的方法信息
monitor方法执行监控
trace渲染方法内部调用路径,并输出方法路径上的每个节点上耗时
ptrace强化版的trace命令。通过指定渲染路径,并可记录下路径中所有方法的入参、返值;与tt命令联动。
watch方法执行数据观测
tt方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测
stack输出当前方法被调用的调用路径
version输出当前目标Java进程所加载的Greys版本号
quit退出greys客户端
shutdown关闭greys服务端
reset重置增强类,将被greys增强过的类全部还原
session查看当前会话
jvm查看当前JVM的信息
  • sc命令

sc -df *.impl.ApplyImpl
查看PreLoanImpl类信息

  • sm命令

sm -d .impl.ApplyImpl
查看ApplyImpl所有方法信息

  • monitor命令

monitor -c 20 *impl.PostLoanImpl monitorAdd
统计周期为20s,统计PostLoanImpl类的monitorAdd方法情况

  • trace命令

trace cn.fraudmetrix.creditcloud.api.impl.PostLoanImpl monitorAdd
跟踪PostLoanImpl的monitorAdd方法调用stack并统计调用时间开销

  • ptrace命令

ptrace -t cn.fraudmetrix.creditcloud.api.impl.PostLoanImpl monitorAdd
跟踪PostLoanImpl的monitorAdd方法调用stack中含路径名为fraudmetrix并统计调用时间开销

  • watch命令

watch -bs *.impl.PostLoanImpl monitorAdd 'params[0] + "\t" + params[1]+ "\t" + returnObj'
查看PostLoanImpl的monitorAdd方法的入参、返回值信息

watch -b *.impl.PostLoanImpl monitorAdd 'params[0]' -x 1
查看PostLoanImpl的monitorAdd方法的第一个入参信息,并展开一层显示

  • tt命令

tt -t -n 3 *PostLoanImpl monitorAdd
记录3次PostLoanImpl类的monitorAdd方法的执行情况。

Greys使用和介绍具体查看:

https://github.com/oldmanpush...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值