core: more detailed metrics for block processing (#18119)
This commit is contained in:
		
				
					committed by
					
						
						Péter Szilágyi
					
				
			
			
				
	
			
			
			
						parent
						
							edc39aaedf
						
					
				
				
					commit
					bfed28a421
				
			@@ -48,6 +48,9 @@ import (
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	blockInsertTimer     = metrics.NewRegisteredTimer("chain/inserts", nil)
 | 
			
		||||
	blockValidationTimer = metrics.NewRegisteredTimer("chain/validation", nil)
 | 
			
		||||
	blockExecutionTimer  = metrics.NewRegisteredTimer("chain/execution", nil)
 | 
			
		||||
	blockWriteTimer      = metrics.NewRegisteredTimer("chain/write", nil)
 | 
			
		||||
 | 
			
		||||
	ErrNoGenesis = errors.New("Genesis not found in chain")
 | 
			
		||||
)
 | 
			
		||||
@@ -1188,7 +1191,9 @@ func (bc *BlockChain) insertChain(chain types.Blocks, verifySeals bool) (int, []
 | 
			
		||||
			return it.index, events, coalescedLogs, err
 | 
			
		||||
		}
 | 
			
		||||
		// Process block using the parent state as reference point.
 | 
			
		||||
		t0 := time.Now()
 | 
			
		||||
		receipts, logs, usedGas, err := bc.processor.Process(block, state, bc.vmConfig)
 | 
			
		||||
		t1 := time.Now()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			bc.reportBlock(block, receipts, err)
 | 
			
		||||
			return it.index, events, coalescedLogs, err
 | 
			
		||||
@@ -1198,13 +1203,19 @@ func (bc *BlockChain) insertChain(chain types.Blocks, verifySeals bool) (int, []
 | 
			
		||||
			bc.reportBlock(block, receipts, err)
 | 
			
		||||
			return it.index, events, coalescedLogs, err
 | 
			
		||||
		}
 | 
			
		||||
		t2 := time.Now()
 | 
			
		||||
		proctime := time.Since(start)
 | 
			
		||||
 | 
			
		||||
		// Write the block to the chain and get the status.
 | 
			
		||||
		status, err := bc.WriteBlockWithState(block, receipts, state)
 | 
			
		||||
		t3 := time.Now()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return it.index, events, coalescedLogs, err
 | 
			
		||||
		}
 | 
			
		||||
		blockInsertTimer.UpdateSince(start)
 | 
			
		||||
		blockExecutionTimer.Update(t1.Sub(t0))
 | 
			
		||||
		blockValidationTimer.Update(t2.Sub(t1))
 | 
			
		||||
		blockWriteTimer.Update(t3.Sub(t2))
 | 
			
		||||
		switch status {
 | 
			
		||||
		case CanonStatTy:
 | 
			
		||||
			log.Debug("Inserted new block", "number", block.Number(), "hash", block.Hash(),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user