这是一个创建于 2377 天前的主题,其中的信息可能已经有所发展或是发生改变。
现在线上的程序逻辑比较复杂,协程较多。有的时候会碰到一些异常问题,需要一个较好的 bug 追踪方案。
目前我们的做法是起一个 safemap,维护一个 map[GoroutineID]map[描述][状态] 的结构,代码中在需要得时候更新这个数据结构,比如开始收集信息、收集信息结束之类得。
需要收集得不光是 error 信息,还可能包含程序某个协程逻辑运行到哪里了。
此功能默认不开启。需要 debug 时通过访问程序得一个 http 接口来开启此功能,然后通过接口获取 safemap 的数据。
现在感觉这种方案太原始了,不知道有没有更好的方案,求大家推荐
谢谢
3 条回复 • 2017-11-03 13:50:43 +08:00
|
|
1
sryanyuan 2017-10-31 17:35:27 +08:00
goroutine 的堆栈信息 pprof 就能看到了吧
|
|
|
2
ry_wang 2017-11-01 14:51:20 +08:00
@ sryanyuan 查了查 net/http/pprof 这个库,能满足我们一部分得需求,我详细看看 谢谢~
|