Merge pull request #2818 from pnasrat/docker-pprof

Wire in pprof handlers.
This commit is contained in:
Solomon Hykes 2013-11-28 14:43:13 -08:00
commit 3faf450f11
1 changed files with 14 additions and 1 deletions

15
api.go
View File

@ -15,6 +15,7 @@ import (
"mime" "mime"
"net" "net"
"net/http" "net/http"
"net/http/pprof"
"os" "os"
"os/exec" "os/exec"
"regexp" "regexp"
@ -1037,9 +1038,21 @@ func makeHttpHandler(srv *Server, logging bool, localMethod string, localRoute s
} }
} }
func AttachProfiler(router *mux.Router) {
router.HandleFunc("/debug/pprof/", pprof.Index)
router.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
router.HandleFunc("/debug/pprof/profile", pprof.Profile)
router.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
router.HandleFunc("/debug/pprof/heap", pprof.Handler("heap").ServeHTTP)
router.HandleFunc("/debug/pprof/goroutine", pprof.Handler("goroutine").ServeHTTP)
router.HandleFunc("/debug/pprof/threadcreate", pprof.Handler("threadcreate").ServeHTTP)
}
func createRouter(srv *Server, logging bool) (*mux.Router, error) { func createRouter(srv *Server, logging bool) (*mux.Router, error) {
r := mux.NewRouter() r := mux.NewRouter()
if os.Getenv("DEBUG") != "" {
AttachProfiler(r)
}
m := map[string]map[string]HttpApiFunc{ m := map[string]map[string]HttpApiFunc{
"GET": { "GET": {
"/events": getEvents, "/events": getEvents,