线上问题解决的自我总结

大家碰到线上问题,一般都是怎么处理的?我不知道大家怎么处理的。
反正我是这样处理的,通常在页面上进行重试,记录下重试的数据,然后查看数据库的值,还有就是查看日志。如果是多台机子的集群,就蛋疼了,谁知道日志刚刚访问哪台机子呀?
淘宝提供了工具,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());
}

猜你喜欢

转载自blog.csdn.net/mylove709834360/article/details/9923345