status-go/vendor/github.com/anacrolix/envpprof/README.md

2.4 KiB

envpprof

pkg.go.dev badge

Allows run-time configuration of Go's pprof features and default HTTP mux using the environment variable GOPPROF. Import the package with import _ "github.com/anacrolix/envpprof". envpprof has an init function that will run at process initialization that checks the value of the GOPPROF environment variable. The variable can contain a comma-separated list of values, for example GOPPROF=http,block. The supported keys are:

Key Effect
http Exposes the default HTTP muxer "net/http".DefaultServeMux to the first free TCP port after 6060 on localhost. The process PID, and location are logged automatically when this is enabled. DefaultServeMux is frequently the default location to expose status, and debugging endpoints, including those provided by net/http/pprof. Note that the net/http/pprof import is included with envpprof, and exposed on DefaultServeMux.
cpu Calls "runtime/pprof".StartCPUProfile, writing to a temporary file in $HOME/pprof with the prefix cpu. The file is not removed after use. The name of the file is logged when this is enabled. envpprof.Stop should be deferred from main when this will be used, to ensure proper clean up.
heap This is similar to the cpu key, but writes heap profile information to a file prefixed with heap. The profile will not be written unless Stop is invoked. See cpu for more.
block This calls "runtime".SetBlockProfileRate(1) enabling the profiling of goroutine blocking events. Note that if http is enabled, this exposes the blocking profile at the HTTP path /debug/pprof/block per package net/http/pprof.
mutex This calls "runtime".SetMutexProfileFraction(1) enabling profiling of mutex contention events. Note that if http is enabled, this exposes the profile at the HTTP path /debug/pprof/mutex per package net/http/pprof.