falcon-plus
falcon-plus copied to clipboard
请问graph如何利用pprof进行内存分析?
现在遇到了graph内存缓慢持续上涨的情况, 想参照这篇文章 https://juejin.im/post/6844903855386263559 进行内存分析, 但是对graph的http端口加上 /debug/pprof 路径无法获得内存使用信息, 请问应该如何分析graph组件的内存找到故障原因?
我自己查了一下原因.
由于graph模块使用了gin当做http框架, 而不是直接使用的net/http
. gin框架接管了路由, 所以导致直接引入net/http/pprof
这种方式理应注册的/debug/pprof
路由路径没有生效
https://github.com/open-falcon/falcon-plus/blob/da7e74c7f749998eacc956f153693d0470987262/modules/graph/http/http.go#L23
同样的问题还出现在api和alarm组件里. 其他组件由于使用的是net/http
, 所以pprof都是可以正常使用的.
gin框架如果想使用pprof, 需要手动添加/debug/pprof/*
的路由, 或者是使用https://github.com/gin-contrib/pprof 这个包, 但是这个包目前需要gin v1.6.3及以上的版本, 即使是它的最初版本也需要gin v1.3.0及以上的版本
https://github.com/gin-contrib/pprof/blob/506e7fc714ea7f2dfd31745ca8430d006733f6ff/go.mod#L5
falcon-plus现在govendor中的gin版本还停留在v1.1.4, 请问能否提个PR升级一下?
可以升级gin:) 欢迎 PR @JimmyTinsley
PR #906