diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-06-30 07:58:49 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-06-30 07:58:49 +0800 |
commit | e896cab82ccad8f1c4fb13892d67ba7452948403 (patch) | |
tree | b2967ce1ed56ae19660319e8bb7a849698187a74 /cmd | |
parent | 7c4ed8055cc036214279e3ebded74c58d6808d05 (diff) | |
parent | 5f3792c2a750dd95adeccbd5cf0cb19ecddfb43f (diff) | |
download | dexon-e896cab82ccad8f1c4fb13892d67ba7452948403.tar dexon-e896cab82ccad8f1c4fb13892d67ba7452948403.tar.gz dexon-e896cab82ccad8f1c4fb13892d67ba7452948403.tar.bz2 dexon-e896cab82ccad8f1c4fb13892d67ba7452948403.tar.lz dexon-e896cab82ccad8f1c4fb13892d67ba7452948403.tar.xz dexon-e896cab82ccad8f1c4fb13892d67ba7452948403.tar.zst dexon-e896cab82ccad8f1c4fb13892d67ba7452948403.zip |
Merge pull request #1360 from obscuren/peter-metrics
Rebased peter's PR
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/geth/main.go | 25 | ||||
-rw-r--r-- | cmd/geth/monitorcmd.go | 9 | ||||
-rw-r--r-- | cmd/utils/flags.go | 6 |
3 files changed, 16 insertions, 24 deletions
diff --git a/cmd/geth/main.go b/cmd/geth/main.go index fcf7f27f0..3e945687b 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -39,11 +39,11 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/eth" "github.com/ethereum/go-ethereum/logger" + "github.com/ethereum/go-ethereum/metrics" "github.com/ethereum/go-ethereum/rpc/codec" "github.com/ethereum/go-ethereum/rpc/comms" "github.com/mattn/go-colorable" "github.com/mattn/go-isatty" - "github.com/rcrowley/go-metrics" ) const ( @@ -272,6 +272,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso utils.LogJSONFlag, utils.PProfEanbledFlag, utils.PProfPortFlag, + utils.MetricsEnabledFlag, utils.SolcPathFlag, utils.GpoMinGasPriceFlag, utils.GpoMaxGasPriceFlag, @@ -288,27 +289,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso return nil } // Start system runtime metrics collection - go func() { - allocs := metrics.GetOrRegisterMeter("system/memory/allocs", metrics.DefaultRegistry) - frees := metrics.GetOrRegisterMeter("system/memory/frees", metrics.DefaultRegistry) - inuse := metrics.GetOrRegisterMeter("system/memory/inuse", metrics.DefaultRegistry) - pauses := metrics.GetOrRegisterMeter("system/memory/pauses", metrics.DefaultRegistry) - - stats := make([]*runtime.MemStats, 2) - for i := 0; i < len(stats); i++ { - stats[i] = new(runtime.MemStats) - } - for i := 1; ; i++ { - runtime.ReadMemStats(stats[i%2]) - - allocs.Mark(int64(stats[i%2].Mallocs - stats[(i-1)%2].Mallocs)) - frees.Mark(int64(stats[i%2].Frees - stats[(i-1)%2].Frees)) - inuse.Mark(int64(stats[i%2].Alloc - stats[(i-1)%2].Alloc)) - pauses.Mark(int64(stats[i%2].PauseTotalNs - stats[(i-1)%2].PauseTotalNs)) - - time.Sleep(3 * time.Second) - } - }() + go metrics.CollectProcessMetrics(3 * time.Second) } func main() { diff --git a/cmd/geth/monitorcmd.go b/cmd/geth/monitorcmd.go index fe771b561..6593b3614 100644 --- a/cmd/geth/monitorcmd.go +++ b/cmd/geth/monitorcmd.go @@ -75,7 +75,12 @@ func monitor(ctx *cli.Context) { if len(monitored) == 0 { list := expandMetrics(metrics, "") sort.Strings(list) - utils.Fatalf("No metrics specified.\n\nAvailable:\n - %s", strings.Join(list, "\n - ")) + + if len(list) > 0 { + utils.Fatalf("No metrics specified.\n\nAvailable:\n - %s", strings.Join(list, "\n - ")) + } else { + utils.Fatalf("No metrics collected by geth (--%s).\n", utils.MetricsEnabledFlag.Name) + } } sort.Strings(monitored) if cols := len(monitored) / ctx.Int(monitorCommandRowsFlag.Name); cols > 6 { @@ -285,7 +290,7 @@ func updateChart(metric string, data []float64, base *int, chart *termui.LineCha } // Update the chart's label with the scale units units := dataUnits - if strings.Contains(metric, "/Percentiles/") || strings.Contains(metric, "/pauses/") { + if strings.Contains(metric, "/Percentiles/") || strings.Contains(metric, "/pauses/") || strings.Contains(metric, "/time/") { units = timeUnits } chart.Border.Label = metric diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 15a577a07..0d59980ec 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -10,6 +10,8 @@ import ( "path/filepath" "runtime" + "github.com/ethereum/go-ethereum/metrics" + "github.com/codegangsta/cli" "github.com/ethereum/ethash" "github.com/ethereum/go-ethereum/accounts" @@ -187,6 +189,10 @@ var ( Usage: "Port on which the profiler should listen", Value: 6060, } + MetricsEnabledFlag = cli.BoolFlag{ + Name: metrics.MetricsEnabledFlag, + Usage: "Enables metrics collection and reporting", + } // RPC settings RPCEnabledFlag = cli.BoolFlag{ |