diff --git a/pprof.go b/pprof.go index 7cf185e..8132bdd 100644 --- a/pprof.go +++ b/pprof.go @@ -1,7 +1,6 @@ package pprof import ( - "net/http" "net/http/pprof" "github.com/gin-gonic/gin" @@ -28,24 +27,17 @@ func Register(r *gin.Engine, prefixOptions ...string) { prefixRouter := r.Group(prefix) { - prefixRouter.GET("/", pprofHandler(pprof.Index)) - prefixRouter.GET("/cmdline", pprofHandler(pprof.Cmdline)) - prefixRouter.GET("/profile", pprofHandler(pprof.Profile)) - prefixRouter.POST("/symbol", pprofHandler(pprof.Symbol)) - prefixRouter.GET("/symbol", pprofHandler(pprof.Symbol)) - prefixRouter.GET("/trace", pprofHandler(pprof.Trace)) - prefixRouter.GET("/allocs", pprofHandler(pprof.Handler("allocs").ServeHTTP)) - prefixRouter.GET("/block", pprofHandler(pprof.Handler("block").ServeHTTP)) - prefixRouter.GET("/goroutine", pprofHandler(pprof.Handler("goroutine").ServeHTTP)) - prefixRouter.GET("/heap", pprofHandler(pprof.Handler("heap").ServeHTTP)) - prefixRouter.GET("/mutex", pprofHandler(pprof.Handler("mutex").ServeHTTP)) - prefixRouter.GET("/threadcreate", pprofHandler(pprof.Handler("threadcreate").ServeHTTP)) - } -} - -func pprofHandler(h http.HandlerFunc) gin.HandlerFunc { - handler := http.HandlerFunc(h) - return func(c *gin.Context) { - handler.ServeHTTP(c.Writer, c.Request) + prefixRouter.GET("/", gin.WrapF(pprof.Index)) + prefixRouter.GET("/cmdline", gin.WrapF(pprof.Cmdline)) + prefixRouter.GET("/profile", gin.WrapF(pprof.Profile)) + prefixRouter.POST("/symbol", gin.WrapF(pprof.Symbol)) + prefixRouter.GET("/symbol", gin.WrapF(pprof.Symbol)) + prefixRouter.GET("/trace", gin.WrapF(pprof.Trace)) + prefixRouter.GET("/allocs", gin.WrapH(pprof.Handler("allocs"))) + prefixRouter.GET("/block", gin.WrapH(pprof.Handler("block"))) + prefixRouter.GET("/goroutine", gin.WrapH(pprof.Handler("goroutine"))) + prefixRouter.GET("/heap", gin.WrapH(pprof.Handler("heap"))) + prefixRouter.GET("/mutex", gin.WrapH(pprof.Handler("mutex"))) + prefixRouter.GET("/threadcreate", gin.WrapH(pprof.Handler("threadcreate"))) } }