我很困惑一个问题,我不能分析我的golang程序,我在/debug/pprof下有所有其他端点,但不在/debug/pprof/profile下用于CPU分析有没有人遇到过这样的问题?
go tool pprof http://localhost:7778/debug/pprof/profile
Fetching profile from http://localhost:7778/debug/pprof/profile
Please wait... (30s)
server response: 404 Not Found而
/debug/pprof/
profiles:
19 block
31 goroutine
10 heap
0 mutex
11 threadcreate
full goroutine stack dump我是这样设置性能分析的
r := http.NewServeMux()
r.Handle("/debug/pprof/", http.HandlerFunc(pprof.Index))可能的原因是什么?
更新:运行
http.ListenAndServe("localhost:4444", nil)(即启动默认http服务器)修复了我的自定义终结点的问题
发布于 2017-05-19 17:09:28
找到了,我没有把所有的处理程序都注册为在init here https://golang.org/src/net/http/pprof/pprof.go中完成的
发布于 2018-12-13 15:38:59
我犯了和你一样的错误,我已经根据文档进行了注册。为了防止任何人遇到同样的问题,您需要添加http.DefaultServeMux,因此完整的代码行应该是:
r := mux.NewRouter() r.HandleFunc("/debug/pprof/",pprof.Index) r.HandleFunc("/debug/pprof/cmdline",pprof.Cmdline) r.HandleFunc(“/debug/pprof/:=”,pprof.Profile) r.HandleFunc(“/debug/pprof/mux.NewRouter”,pprof.Symbol) r.HandleFunc(“/debug/pprof/pprof.Index”,pprof.Trace)
引用为here
https://stackoverflow.com/questions/44065511
复制相似问题