forked from cerc-io/plugeth
Merge pull request #3136 from Arachnid/expvar
metrics, internal/debug: Add --pprofaddr flag, expose metrics via gexp
This commit is contained in:
commit
c2ddfb343a
@ -52,6 +52,11 @@ var (
|
|||||||
Usage: "pprof HTTP server listening port",
|
Usage: "pprof HTTP server listening port",
|
||||||
Value: 6060,
|
Value: 6060,
|
||||||
}
|
}
|
||||||
|
pprofAddrFlag = cli.StringFlag{
|
||||||
|
Name: "pprofaddr",
|
||||||
|
Usage: "pprof HTTP server listening interface",
|
||||||
|
Value: "127.0.0.1",
|
||||||
|
}
|
||||||
memprofilerateFlag = cli.IntFlag{
|
memprofilerateFlag = cli.IntFlag{
|
||||||
Name: "memprofilerate",
|
Name: "memprofilerate",
|
||||||
Usage: "Turn on memory profiling with the given rate",
|
Usage: "Turn on memory profiling with the given rate",
|
||||||
@ -74,7 +79,7 @@ var (
|
|||||||
// Flags holds all command-line flags required for debugging.
|
// Flags holds all command-line flags required for debugging.
|
||||||
var Flags = []cli.Flag{
|
var Flags = []cli.Flag{
|
||||||
verbosityFlag, vmoduleFlag, backtraceAtFlag,
|
verbosityFlag, vmoduleFlag, backtraceAtFlag,
|
||||||
pprofFlag, pprofPortFlag,
|
pprofFlag, pprofAddrFlag, pprofPortFlag,
|
||||||
memprofilerateFlag, blockprofilerateFlag, cpuprofileFlag, traceFlag,
|
memprofilerateFlag, blockprofilerateFlag, cpuprofileFlag, traceFlag,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,7 +106,7 @@ func Setup(ctx *cli.Context) error {
|
|||||||
|
|
||||||
// pprof server
|
// pprof server
|
||||||
if ctx.GlobalBool(pprofFlag.Name) {
|
if ctx.GlobalBool(pprofFlag.Name) {
|
||||||
address := fmt.Sprintf("127.0.0.1:%d", ctx.GlobalInt(pprofPortFlag.Name))
|
address := fmt.Sprintf("%s:%d", ctx.GlobalString(pprofAddrFlag.Name), ctx.GlobalInt(pprofPortFlag.Name))
|
||||||
go func() {
|
go func() {
|
||||||
glog.V(logger.Info).Infof("starting pprof server at http://%s/debug/pprof", address)
|
glog.V(logger.Info).Infof("starting pprof server at http://%s/debug/pprof", address)
|
||||||
glog.Errorln(http.ListenAndServe(address, nil))
|
glog.Errorln(http.ListenAndServe(address, nil))
|
||||||
|
@ -26,6 +26,7 @@ import (
|
|||||||
"github.com/ethereum/go-ethereum/logger"
|
"github.com/ethereum/go-ethereum/logger"
|
||||||
"github.com/ethereum/go-ethereum/logger/glog"
|
"github.com/ethereum/go-ethereum/logger/glog"
|
||||||
"github.com/rcrowley/go-metrics"
|
"github.com/rcrowley/go-metrics"
|
||||||
|
"github.com/rcrowley/go-metrics/exp"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MetricsEnabledFlag is the CLI flag name to use to enable metrics collections.
|
// MetricsEnabledFlag is the CLI flag name to use to enable metrics collections.
|
||||||
@ -44,6 +45,7 @@ func init() {
|
|||||||
Enabled = true
|
Enabled = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
exp.Exp(metrics.DefaultRegistry)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewMeter create a new metrics Meter, either a real one of a NOP stub depending
|
// NewMeter create a new metrics Meter, either a real one of a NOP stub depending
|
||||||
|
Loading…
Reference in New Issue
Block a user