envpprof

package module
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Mar 23, 2023 License: MIT Imports: 13 Imported by: 455

README

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.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Stop

func Stop()

Stop ends CPU profiling, waiting for writes to complete. If heap profiling is enabled, it also writes the heap profile to a file. Stop should be deferred from main if cpu or heap profiling are to be used through envpprof.

Types

This section is empty.

Jump to

Keyboard shortcuts

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