diff --git a/embed.go b/embed.go index 0041fef..1f0c3db 100644 --- a/embed.go +++ b/embed.go @@ -4,6 +4,8 @@ import ( "log" "net/http" "os" + "runtime" + "strconv" _ "net/http/pprof" @@ -22,6 +24,26 @@ func init() { addr = ":6060" } + strBlockRate, ok := os.LookupEnv("BLOCK_RATE") + if ok { + blockRate, err := strconv.Atoi(strBlockRate) + if err != nil { + log.Printf("failed to parse BLOCK_RATE(%s): %v", strBlockRate, err) + } else { + runtime.SetBlockProfileRate(blockRate) + } + } + + strMutexRate, ok := os.LookupEnv("MUTEX_RATE") + if ok { + mutexRate, err := strconv.Atoi(strMutexRate) + if err != nil { + log.Printf("failed to parse MUTEX_RATE(%s): %v", strMutexRate, err) + } else { + runtime.SetMutexProfileFraction(mutexRate) + } + } + http.Handle("/metrics", promhttp.Handler()) http.Handle("/debug/fgprof", fgprof.Handler())