diff --git a/core/blockchain.go b/core/blockchain.go index 64345bc1a3..553be35e53 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -66,7 +66,7 @@ var ( headSafeBlockGauge = metrics.NewRegisteredGauge("chain/head/safe", nil) chainInfoGauge = metrics.NewRegisteredGaugeInfo("chain/info", nil) - chainMgaspsGauge = metrics.NewRegisteredGauge("chain/mgasps", nil) + chainMgaspsMeter = metrics.NewRegisteredResettingTimer("chain/mgasps", nil) accountReadTimer = metrics.NewRegisteredResettingTimer("chain/account/reads", nil) accountHashTimer = metrics.NewRegisteredResettingTimer("chain/account/hashes", nil) @@ -2067,7 +2067,12 @@ func (bc *BlockChain) processBlock(parentRoot common.Hash, block *types.Block, s triedbCommitTimer.Update(statedb.TrieDBCommits) // Trie database commits are complete, we can mark them blockWriteTimer.Update(time.Since(wstart) - max(statedb.AccountCommits, statedb.StorageCommits) /* concurrent */ - statedb.SnapshotCommits - statedb.TrieDBCommits) - blockInsertTimer.UpdateSince(startTime) + elapsed := time.Since(startTime) + 1 // prevent zero division + blockInsertTimer.Update(elapsed) + + // TODO(rjl493456442) generalize the ResettingTimer + mgasps := float64(res.GasUsed) * 1000 / float64(elapsed) + chainMgaspsMeter.Update(time.Duration(mgasps)) return &blockProcessingResult{ usedGas: res.GasUsed, diff --git a/core/blockchain_insert.go b/core/blockchain_insert.go index d7c2696f08..ac6a156d3e 100644 --- a/core/blockchain_insert.go +++ b/core/blockchain_insert.go @@ -46,9 +46,6 @@ func (st *insertStats) report(chain []*types.Block, index int, snapDiffItems, sn elapsed = now.Sub(st.startTime) + 1 // prevent zero division mgasps = float64(st.usedGas) * 1000 / float64(elapsed) ) - // Update the Mgas per second gauge - chainMgaspsGauge.Update(int64(mgasps)) - // If we're at the last block of the batch or report period reached, log if index == len(chain)-1 || elapsed >= statsReportLimit { // Count the number of transactions in this segment