From b4d7656e97398eb889a4a7615ceb5bc4d68d50fd Mon Sep 17 00:00:00 2001 From: Michael Li Date: Mon, 9 Feb 2026 16:14:18 +0000 Subject: [PATCH] backport of commit 05d885efc6f209baf51c1a19e4d4255d8c74c251 --- internal/cmd/base/pprof_on.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/internal/cmd/base/pprof_on.go b/internal/cmd/base/pprof_on.go index 7c12a47e65..3a23395fdf 100644 --- a/internal/cmd/base/pprof_on.go +++ b/internal/cmd/base/pprof_on.go @@ -10,18 +10,29 @@ import ( "context" "errors" "net/http" + "net/http/pprof" "github.com/hashicorp/boundary/internal/event" - - _ "net/http/pprof" ) func StartPprof(ctx context.Context) { const op = "base.StartPprof" go func() { const addr = "localhost:6060" + mux := http.NewServeMux() + mux.HandleFunc("/debug/pprof/", pprof.Index) + mux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline) + mux.HandleFunc("/debug/pprof/profile", pprof.Profile) + mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol) + mux.HandleFunc("/debug/pprof/trace", pprof.Trace) + mux.Handle("/debug/pprof/block", pprof.Handler("block")) + mux.Handle("/debug/pprof/goroutine", pprof.Handler("goroutine")) + mux.Handle("/debug/pprof/heap", pprof.Handler("heap")) + mux.Handle("/debug/pprof/threadcreate", pprof.Handler("threadcreate")) + mux.Handle("/debug/pprof/mutex", pprof.Handler("mutex")) + mux.Handle("/debug/pprof/allocs", pprof.Handler("allocs")) event.WriteSysEvent(ctx, op, "starting pprof HTTP server", "addr", addr) - if err := http.ListenAndServe(addr, nil); err != nil && !errors.Is(err, http.ErrServerClosed) { + if err := http.ListenAndServe(addr, mux); err != nil && !errors.Is(err, http.ErrServerClosed) { event.WriteSysEvent(ctx, op, "failed to serve pprof HTTP server", "error", err.Error()) } }()