Skip to content

Commit

Permalink
address the comment
Browse files Browse the repository at this point in the history
Signed-off-by: Ryan Leung <rleungx@gmail.com>
  • Loading branch information
rleungx committed May 21, 2024
1 parent 4eaa3b2 commit 6c3f0ea
Showing 1 changed file with 42 additions and 41 deletions.
83 changes: 42 additions & 41 deletions pkg/statistics/region_collection.go
Original file line number Diff line number Diff line change
Expand Up @@ -263,51 +263,52 @@ func (r *RegionStatistics) Observe(region *core.RegionInfo, stores []*core.Store
regionID := region.GetID()
for i := 0; i < len(regionStatisticTypes); i++ {
condition := RegionStatisticType(1 << i)
if conditions&condition != 0 {
info := r.stats[condition][regionID]
// The condition is met
switch condition {
case MissPeer:
if info == nil {
info = &RegionInfoWithTS{}
}
if len(voters) < desiredVoters {
if info.(*RegionInfoWithTS).startMissVoterPeerTS != 0 {
regionMissVoterPeerDuration.Observe(float64(time.Now().Unix() - info.(*RegionInfoWithTS).startMissVoterPeerTS))
} else {
info.(*RegionInfoWithTS).startMissVoterPeerTS = time.Now().Unix()
}
}
case DownPeer:
if info == nil {
info = &RegionInfoWithTS{}
}
if info.(*RegionInfoWithTS).startDownPeerTS != 0 {
regionDownPeerDuration.Observe(float64(time.Now().Unix() - info.(*RegionInfoWithTS).startDownPeerTS))
if conditions&condition == 0 {
continue
}
info := r.stats[condition][regionID]
// The condition is met
switch condition {
case MissPeer:
if info == nil {
info = &RegionInfoWithTS{}
}
if len(voters) < desiredVoters {
if info.(*RegionInfoWithTS).startMissVoterPeerTS != 0 {
regionMissVoterPeerDuration.Observe(float64(time.Now().Unix() - info.(*RegionInfoWithTS).startMissVoterPeerTS))
} else {
info.(*RegionInfoWithTS).startDownPeerTS = time.Now().Unix()
logDownPeerWithNoDisconnectedStore(region, stores)
info.(*RegionInfoWithTS).startMissVoterPeerTS = time.Now().Unix()
}
case ExtraPeer:
fallthrough
case PendingPeer:
fallthrough
case OfflinePeer:
fallthrough
case LearnerPeer:
fallthrough
case EmptyRegion:
fallthrough
case OversizedRegion:
fallthrough
case UndersizedRegion:
fallthrough
case WitnessLeader:
info = struct{}{}
}
r.stats[condition][regionID] = info
peerTypeIndex |= condition
case DownPeer:
if info == nil {
info = &RegionInfoWithTS{}
}
if info.(*RegionInfoWithTS).startDownPeerTS != 0 {
regionDownPeerDuration.Observe(float64(time.Now().Unix() - info.(*RegionInfoWithTS).startDownPeerTS))
} else {
info.(*RegionInfoWithTS).startDownPeerTS = time.Now().Unix()
logDownPeerWithNoDisconnectedStore(region, stores)
}
case ExtraPeer:
fallthrough
case PendingPeer:
fallthrough
case OfflinePeer:
fallthrough
case LearnerPeer:
fallthrough
case EmptyRegion:
fallthrough
case OversizedRegion:
fallthrough
case UndersizedRegion:
fallthrough
case WitnessLeader:
info = struct{}{}
}
r.stats[condition][regionID] = info
peerTypeIndex |= condition
}
// Remove the info if any of the conditions are not met any more.
if oldIndex, ok := r.index[regionID]; ok && oldIndex > emptyStatistic {
Expand Down

0 comments on commit 6c3f0ea

Please sign in to comment.