mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-24 05:36:46 +00:00
core: add statedb size metrics
Signed-off-by: jsvisa <delweng@gmail.com>
This commit is contained in:
parent
956d2dd751
commit
53a5be12e6
1 changed files with 13 additions and 1 deletions
|
|
@ -93,6 +93,11 @@ var (
|
||||||
snapshotCommitTimer = metrics.NewRegisteredResettingTimer("chain/snapshot/commits", nil)
|
snapshotCommitTimer = metrics.NewRegisteredResettingTimer("chain/snapshot/commits", nil)
|
||||||
triedbCommitTimer = metrics.NewRegisteredResettingTimer("chain/triedb/commits", nil)
|
triedbCommitTimer = metrics.NewRegisteredResettingTimer("chain/triedb/commits", nil)
|
||||||
|
|
||||||
|
accountSizeMeter = metrics.NewRegisteredMeter("chain/account/bytes", nil)
|
||||||
|
storageSizeMeter = metrics.NewRegisteredMeter("chain/storage/bytes", nil)
|
||||||
|
triedbSizeMeter = metrics.NewRegisteredMeter("chain/triedb/bytes", nil)
|
||||||
|
contractSizeMeter = metrics.NewRegisteredMeter("chain/contract/bytes", nil)
|
||||||
|
|
||||||
blockInsertTimer = metrics.NewRegisteredResettingTimer("chain/inserts", nil)
|
blockInsertTimer = metrics.NewRegisteredResettingTimer("chain/inserts", nil)
|
||||||
blockValidationTimer = metrics.NewRegisteredResettingTimer("chain/validation", nil)
|
blockValidationTimer = metrics.NewRegisteredResettingTimer("chain/validation", nil)
|
||||||
blockCrossValidationTimer = metrics.NewRegisteredResettingTimer("chain/crossvalidation", nil)
|
blockCrossValidationTimer = metrics.NewRegisteredResettingTimer("chain/crossvalidation", nil)
|
||||||
|
|
@ -1587,9 +1592,15 @@ func (bc *BlockChain) writeBlockWithState(block *types.Block, receipts []*types.
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// Update the statedb metrics with the committed changes.
|
||||||
|
sc := update.IntoChangeset()
|
||||||
|
accountSizeMeter.Mark(int64(sc.AccountSize))
|
||||||
|
storageSizeMeter.Mark(int64(sc.StorageSize))
|
||||||
|
triedbSizeMeter.Mark(int64(sc.TrienodeSize))
|
||||||
|
contractSizeMeter.Mark(int64(sc.CodeSize))
|
||||||
|
|
||||||
// Tracing the state changes if the logger is enabled.
|
// Tracing the state changes if the logger is enabled.
|
||||||
if bc.logger != nil && bc.logger.OnStateCommit != nil {
|
if bc.logger != nil && bc.logger.OnStateCommit != nil {
|
||||||
sc := update.IntoChangeset()
|
|
||||||
bc.logger.OnStateCommit(&tracing.StateUpdate{
|
bc.logger.OnStateCommit(&tracing.StateUpdate{
|
||||||
Number: block.NumberU64(),
|
Number: block.NumberU64(),
|
||||||
Hash: block.Hash(),
|
Hash: block.Hash(),
|
||||||
|
|
@ -1604,6 +1615,7 @@ func (bc *BlockChain) writeBlockWithState(block *types.Block, receipts []*types.
|
||||||
CodeSize: int64(sc.CodeSize),
|
CodeSize: int64(sc.CodeSize),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// If node is running in path mode, skip explicit gc operation
|
// If node is running in path mode, skip explicit gc operation
|
||||||
// which is unnecessary in this mode.
|
// which is unnecessary in this mode.
|
||||||
if bc.triedb.Scheme() == rawdb.PathScheme {
|
if bc.triedb.Scheme() == rawdb.PathScheme {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue