greys使用

26 篇文章 0 订阅
12 篇文章 0 订阅

1、greys是什么

如果想在线上debug一个方法或者想看方法的返回,不需要申请线上debug,不需要重新加日志重新发布,直接watch指定的函数就可以看到调用结果的情况下有什么好的工具?答案是greys。

Greys是一个全新在线诊断工具。

2、greys原理

在说明greys原理之前我们看看jvm的attach机制,attach机制是jvm提供一种jvm进程间通信的能力,能让一个进程传命令给另外一个进程,并让它执行内部的一些操作。比如说我们为了让另外一个jvm进程把线程dump出来,那么我们跑了一个jstack的进程,然后传了个pid的参数,告诉它要哪个进程进行线程dump,既然是两个进程,那肯定涉及到进程间通信,以及传输协议的定义,比如要执行什么操作,传了什么参数等。

理解了attach机制我们再来说greys,greys是使用了基于attach实现的Instrumentation实现的类似AOP的功能。

3、greys实战

下载地址:http://ompc.oss.aliyuncs.com/greys/release/greys-1.7.6.4-bin.zip

安装:./install-local.sh

启动agent:./ga.sh pid

启动监控:./greys.sh pid@ip:8989

./greys.sh help

Greys命令详解:

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

tt -t com\.springboot\.services\.HeheService hehe

参考:https://github.com/oldmanpushcart/greys-anatomy/wiki/greys-pdf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值