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:
||Exposes the default HTTP muxer
"net/http".DefaultServeMux to the first free TCP port after
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
"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.
||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.
"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
"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