65
65
collectL2Timer = metrics .NewRegisteredTimer ("miner/collect_l2_txns" , nil )
66
66
l2CommitTimer = metrics .NewRegisteredTimer ("miner/commit" , nil )
67
67
cccStallTimer = metrics .NewRegisteredTimer ("miner/ccc_stall" , nil )
68
+ idleTimer = metrics .NewRegisteredTimer ("miner/idle" , nil )
68
69
69
70
commitReasonCCCCounter = metrics .NewRegisteredCounter ("miner/commit_reason_ccc" , nil )
70
71
commitReasonDeadlineCounter = metrics .NewRegisteredCounter ("miner/commit_reason_deadline" , nil )
@@ -354,8 +355,10 @@ func (w *worker) mainLoop() {
354
355
w .current = nil
355
356
}
356
357
358
+ idleStart := time .Now ()
357
359
select {
358
360
case <- w .startCh :
361
+ idleTimer .UpdateSince (idleStart )
359
362
if w .isRunning () {
360
363
if err := w .checkHeadRowConsumption (); err != nil {
361
364
log .Error ("failed to start head checkers" , "err" , err )
@@ -364,17 +367,21 @@ func (w *worker) mainLoop() {
364
367
}
365
368
_ , err = w .tryCommitNewWork (time .Now (), w .chain .CurrentHeader ().Hash (), nil )
366
369
case trigger := <- w .reorgCh :
370
+ idleTimer .UpdateSince (idleStart )
367
371
err = w .handleReorg (& trigger )
368
372
case chainHead := <- w .chainHeadCh :
373
+ idleTimer .UpdateSince (idleStart )
369
374
if w .isCanonical (chainHead .Block .Header ()) {
370
375
_ , err = w .tryCommitNewWork (time .Now (), chainHead .Block .Hash (), nil )
371
376
}
372
377
case <- w .current .deadlineCh ():
378
+ idleTimer .UpdateSince (idleStart )
373
379
w .current .deadlineReached = true
374
380
if len (w .current .txs ) > 0 {
375
381
_ , err = w .commit (false )
376
382
}
377
383
case ev := <- w .txsCh :
384
+ idleTimer .UpdateSince (idleStart )
378
385
// Apply transactions to the pending state
379
386
//
380
387
// Note all transactions received may not be continuous with transactions
0 commit comments