metrics, internal/debug: Add --pprofaddr flag, expose metrics via gexp
This commit is contained in:
		
							parent
							
								
									c780901cd5
								
							
						
					
					
						commit
						9e9bfc4e26
					
				| @ -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