diff --git a/server/cluster/cluster.go b/server/cluster/cluster.go index 36c749cef1e..b707768cb87 100644 --- a/server/cluster/cluster.go +++ b/server/cluster/cluster.go @@ -1226,6 +1226,7 @@ func (c *RaftCluster) resetMetrics() { c.coordinator.resetSchedulerMetrics() c.coordinator.resetHotSpotMetrics() c.resetClusterMetrics() + c.resetHealthStatus() } func (c *RaftCluster) collectClusterMetrics() { @@ -1257,16 +1258,20 @@ func (c *RaftCluster) collectHealthStatus() { if err != nil { log.Error("get members error", errs.ZapError(err)) } - unhealth := CheckHealth(c.httpClient, members) + healthy := CheckHealth(c.httpClient, members) for _, member := range members { - if _, ok := unhealth[member.GetMemberId()]; ok { - healthStatusGauge.WithLabelValues(member.GetName()).Set(0) - continue + var v float64 + if _, ok := healthy[member.GetMemberId()]; ok { + v = 1 } - healthStatusGauge.WithLabelValues(member.GetName()).Set(1) + healthStatusGauge.WithLabelValues(member.GetName()).Set(v) } } +func (c *RaftCluster) resetHealthStatus() { + healthStatusGauge.Reset() +} + // GetRegionStatsByType gets the status of the region by types. func (c *RaftCluster) GetRegionStatsByType(typ statistics.RegionStatisticType) []*core.RegionInfo { c.RLock()