不知道有什么应用程序状态收集方案,求大家推荐

2017-10-31 15:59:14 +08:00
 ry_wang
现在线上的程序逻辑比较复杂,协程较多。有的时候会碰到一些异常问题,需要一个较好的 bug 追踪方案。

目前我们的做法是起一个 safemap,维护一个 map[GoroutineID]map[描述][状态] 的结构,代码中在需要得时候更新这个数据结构,比如开始收集信息、收集信息结束之类得。

需要收集得不光是 error 信息,还可能包含程序某个协程逻辑运行到哪里了。

此功能默认不开启。需要 debug 时通过访问程序得一个 http 接口来开启此功能,然后通过接口获取 safemap 的数据。

现在感觉这种方案太原始了,不知道有没有更好的方案,求大家推荐

谢谢
1032 次点击
所在节点    Go 编程语言
3 条回复
sryanyuan
2017-10-31 17:35:27 +08:00
goroutine 的堆栈信息 pprof 就能看到了吧
ry_wang
2017-11-01 14:51:20 +08:00
@sryanyuan 查了查 net/http/pprof 这个库,能满足我们一部分得需求,我详细看看


谢谢~
freestyle
2017-11-03 13:50:43 +08:00
函数返回 err 的时候包装一下嵌入调用栈信息即可. 最后打 log https://github.com/hanjm/errors http 服务打日志时带上 requestID

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/402300

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX