falcon-plus icon indicating copy to clipboard operation
falcon-plus copied to clipboard

请问graph如何利用pprof进行内存分析?

Open JimmyTinsley opened this issue 4 years ago • 3 comments

现在遇到了graph内存缓慢持续上涨的情况, 想参照这篇文章 https://juejin.im/post/6844903855386263559 进行内存分析, 但是对graph的http端口加上 /debug/pprof 路径无法获得内存使用信息, 请问应该如何分析graph组件的内存找到故障原因?

JimmyTinsley avatar Oct 09 '20 10:10 JimmyTinsley

我自己查了一下原因. 由于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升级一下?

JimmyTinsley avatar Oct 15 '20 09:10 JimmyTinsley

可以升级gin:) 欢迎 PR @JimmyTinsley

laiwei avatar Oct 16 '20 02:10 laiwei

PR #906

laiwei avatar Oct 23 '20 06:10 laiwei