diff --git a/godeltaprof/http/pprof/pprof.go b/godeltaprof/http/pprof/pprof.go index 81331df..5adaf00 100644 --- a/godeltaprof/http/pprof/pprof.go +++ b/godeltaprof/http/pprof/pprof.go @@ -21,9 +21,10 @@ type deltaProfiler interface { } func init() { - http.HandleFunc("/debug/pprof/delta_heap", Heap) - http.HandleFunc("/debug/pprof/delta_block", Block) - http.HandleFunc("/debug/pprof/delta_mutex", Mutex) + prefix := routePrefix() + http.HandleFunc(prefix+"/debug/pprof/delta_heap", Heap) + http.HandleFunc(prefix+"/debug/pprof/delta_block", Block) + http.HandleFunc(prefix+"/debug/pprof/delta_mutex", Mutex) } func Heap(w http.ResponseWriter, r *http.Request) { diff --git a/godeltaprof/http/pprof/pprof_go21.go b/godeltaprof/http/pprof/pprof_go21.go new file mode 100644 index 0000000..dff3250 --- /dev/null +++ b/godeltaprof/http/pprof/pprof_go21.go @@ -0,0 +1,7 @@ +//go:build !go1.22 + +package pprof + +func routePrefix() string { + return "" +} diff --git a/godeltaprof/http/pprof/pprof_go22.go b/godeltaprof/http/pprof/pprof_go22.go new file mode 100644 index 0000000..069ec98 --- /dev/null +++ b/godeltaprof/http/pprof/pprof_go22.go @@ -0,0 +1,10 @@ +//go:build go1.22 + +package pprof + +func routePrefix() string { + // As of go 1.23 we will panic if we don't prefix with "GET " + // https://github.com/golang/go/blob/9fcffc53593c5cd103630d0d24ef8bd91e17246d/src/net/http/pprof/pprof.go#L98-L97 + // https://github.com/golang/go/commit/9fcffc53593c5cd103630d0d24ef8bd91e17246d + return "GET " +}