metrics: pull library and introduce ResettingTimer and InfluxDB reporter (#15910)
* go-metrics: fork library and introduce ResettingTimer and InfluxDB reporter. * vendor: change nonsense/go-metrics to ethersphere/go-metrics * go-metrics: add tests. move ResettingTimer logic from reporter to type. * all, metrics: pull in metrics package in go-ethereum * metrics/test: make sure metrics are enabled for tests * metrics: apply gosimple rules * metrics/exp, internal/debug: init expvar endpoint when starting pprof server * internal/debug: tiny comment formatting fix
This commit is contained in:
committed by
Péter Szilágyi
parent
7f74bdf8dd
commit
ae9f97221a
@ -29,8 +29,6 @@ import (
|
||||
"github.com/syndtr/goleveldb/leveldb/filter"
|
||||
"github.com/syndtr/goleveldb/leveldb/iterator"
|
||||
"github.com/syndtr/goleveldb/leveldb/opt"
|
||||
|
||||
gometrics "github.com/rcrowley/go-metrics"
|
||||
)
|
||||
|
||||
var OpenFileLimit = 64
|
||||
@ -39,15 +37,15 @@ type LDBDatabase struct {
|
||||
fn string // filename for reporting
|
||||
db *leveldb.DB // LevelDB instance
|
||||
|
||||
getTimer gometrics.Timer // Timer for measuring the database get request counts and latencies
|
||||
putTimer gometrics.Timer // Timer for measuring the database put request counts and latencies
|
||||
delTimer gometrics.Timer // Timer for measuring the database delete request counts and latencies
|
||||
missMeter gometrics.Meter // Meter for measuring the missed database get requests
|
||||
readMeter gometrics.Meter // Meter for measuring the database get request data usage
|
||||
writeMeter gometrics.Meter // Meter for measuring the database put request data usage
|
||||
compTimeMeter gometrics.Meter // Meter for measuring the total time spent in database compaction
|
||||
compReadMeter gometrics.Meter // Meter for measuring the data read during compaction
|
||||
compWriteMeter gometrics.Meter // Meter for measuring the data written during compaction
|
||||
getTimer metrics.Timer // Timer for measuring the database get request counts and latencies
|
||||
putTimer metrics.Timer // Timer for measuring the database put request counts and latencies
|
||||
delTimer metrics.Timer // Timer for measuring the database delete request counts and latencies
|
||||
missMeter metrics.Meter // Meter for measuring the missed database get requests
|
||||
readMeter metrics.Meter // Meter for measuring the database get request data usage
|
||||
writeMeter metrics.Meter // Meter for measuring the database put request data usage
|
||||
compTimeMeter metrics.Meter // Meter for measuring the total time spent in database compaction
|
||||
compReadMeter metrics.Meter // Meter for measuring the data read during compaction
|
||||
compWriteMeter metrics.Meter // Meter for measuring the data written during compaction
|
||||
|
||||
quitLock sync.Mutex // Mutex protecting the quit channel access
|
||||
quitChan chan chan error // Quit channel to stop the metrics collection before closing the database
|
||||
@ -180,15 +178,15 @@ func (db *LDBDatabase) Meter(prefix string) {
|
||||
return
|
||||
}
|
||||
// Initialize all the metrics collector at the requested prefix
|
||||
db.getTimer = metrics.NewTimer(prefix + "user/gets")
|
||||
db.putTimer = metrics.NewTimer(prefix + "user/puts")
|
||||
db.delTimer = metrics.NewTimer(prefix + "user/dels")
|
||||
db.missMeter = metrics.NewMeter(prefix + "user/misses")
|
||||
db.readMeter = metrics.NewMeter(prefix + "user/reads")
|
||||
db.writeMeter = metrics.NewMeter(prefix + "user/writes")
|
||||
db.compTimeMeter = metrics.NewMeter(prefix + "compact/time")
|
||||
db.compReadMeter = metrics.NewMeter(prefix + "compact/input")
|
||||
db.compWriteMeter = metrics.NewMeter(prefix + "compact/output")
|
||||
db.getTimer = metrics.NewRegisteredTimer(prefix+"user/gets", nil)
|
||||
db.putTimer = metrics.NewRegisteredTimer(prefix+"user/puts", nil)
|
||||
db.delTimer = metrics.NewRegisteredTimer(prefix+"user/dels", nil)
|
||||
db.missMeter = metrics.NewRegisteredMeter(prefix+"user/misses", nil)
|
||||
db.readMeter = metrics.NewRegisteredMeter(prefix+"user/reads", nil)
|
||||
db.writeMeter = metrics.NewRegisteredMeter(prefix+"user/writes", nil)
|
||||
db.compTimeMeter = metrics.NewRegisteredMeter(prefix+"compact/time", nil)
|
||||
db.compReadMeter = metrics.NewRegisteredMeter(prefix+"compact/input", nil)
|
||||
db.compWriteMeter = metrics.NewRegisteredMeter(prefix+"compact/output", nil)
|
||||
|
||||
// Create a quit channel for the periodic collector and run it
|
||||
db.quitLock.Lock()
|
||||
|
Reference in New Issue
Block a user