func debugHandler() http.Handler { debugRouter := http.NewServeMux() debugRouter.Handle("/debug/pprof/", http.HandlerFunc(pprof.Index)) debugRouter.Handle("/debug/pprof/cmdline", http.HandlerFunc(pprof.Cmdline)) debugRouter.Handle("/debug/pprof/profile", http.HandlerFunc(pprof.Profile)) debugRouter.Handle("/debug/pprof/symbol", http.HandlerFunc(pprof.Symbol)) debugRouter.Handle("/debug/pprof/trace", http.HandlerFunc(pprof.Trace)) debugRouter.HandleFunc("/debug/requests", func(w http.ResponseWriter, req *http.Request) { any, sensitive := trace.AuthRequest(req) if !any { http.Error(w, "not allowed", http.StatusUnauthorized) return } w.Header().Set("Content-Type", "text/html; charset=utf-8") trace.Render(w, req, sensitive) }) debugRouter.HandleFunc("/debug/events", func(w http.ResponseWriter, req *http.Request) { any, sensitive := trace.AuthRequest(req) if !any { http.Error(w, "not allowed", http.StatusUnauthorized) return } w.Header().Set("Content-Type", "text/html; charset=utf-8") trace.RenderEvents(w, req, sensitive) }) return debugRouter }
// DebugRequests serves the /debug/requests endpoint. func (h *Handler) DebugRequests(p httprequest.Params, r *DebugRequestsRequest) error { sensitive, err := h.checkTraceAllowed(p.Request) if err != nil { return errgo.Mask(err, errgo.Any) } trace.Render(p.Response, p.Request, sensitive) return nil }