您的位置:首页 > 其它

线上问题解决的自我总结

2013-08-12 13:51 225 查看
大家碰到线上问题,一般都是怎么处理的?我不知道大家怎么处理的。

反正我是这样处理的,通常在页面上进行重试,记录下重试的数据,然后查看数据库的值,还有就是查看日志。如果是多台机子的集群,就蛋疼了,谁知道日志刚刚访问哪台机子呀?

淘宝提供了工具,logSearch,可以查询一系统机子的日志。

linux命令好像也有一个pgm,今天找了一下,没有工到。回头再问问别人。
 pgm -A -f consign "grep -r 2013-08-09 17:42:*execption /home/admin/consign/logs/*/logistics.log"

armory -g consign  -S online -l

我介绍一个工具,https://github.com/chengtongda/greys-anatomy , 版权来自我的老大。

这个东西挺有意思,是用java写的,主要用的技术很多,代理,注解,反射,修改字节码,有兴趣可以看看,我只提醒一点,这个程序有两个入口处,

里面最贱的一个功能,javascript,你可以写javascript代码,把程序的入参全部打印出来。也能把程序的返回值给打印出来。
不信,你可以玩玩。

--------------------------------------------------------------------------------以下是日常开发所有脚本:------------------------------------------------------------------------------------

javascript -class .*BatchConsign.* -method .*execute.* -file /home/zhengguoxing/g.js

javascript -class .*DefaultOrderAO.* -method .*queryOrdersByTradeIds.* -file /home/zhengguoxing/g.js

javascript -class .*LogisticsOrderServiceImpl.* -method .*createLogisticsOrder.* -file /home/zhengguoxing/g.js

function  before(p,o,m,t){
var b = p.parameters[0] ;

        for(var a in b ){
out.println("p:"+a+"  value:"+b[a])
}

}

function finished(p,o,m,t){

}

monitor -class .*DefaultOrderAO.* -method .*queryOrdersByTradeIds.* -cycle 10

g.js

function  before(p,o,m,t){

                var b = p.parameters[0] ;

                for(var i= 0 ; i<b.length;i++){
o.println(b[i]+"\n");
}

               o.println( "2:"+p.parameters[1]);

}

function finished(p,o,m,t){
o.println("\nout:-----------\n");
o.println("return:"+p.returnObj.size());

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: