GitPedia

Pprof

gin pprof middleware

From gin-contrib·Updated June 29, 2026·View on GitHub·

> Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool. The project is written primarily in Go, distributed under the MIT License license, first published in 2016. Key topics include: gin-gonic, gin-middleware, pprof.

Latest release: v1.5.4
March 28, 2026View Changelog →

pprof

Run Tests
Trivy Security Scan
codecov
Go Report Card
GoDoc

gin pprof middleware

Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool.

Usage

Start using it

Download and install it:

bash
go get github.com/gin-contrib/pprof

Import it in your code:

go
import "github.com/gin-contrib/pprof"

Example

go
package main import ( "github.com/gin-contrib/pprof" "github.com/gin-gonic/gin" ) func main() { router := gin.Default() pprof.Register(router) router.Run(":8080") }

change default path prefix

go
func main() { router := gin.Default() // default is "debug/pprof" pprof.Register(router, "dev/pprof") router.Run(":8080") }

custom router group

go
package main import ( "net/http" "github.com/gin-contrib/pprof" "github.com/gin-gonic/gin" ) func main() { router := gin.Default() debugGroup := router.Group("/debug", func(c *gin.Context) { if c.Request.Header.Get("Authorization") != "foobar" { c.AbortWithStatus(http.StatusForbidden) return } c.Next() }) pprof.RouteRegister(debugGroup, "pprof") router.Run(":8080") }

Use the pprof tool

Then use the pprof tool to look at the heap profile:

bash
go tool pprof http://localhost:8080/debug/pprof/heap

Or to look at a 30-second CPU profile:

bash
go tool pprof http://localhost:8080/debug/pprof/profile?seconds=30

Or to look at the goroutine blocking profile, after calling runtime.SetBlockProfileRate in your program:

bash
go tool pprof http://localhost:8080/debug/pprof/block

Or to collect a 5-second execution trace:

bash
wget http://localhost:8080/debug/pprof/trace?seconds=5

Download the pprof profile data:

bash
curl -v -H "Authorization: foobar" -o profile.pb.gz \ http://localhost:8080/debug/pprof/profile?seconds=60 go tool pprof -http=:8099 profile.pb.gz

Contributors

Showing top 11 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from gin-contrib/pprof via the GitHub API.Last fetched: 6/29/2026