@@ -69,9 +69,6 @@ import (
6969 staking "github.com/harmony-one/harmony/staking/types"
7070 lru "github.com/hashicorp/golang-lru"
7171 goleveldb "github.com/syndtr/goleveldb/leveldb"
72-
73- // Import for crosslink metrics
74- crosslinkmetrics "github.com/harmony-one/harmony/internal/metrics"
7572)
7673
7774var (
9390 blockValidationTimer = metrics .NewRegisteredTimer ("chain/validation" , nil )
9491 blockExecutionTimer = metrics .NewRegisteredTimer ("chain/execution" , nil )
9592 blockWriteTimer = metrics .NewRegisteredTimer ("chain/write" , nil )
93+
94+ // CrossLinkPendingQueueGauge is used to monitor the current size of pending crosslink queue
95+ CrossLinkPendingQueueGauge = metrics .NewRegisteredGauge ("chain/crosslink/pending_queue_size" , nil )
96+
9697 // ErrCrosslinkNotFound is the error when no crosslink found
9798 ErrCrosslinkNotFound = errors .New ("crosslink not found" )
9899 // ErrZeroBytes is the error when it reads empty crosslink
@@ -2564,7 +2565,7 @@ func (bc *BlockChainImpl) ReadPendingCrossLinks() ([]types.CrossLink, error) {
25642565 cls , err := bc .readPendingCrossLinks ()
25652566 if err == nil {
25662567 // Update pending queue gauge with current size
2567- crosslinkmetrics . UpdatePendingCrossLinkQueueGauge (len (cls ))
2568+ bc . updatePendingCrossLinkQueueGauge (len (cls ))
25682569 }
25692570 return cls , err
25702571}
@@ -2578,15 +2579,15 @@ func (bc *BlockChainImpl) AddPendingCrossLinks(pendingCLs []types.CrossLink) (in
25782579 err := bc .CachePendingCrossLinks (pendingCLs )
25792580 if err == nil {
25802581 // Update pending queue gauge with new size
2581- crosslinkmetrics . UpdatePendingCrossLinkQueueGauge (len (pendingCLs ))
2582+ bc . updatePendingCrossLinkQueueGauge (len (pendingCLs ))
25822583 }
25832584 return len (pendingCLs ), err
25842585 }
25852586 cls = append (cls , pendingCLs ... )
25862587 err = bc .CachePendingCrossLinks (cls )
25872588 if err == nil {
25882589 // Update pending queue gauge with new size
2589- crosslinkmetrics . UpdatePendingCrossLinkQueueGauge (len (cls ))
2590+ bc . updatePendingCrossLinkQueueGauge (len (cls ))
25902591 }
25912592 return len (cls ), err
25922593}
@@ -2621,11 +2622,16 @@ func (bc *BlockChainImpl) DeleteFromPendingCrossLinks(crossLinks []types.CrossLi
26212622 err = bc .CachePendingCrossLinks (pendingCLs )
26222623 if err == nil {
26232624 // Update pending queue gauge with new size after deletion
2624- crosslinkmetrics . UpdatePendingCrossLinkQueueGauge (len (pendingCLs ))
2625+ bc . updatePendingCrossLinkQueueGauge (len (pendingCLs ))
26252626 }
26262627 return len (pendingCLs ), err
26272628}
26282629
2630+ // updatePendingCrossLinkQueueGauge updates the pending crosslink queue size gauge
2631+ func (bc * BlockChainImpl ) updatePendingCrossLinkQueueGauge (size int ) {
2632+ CrossLinkPendingQueueGauge .Update (int64 (size ))
2633+ }
2634+
26292635func (bc * BlockChainImpl ) IsSameLeaderAsPreviousBlock (block * types.Block ) bool {
26302636 if IsEpochBlock (block ) {
26312637 return false
0 commit comments