From 9e9bfc4e264b0bc16bdfe893e9cb3cfad096c48c Mon Sep 17 00:00:00 2001
From: Nick Johnson <arachnid@notdot.net>
Date: Fri, 14 Oct 2016 08:22:31 +0100
Subject: [PATCH] metrics, internal/debug: Add --pprofaddr flag, expose metrics
 via gexp

---
 internal/debug/flags.go | 9 +++++++--
 metrics/metrics.go      | 2 ++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/internal/debug/flags.go b/internal/debug/flags.go
index 9fc5fc4fe..ed17f87c4 100644
--- a/internal/debug/flags.go
+++ b/internal/debug/flags.go
@@ -52,6 +52,11 @@ var (
 		Usage: "pprof HTTP server listening port",
 		Value: 6060,
 	}
+	pprofAddrFlag = cli.StringFlag{
+		Name: "pprofaddr",
+		Usage: "pprof HTTP server listening interface",
+		Value: "127.0.0.1",
+	}
 	memprofilerateFlag = cli.IntFlag{
 		Name:  "memprofilerate",
 		Usage: "Turn on memory profiling with the given rate",
@@ -74,7 +79,7 @@ var (
 // Flags holds all command-line flags required for debugging.
 var Flags = []cli.Flag{
 	verbosityFlag, vmoduleFlag, backtraceAtFlag,
-	pprofFlag, pprofPortFlag,
+	pprofFlag, pprofAddrFlag, pprofPortFlag,
 	memprofilerateFlag, blockprofilerateFlag, cpuprofileFlag, traceFlag,
 }
 
@@ -101,7 +106,7 @@ func Setup(ctx *cli.Context) error {
 
 	// pprof server
 	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() {
 			glog.V(logger.Info).Infof("starting pprof server at http://%s/debug/pprof", address)
 			glog.Errorln(http.ListenAndServe(address, nil))
diff --git a/metrics/metrics.go b/metrics/metrics.go
index fcf8b5c32..7f647cd00 100644
--- a/metrics/metrics.go
+++ b/metrics/metrics.go
@@ -26,6 +26,7 @@ import (
 	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/logger/glog"
 	"github.com/rcrowley/go-metrics"
+	"github.com/rcrowley/go-metrics/exp"
 )
 
 // MetricsEnabledFlag is the CLI flag name to use to enable metrics collections.
@@ -44,6 +45,7 @@ func init() {
 			Enabled = true
 		}
 	}
+	exp.Exp(metrics.DefaultRegistry)
 }
 
 // NewMeter create a new metrics Meter, either a real one of a NOP stub depending
-- 
GitLab