chore: pprof build updates (#6419)
* chore: Ensure Admin UI is included in pprof build Co-authored-by: ddedbko <Damian3395@gmail.com> * chore: Isolate handlers for pprof endpoints Co-authored-by: ddebko <Damian3395@gmail.com> --------- Co-authored-by: ddedbko <Damian3395@gmail.com>
This commit is contained in:
1 parent
bd109a6b07
commit
8c917f6bae
2 files changed
+15
-3
No files matched your search
@@ -67,6 +67,7 @@ install-no-plugins: install
|
||||
|
||||
.PHONY: build-pprof
|
||||
build-pprof: BUILD_TAGS+=pprof
|
||||
build-pprof: BUILD_TAGS+=ui
|
||||
build-pprof:
|
||||
@echo "==> Building Boundary with memory pprof enabled"
|
||||
@CGO_ENABLED=$(CGO_ENABLED) BUILD_TAGS='$(BUILD_TAGS)' sh -c "'$(CURDIR)/scripts/build.sh'"
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
}()
|
||||
|
||||
Reference in new issue
Block a user