cmd/geth, metrics: separate process metric collection, add disk

This commit is contained in:
Péter Szilágyi
2015-06-27 18:12:58 +03:00
committed by Jeffrey Wilcke
parent 7c4ed8055c
commit 2aeeb72fa5
5 changed files with 130 additions and 22 deletions

View File

@ -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 (
@ -288,27 +288,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() {