metrics/exp, internal/debug: init expvar endpoint when starting pprof server

This commit is contained in:
Anton Evangelatov 2018-02-22 20:38:23 +01:00
parent aaef540a50
commit a284474fd3
2 changed files with 6 additions and 10 deletions

View file

@ -1,10 +0,0 @@
package exp
import (
"github.com/ethereum/go-ethereum/metrics"
e "github.com/ethereum/go-ethereum/metrics/exp"
)
func init() {
e.Exp(metrics.DefaultRegistry)
}

View file

@ -26,6 +26,8 @@ import (
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/log/term"
"github.com/ethereum/go-ethereum/metrics"
"github.com/ethereum/go-ethereum/metrics/exp"
colorable "github.com/mattn/go-colorable"
"gopkg.in/urfave/cli.v1"
)
@ -127,6 +129,10 @@ func Setup(ctx *cli.Context) error {
// pprof server
if ctx.GlobalBool(pprofFlag.Name) {
// Hook go-metrics into expvar
// on any /debug/metrics request, load all vars from the registry into expvar, and execute regular expvar handler
exp.Exp(metrics.DefaultRegistry)
address := fmt.Sprintf("%s:%d", ctx.GlobalString(pprofAddrFlag.Name), ctx.GlobalInt(pprofPortFlag.Name))
go func() {
log.Info("Starting pprof server", "addr", fmt.Sprintf("http://%s/debug/pprof", address))