pprof

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2024 License: MIT, MIT Imports: 2 Imported by: 2

README

pprof

gin pprof middleware

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

Copied from gin-contrib/pprof

Usage

Start using it

Import it in your code:

import "github.com/andoma-go/gin-contrib/pprof"
Example
package main

import (
  "github.com/andoma-go/gin-contrib/pprof"
  "github.com/andoma-go/gin"
)

func main() {
  router := gin.Default()
  pprof.Register(router)
  router.Run(":8080")
}
change default path prefix
func main() {
  router := gin.Default()
  // default is "debug/pprof"
  pprof.Register(router, "dev/pprof")
  router.Run(":8080")
}
custom router group
package main

import (
  "net/http"

  "github.com/andoma-go/gin-contrib/pprof"
  "github.com/andoma-go/gin"
)

func main() {
  router := gin.Default()
  adminGroup := router.Group("/admin", func(c *gin.Context) {
    if c.Request.Header.Get("Authorization") != "foobar" {
      c.AbortWithStatus(http.StatusForbidden)
      return
    }
    c.Next()
  })
  pprof.RouteRegister(adminGroup, "pprof")
  router.Run(":8080")
}

Use the pprof tool

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

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

Or to look at a 30-second CPU profile:

go tool pprof http://localhost:8080/debug/pprof/profile

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

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

Or to collect a 5-second execution trace:

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

Documentation

Index

Constants

View Source
const (
	// DefaultPrefix url prefix of pprof
	DefaultPrefix = "/debug/pprof"
)

Variables

This section is empty.

Functions

func Register added in v0.1.4

func Register(r *gin.Engine, prefixOptions ...string)

Register the standard HandlerFuncs from the net/http/pprof package with the provided gin.Engine. prefixOptions is a optional. If not prefixOptions, the default path prefix is used, otherwise first prefixOptions will be path prefix.

func RouteRegister added in v0.1.4

func RouteRegister(rg *gin.RouterGroup, prefixOptions ...string)

RouteRegister the standard HandlerFuncs from the net/http/pprof package with the provided gin.GrouterGroup. prefixOptions is a optional. If not prefixOptions, the default path prefix is used, otherwise first prefixOptions will be path prefix.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL