Как стать автором
Обновить

Комментарии 5

В статье упомянули кастомный URL-роутер, но пример настройки не полный (хотя по тексту дальше используют конкретные профили). Для heap, goroutine,… :


r.Handle("/debug/pprof/profile/heap", pprof.Handler("heap"))
// etc

// полный пример для gorilla/mux
router := mux.NewRouter()

pprof := router.PathPrefix("/debug/pprof").Subrouter()
pprof.HandleFunc("/", pprof.Index)
pprof.HandleFunc("/cmdline", pprof.Cmdline)
pprof.HandleFunc("/symbol", pprof.Symbol)
pprof.HandleFunc("/trace", pprof.Trace)

profile := pprof.PathPrefix("/profile").Subrouter()
profile.HandleFunc("", pprof.Profile)
profile.Handle("/goroutine", pprof.Handler("goroutine"))
profile.Handle("/threadcreate", pprof.Handler("threadcreate"))
profile.Handle("/heap", pprof.Handler("heap"))
profile.Handle("/block", pprof.Handler("block"))
profile.Handle("/mutex", pprof.Handler("mutex"))
В статье приведены примеры для Mux из стандартного net/http.
Ему не нужны дополнительные роуты для goroutine, threadcreate и остальных, потому что они будут обслужены в Index хендлере: https://golang.org/src/net/http/pprof/pprof.go?s=6486:6536#L207

Ваше замечание будет полезно для тех, кто использует нестандартные Mux. Спасибо.
Команда pprof text выводит информацию. Но команда pprof web дает такой результат:
warning, language svg not recognized, use one of:
dot canon plain plain-ext

В чем может быть проблема?
Возможно вам нужно поставить утилиту dot. Она входит в набор graphviz.
поставил graphviz + dot обнаруживает команду
Зарегистрируйтесь на Хабре, чтобы оставить комментарий