Use generic handler for pprof profile lookups
This more (in spirit) mimics the handler usage in net/http/pprof. It also makes sure that any new profiles that are added are automatically supported (e.g. `mutex` profiles in go1.8). Signed-off-by: Brian Goff <cpuguy83@gmail.com>
This commit is contained in:
parent
297786f30c
commit
a1b06933af
1 changed files with 9 additions and 4 deletions
|
@ -19,10 +19,15 @@ func profilerSetup(mainRouter *mux.Router) {
|
|||
r.HandleFunc("/pprof/profile", pprof.Profile)
|
||||
r.HandleFunc("/pprof/symbol", pprof.Symbol)
|
||||
r.HandleFunc("/pprof/trace", pprof.Trace)
|
||||
r.HandleFunc("/pprof/block", pprof.Handler("block").ServeHTTP)
|
||||
r.HandleFunc("/pprof/heap", pprof.Handler("heap").ServeHTTP)
|
||||
r.HandleFunc("/pprof/goroutine", pprof.Handler("goroutine").ServeHTTP)
|
||||
r.HandleFunc("/pprof/threadcreate", pprof.Handler("threadcreate").ServeHTTP)
|
||||
r.HandleFunc("/pprof/{name}", handlePprof)
|
||||
}
|
||||
|
||||
func handlePprof(w http.ResponseWriter, r *http.Request) {
|
||||
var name string
|
||||
if vars := mux.Vars(r); vars != nil {
|
||||
name = vars["name"]
|
||||
}
|
||||
pprof.Handler(name).ServeHTTP(w, r)
|
||||
}
|
||||
|
||||
// Replicated from expvar.go as not public.
|
||||
|
|
Loading…
Reference in a new issue