java 运行排查工具 greys

什么情况使用greys

  1. 没有记录入参出参?
  2. 没有记录方法耗时,只能通过jstack猜?

greys可以帮你解决这个问题。

安装方法:

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

加入到$PATH中可方便调用

连接到greys

greys.sh [@IP:PORT]

使用help 查看所有的命令

所有命令

help $command
可以查看具体的命令使用方式

sc

command

sc

查看加载的类:

  查看加载的所有的String类
  sc -E .*String
正则匹配String类
查看类的加载路径和加载器
sc -d org.apache.xerces.xni.XMLString
查看类的加载路径和加载器

sm

查看类的方法,功能与上类似。不再赘述。

monitor

monitor -c 5 com.alitrip.trade.ttp.EnvListener testFun

|timestamp| class | method |total | success|fail |rt |fail-rate|
| -------- | -----: | :----: |
|时间戳| Java类 | 方法 |调用次数|成功次数|失败次数|平均RT|失败率 |

方法执行时间

trace

trace能方便的帮助你定位和发现因RT高而导致的性能问题缺陷
trace class-pattern   method-pattern
trace性能定位

[101,101ms]的含义,101所代表的含义是:当前节点的整体耗时;
101的含义是:当前节点在当前步骤的耗时;两者之间用逗号分割,单位为毫秒。
只能追踪一层调用的时间

ptrace

  ptrace -t class-pattern   method-pattern
参数 作用
[t] 显示出所有的入参返回值

剩余的与trace类似

watch

watch命令能方便的让你观察到指定方法的调用情况。
能观察到的范围为:

  • 返回值
  • 抛出异常
  • 入参
 watch [-b] class-pattern   method-pattern expression

[b]:在方法调用之前观察
[e]:在方法抛出异常之后环节观察
[s]:在方法正常返回之后环节观察
[f]:在方法结束之后(正常返回和异常返回)环节观察
e.g 查看抛出异常方法的入参:

watch -f -x 1 com.alitrip.trade.trp.dal.dao.impl.TripTrpApplyDAOImpl getTripTrpApplyList 'params[0]'

你可能感兴趣的:(java 运行排查工具 greys)