mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-25 14:16:44 +00:00
register metrics
Signed-off-by: jsvisa <delweng@gmail.com>
This commit is contained in:
parent
34fe4861fd
commit
410f569c9d
2 changed files with 40 additions and 34 deletions
|
|
@ -294,37 +294,7 @@ func New(file string, cache int, handles int, namespace string, readonly bool) (
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
db.db = innerDB
|
db.db = innerDB
|
||||||
|
db.registerMetrics(namespace)
|
||||||
db.compTimeMeter = metrics.GetOrRegisterMeter(namespace+"compact/time", nil)
|
|
||||||
db.compReadMeter = metrics.GetOrRegisterMeter(namespace+"compact/input", nil)
|
|
||||||
db.compWriteMeter = metrics.GetOrRegisterMeter(namespace+"compact/output", nil)
|
|
||||||
db.diskSizeGauge = metrics.GetOrRegisterGauge(namespace+"disk/size", nil)
|
|
||||||
db.diskReadMeter = metrics.GetOrRegisterMeter(namespace+"disk/read", nil)
|
|
||||||
db.diskWriteMeter = metrics.GetOrRegisterMeter(namespace+"disk/write", nil)
|
|
||||||
db.writeDelayMeter = metrics.GetOrRegisterMeter(namespace+"compact/writedelay/duration", nil)
|
|
||||||
db.writeDelayNMeter = metrics.GetOrRegisterMeter(namespace+"compact/writedelay/counter", nil)
|
|
||||||
db.memCompGauge = metrics.GetOrRegisterGauge(namespace+"compact/memory", nil)
|
|
||||||
db.level0CompGauge = metrics.GetOrRegisterGauge(namespace+"compact/level0", nil)
|
|
||||||
db.nonlevel0CompGauge = metrics.GetOrRegisterGauge(namespace+"compact/nonlevel0", nil)
|
|
||||||
db.seekCompGauge = metrics.GetOrRegisterGauge(namespace+"compact/seek", nil)
|
|
||||||
db.manualMemAllocGauge = metrics.GetOrRegisterGauge(namespace+"memory/manualalloc", nil)
|
|
||||||
db.liveMemTablesGauge = metrics.GetOrRegisterGauge(namespace+"table/live", nil)
|
|
||||||
db.zombieMemTablesGauge = metrics.GetOrRegisterGauge(namespace+"table/zombie", nil)
|
|
||||||
db.blockCacheHitGauge = metrics.GetOrRegisterGauge(namespace+"cache/block/hit", nil)
|
|
||||||
db.blockCacheMissGauge = metrics.GetOrRegisterGauge(namespace+"cache/block/miss", nil)
|
|
||||||
db.tableCacheHitGauge = metrics.GetOrRegisterGauge(namespace+"cache/table/hit", nil)
|
|
||||||
db.tableCacheMissGauge = metrics.GetOrRegisterGauge(namespace+"cache/table/miss", nil)
|
|
||||||
db.filterHitGauge = metrics.GetOrRegisterGauge(namespace+"filter/hit", nil)
|
|
||||||
db.filterMissGauge = metrics.GetOrRegisterGauge(namespace+"filter/miss", nil)
|
|
||||||
db.estimatedCompDebtGauge = metrics.GetOrRegisterGauge(namespace+"compact/estimateDebt", nil)
|
|
||||||
db.liveCompGauge = metrics.GetOrRegisterGauge(namespace+"compact/live/count", nil)
|
|
||||||
db.liveCompSizeGauge = metrics.GetOrRegisterGauge(namespace+"compact/live/size", nil)
|
|
||||||
db.readExistedCount = metrics.GetOrRegisterCounter(namespace+"read/existed/count", nil)
|
|
||||||
db.readNotfoundCount = metrics.GetOrRegisterCounter(namespace+"read/notfound/count", nil)
|
|
||||||
db.writeCount = metrics.GetOrRegisterCounter(namespace+"write/count", nil)
|
|
||||||
db.readExistedTime = metrics.NewRegisteredResettingTimer(namespace+"read/existed/duration", nil)
|
|
||||||
db.readNotfoundTime = metrics.NewRegisteredResettingTimer(namespace+"read/notfound/duration", nil)
|
|
||||||
db.writeTime = metrics.NewRegisteredResettingTimer(namespace+"write/duration", nil)
|
|
||||||
|
|
||||||
// Start up the metrics gathering and return
|
// Start up the metrics gathering and return
|
||||||
go db.meter(metricsGatheringInterval, namespace)
|
go db.meter(metricsGatheringInterval, namespace)
|
||||||
|
|
@ -521,6 +491,40 @@ func (d *Database) SyncKeyValue() error {
|
||||||
return d.db.Apply(b, pebble.Sync)
|
return d.db.Apply(b, pebble.Sync)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// registerMetrics registers the metrics for the database.
|
||||||
|
func (d *Database) registerMetrics(namespace string) {
|
||||||
|
d.compTimeMeter = metrics.GetOrRegisterMeter(namespace+"compact/time", nil)
|
||||||
|
d.compReadMeter = metrics.GetOrRegisterMeter(namespace+"compact/input", nil)
|
||||||
|
d.compWriteMeter = metrics.GetOrRegisterMeter(namespace+"compact/output", nil)
|
||||||
|
d.diskSizeGauge = metrics.GetOrRegisterGauge(namespace+"disk/size", nil)
|
||||||
|
d.diskReadMeter = metrics.GetOrRegisterMeter(namespace+"disk/read", nil)
|
||||||
|
d.diskWriteMeter = metrics.GetOrRegisterMeter(namespace+"disk/write", nil)
|
||||||
|
d.writeDelayMeter = metrics.GetOrRegisterMeter(namespace+"compact/writedelay/duration", nil)
|
||||||
|
d.writeDelayNMeter = metrics.GetOrRegisterMeter(namespace+"compact/writedelay/counter", nil)
|
||||||
|
d.memCompGauge = metrics.GetOrRegisterGauge(namespace+"compact/memory", nil)
|
||||||
|
d.level0CompGauge = metrics.GetOrRegisterGauge(namespace+"compact/level0", nil)
|
||||||
|
d.nonlevel0CompGauge = metrics.GetOrRegisterGauge(namespace+"compact/nonlevel0", nil)
|
||||||
|
d.seekCompGauge = metrics.GetOrRegisterGauge(namespace+"compact/seek", nil)
|
||||||
|
d.manualMemAllocGauge = metrics.GetOrRegisterGauge(namespace+"memory/manualalloc", nil)
|
||||||
|
d.liveMemTablesGauge = metrics.GetOrRegisterGauge(namespace+"table/live", nil)
|
||||||
|
d.zombieMemTablesGauge = metrics.GetOrRegisterGauge(namespace+"table/zombie", nil)
|
||||||
|
d.blockCacheHitGauge = metrics.GetOrRegisterGauge(namespace+"cache/block/hit", nil)
|
||||||
|
d.blockCacheMissGauge = metrics.GetOrRegisterGauge(namespace+"cache/block/miss", nil)
|
||||||
|
d.tableCacheHitGauge = metrics.GetOrRegisterGauge(namespace+"cache/table/hit", nil)
|
||||||
|
d.tableCacheMissGauge = metrics.GetOrRegisterGauge(namespace+"cache/table/miss", nil)
|
||||||
|
d.filterHitGauge = metrics.GetOrRegisterGauge(namespace+"filter/hit", nil)
|
||||||
|
d.filterMissGauge = metrics.GetOrRegisterGauge(namespace+"filter/miss", nil)
|
||||||
|
d.estimatedCompDebtGauge = metrics.GetOrRegisterGauge(namespace+"compact/estimateDebt", nil)
|
||||||
|
d.liveCompGauge = metrics.GetOrRegisterGauge(namespace+"compact/live/count", nil)
|
||||||
|
d.liveCompSizeGauge = metrics.GetOrRegisterGauge(namespace+"compact/live/size", nil)
|
||||||
|
d.readExistedCount = metrics.GetOrRegisterCounter(namespace+"read/existed/count", nil)
|
||||||
|
d.readNotfoundCount = metrics.GetOrRegisterCounter(namespace+"read/notfound/count", nil)
|
||||||
|
d.writeCount = metrics.GetOrRegisterCounter(namespace+"write/count", nil)
|
||||||
|
d.readExistedTime = metrics.NewRegisteredResettingTimer(namespace+"read/existed/duration", nil)
|
||||||
|
d.readNotfoundTime = metrics.NewRegisteredResettingTimer(namespace+"read/notfound/duration", nil)
|
||||||
|
d.writeTime = metrics.NewRegisteredResettingTimer(namespace+"write/duration", nil)
|
||||||
|
}
|
||||||
|
|
||||||
// meter periodically retrieves internal pebble counters and reports them to
|
// meter periodically retrieves internal pebble counters and reports them to
|
||||||
// the metrics subsystem.
|
// the metrics subsystem.
|
||||||
func (d *Database) meter(refresh time.Duration, namespace string) {
|
func (d *Database) meter(refresh time.Duration, namespace string) {
|
||||||
|
|
|
||||||
|
|
@ -29,15 +29,17 @@ import (
|
||||||
func TestPebbleDB(t *testing.T) {
|
func TestPebbleDB(t *testing.T) {
|
||||||
t.Run("DatabaseSuite", func(t *testing.T) {
|
t.Run("DatabaseSuite", func(t *testing.T) {
|
||||||
dbtest.TestDatabaseSuite(t, func() ethdb.KeyValueStore {
|
dbtest.TestDatabaseSuite(t, func() ethdb.KeyValueStore {
|
||||||
db, err := pebble.Open("", &pebble.Options{
|
idb, err := pebble.Open("", &pebble.Options{
|
||||||
FS: vfs.NewMem(),
|
FS: vfs.NewMem(),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
return &Database{
|
db := &Database{
|
||||||
db: db,
|
db: idb,
|
||||||
}
|
}
|
||||||
|
db.registerMetrics("")
|
||||||
|
return db
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue