Skip to content

Commit 96345a2

Browse files
galaiozzzckck
authored andcommitted
metric: fix too large block handle delay metrics; (bnb-chain#3102)
1 parent e01c338 commit 96345a2

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

eth/backend.go

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ const (
7979
ChainData = "chaindata"
8080
)
8181

82+
const (
83+
MaxBlockHandleDelayMs = 3000 // max delay for block handles, max 3000 ms
84+
)
85+
8286
var (
8387
sendBlockTimer = metrics.NewRegisteredTimer("chain/delay/block/send", nil)
8488
recvBlockTimer = metrics.NewRegisteredTimer("chain/delay/block/recv", nil)
@@ -901,32 +905,39 @@ func (s *Ethereum) reportRecentBlocksLoop() {
901905
records["BlockTime"] = common.FormatMilliTime(blockMsTime)
902906
metrics.GetOrRegisterLabel("report-blocks", nil).Mark(records)
903907

904-
if sendBlockTime > blockMsTime {
908+
if validTimeMetric(blockMsTime, sendBlockTime) {
905909
sendBlockTimer.Update(time.Duration(sendBlockTime - blockMsTime))
906910
}
907-
if recvNewBlockTime > blockMsTime {
911+
if validTimeMetric(blockMsTime, recvNewBlockTime) {
908912
recvBlockTimer.Update(time.Duration(recvNewBlockTime - blockMsTime))
909913
}
910-
if startImportBlockTime > blockMsTime {
914+
if validTimeMetric(blockMsTime, startImportBlockTime) {
911915
startInsertBlockTimer.Update(time.Duration(startImportBlockTime - blockMsTime))
912916
}
913-
if sendVoteTime > blockMsTime {
917+
if validTimeMetric(blockMsTime, sendVoteTime) {
914918
sendVoteTimer.Update(time.Duration(sendVoteTime - blockMsTime))
915919
}
916-
if firstVoteTime > blockMsTime {
920+
if validTimeMetric(blockMsTime, firstVoteTime) {
917921
firstVoteTimer.Update(time.Duration(firstVoteTime - blockMsTime))
918922
}
919-
if recvMajorityTime > blockMsTime {
923+
if validTimeMetric(blockMsTime, recvMajorityTime) {
920924
majorityVoteTimer.Update(time.Duration(recvMajorityTime - blockMsTime))
921925
}
922-
if importedBlockTime > blockMsTime {
926+
if validTimeMetric(blockMsTime, importedBlockTime) {
923927
importedBlockTimer.Update(time.Duration(importedBlockTime - blockMsTime))
924928
}
925-
if startMiningTime < blockMsTime {
929+
if validTimeMetric(startMiningTime, blockMsTime) {
926930
startMiningTimer.Update(time.Duration(blockMsTime - startMiningTime))
927931
}
928932
case <-s.stopCh:
929933
return
930934
}
931935
}
932936
}
937+
938+
func validTimeMetric(startMs, endMs int64) bool {
939+
if startMs >= endMs {
940+
return false
941+
}
942+
return endMs-startMs <= MaxBlockHandleDelayMs
943+
}

0 commit comments

Comments
 (0)