线上系统为何经常出错?数据库为何屡遭黑手?业务调用为何频频失败?连环异常堆栈案,究竟是那次调用所为? 数百台服务器意外雪崩背后又隐藏着什么?是软件的扭曲还是硬件的沦丧? 走进科学带你了解Greys, Java线上问题诊断工具。
-
远程安装
curl -sLk http://ompc.oss.aliyuncs.com/greys/install.sh|sh
-
远程安装(短链接)
curl -sLk http://t.cn/R2QbHFc|sh
-
修复trace命令在遇到方法完全try...catch异常时堆栈错误的情况
-
修复tt命令搜索非
Advice
对象提供方法时无法正确找到直接变量(如cost
,index
等)的BUG.用#cost
,#index
代替 -
增加
gs.sh
和ga.sh
两个脚本 -
增加
js
命令,支持javascript脚本 -
js
命令支持CommonJS规范(BMD规范实现)/** * 模版 */ require(['greys'], function (greys) { greys.watching({ /** * 脚本创建函数 * 在脚本第一次运行时候执行,可以在这个函数中进行脚本初始化工作 * @param output 输出器 */ create: function (output) { }, /** * 脚本销毁函数 * 在脚本运行完成时候执行,可以在这个函数中进行脚本销毁工作 * @param output 输出器 */ destroy: function (output) { }, /** * 方法执行前回调函数 * 在Java方法执行之前执行该函数 * @param output 输出器 * @param advice 通知点 * @param context 方法执行上下文(线程安全) */ before: function (output, advice, context) { }, /** * 方法返回回调函数 * 在Java方法执行成功之后,Java方法返回之前执行该函数 * @param output 输出器 * @param advice 通知点 * @param context 方法执行上下文(线程安全) */ returning: function (output, advice, context) { }, /** * 方法抛异常回调函数 * 在Java方法内部执行抛异常之后,Java方法对外抛异常之前执行该函数 * @param output 输出器 * @param advice 通知点 * @param context 方法执行上下文(线程安全) */ throwing: function (output, advice, context) { }, }); })
主版本
.大版本
.小版本
.漏洞修复
-
主版本
这个版本更新说明程序架构体系进行了重大升级,比如之前的0.1版升级到1.0版本,整个软件的架构从单机版升级到了SOCKET多机版。并将Greys的性质进行的确定:Java版的HouseMD,但要比前辈们更强。
-
大版本
程序的架构设计进行重大改造,但不影响用户对这款软件的定位。
-
小版本
增加新的命令和功能
-
漏洞修复
对现有版本进行漏洞修复和增强
-
主版本
、大版本
、之间不做任何向下兼容的承诺,即0.1
版本的Client不保证一定能正常访问1.0
版本的Server。 -
小版本
不兼容的版本会在版本升级中指出 -
漏洞修复
保证向下兼容
-
-
打开终端
git clone git@github.com:oldmanpushcart/greys-anatomy.git cd greys-anatomy/bin ./greys-packages.sh
-
程序执行
在
target/
目录下生成对应版本的release文件,比如当前版本是1.7.0.4
,则生成文件target/greys-1.7.0.4-bin.zip
程序在本地编译时会主动在本地安装当前编译的版本,所以编译完成后即相当在本地完成了安装。
我编写和维护这款软件已经5年了,5年中Greys也从0.1
版本一直重构到现在的1.7
。在这个过程中我得到了许多人的帮助与建议,并在年底我计划发布2.0
版本,将开放Greys的底层通讯协议,支持websocket访问。
多年的问题排查经验我没有过多的分享,一个Java程序员个中的苦闷也无从分享,一切我都融入到了这款软件的命令中,希望这些沉淀能帮助到可能需要到的你少走一些弯路,同时我也非常期待你们对她的反馈,这样我将感到非常开心和有成就感。
Greys的成长需要大家的帮助。
-
分享你使用Greys的经验
我非常希望能得到大家的使用反馈和经验分享,如果你有,请将分享文章敏感信息脱敏之后邮件给我:oldmanpushcart@gmail.com,我将会分享给更多的同行。
-
帮助我完善代码或文档
一款软件再好,也需要详细的帮助文档;一款软件再完善,也有很多坑要埋。今天我的精力非常有限,希望能得到大家共同的帮助。
-
如果你喜欢这款软件,欢迎打赏一杯咖啡
嗯,说实话,我是指望用这招来买辆玛莎拉蒂...当然是个玩笑~你们的鼓励将会是我的动力,钱不在乎多少,重要的是我将能从中得到大家善意的反馈,这将会是我继续前进的动力。
有问题阿里同事可以通过旺旺找到我,阿里外的同事可以通过我的微博联系到我。今晚的杭州大雪纷飞,明天西湖应该非常的美丽,大家晚安。
菜鸟-杜琨(dukun@alibaba-inc.com)