资讯专栏INFORMATION COLUMN

greys在线问题诊断

frolc / 2783人阅读

摘要:目标群体有时候突然一个问题反馈上来,需要入参才能完成定位,但恰恰没有任何日志。通过指定渲染路径,并可记录下路径中所有方法的入参返值与命令联动。使用和介绍具体查看

目标群体

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

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

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

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

内置主要功能

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

方法执行监控

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

方法执行数据操作

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

性能开销渲染!

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

查看方法调用堆栈

软件安装

在线安装(推荐)

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

本地安装

greys-1.7.6.4-bin.zip-3108.1kB

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

cd greys
sh ./install-local.sh
启动Greys

目标机器启动

./ga.sh 
./greys.sh [@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] + " " + params[1]+ " " + 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...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66733.html

相关文章

  • Arthas使用指南

    摘要:注意这个统计也会产生一定的开销这个接口本身开销比较大,因此会看到的线程占用一定的百分比,为了降低统计自身的开销带来的影响,可以把采样间隔拉长一些,比如毫秒。 Arthas 能为你做什么? 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在预发 debug 一下,难道只能通过加...

    darkerXi 评论0 收藏0
  • Java在线调试工具

    摘要:在线调试工具你是否突然一天接到电话线上服务怎么回事,有人反应哦,我先看看啊心想去,真的有问题,竟然没打是不是传参传错了看不出来了异常信息也没有这有点难办啊遇到这样的一种情况,如果需要发现问题最快且风险最小的解决方式,你会怎么办远程,不行,对 Java在线调试工具 你是否突然一天接到电话: Qa :线上xx服务怎么回事,有人反应@#¥#@#¥#You :哦,我先看看啊...心想: 去,真...

    Bamboy 评论0 收藏0
  • 从DevOps到AIOps,阿里如何实现智能化运维?

    摘要:但随着大数据及人工智能的快速发展,传统的运维方式及解决方案已不能满足需求。从海量日志中获取慢属于大数据分析范畴。 摘要: AIOps英文全称是Algorithmic IT Operations,是基于算法的IT运维。AIOps是运维领域上的热点,然而在满足业务SLA的前提下,如何提升平台效率和稳定性及降低资源成本成为AIOps面临的问题和挑战。 背景 随着搜索业务的快速发展,搜索系统...

    codeKK 评论0 收藏0
  • 数据库智能管理助手-CloudDBA

    摘要:摘要阿里云主要分为离线分析和在线分析两种功能。演讲嘉宾简介勋臣,阿里云内核团队技术专家,目前阿里云专家系统开发。通过诊断报告定位性能下降原因。 摘要:阿里云CloudDBA主要分为离线分析和在线分析两种功能。帮助用户节省成本,定位问题,分析原因并推荐解决方法。CloudDBA可以做到实时诊断,离线诊断和SQL优化。并且通过MySQL的参数调优,检测参数的不合理或者准备的延迟的情况。 演...

    fsmStudy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<