gin pprof middleware
Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool.
Download and install it:
$ go get github.com/gin-contrib/pprofImport it in your code:
import "github.com/gin-contrib/pprof"package main
import (
"github.com/gin-contrib/pprof"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
pprof.Register(router, nil)
router.Run(":8080")
}func main() {
router := gin.Default()
pprof.Register(router, &pprof.Options{
// default is "debug/pprof"
RoutePrefix: "debug/pprof",
})
router.Run(":8080")
}Then use the pprof tool to look at the heap profile:
go tool pprof http://localhost:8080/debug/pprof/heapOr to look at a 30-second CPU profile:
go tool pprof http://localhost:8080/debug/pprof/profileOr to look at the goroutine blocking profile, after calling runtime.SetBlockProfileRate in your program:
go tool pprof http://localhost:8080/debug/pprof/blockOr to collect a 5-second execution trace:
wget http://localhost:8080/debug/pprof/trace?seconds=5