Browse Source

Merge pull request #11233 from jingyih/unset_old_cluster_version_metrics

etcdserver: unset old cluster version in metrics
Gyuho Lee 6 years ago
parent
commit
f20daa5977
1 changed files with 4 additions and 0 deletions
  1. 4 0
      etcdserver/api/membership/cluster.go

+ 4 - 0
etcdserver/api/membership/cluster.go

@@ -565,6 +565,7 @@ func (c *RaftCluster) SetVersion(ver *semver.Version, onSet func(*zap.Logger, *s
 			plog.Noticef("set the initial cluster version to %v", version.Cluster(ver.String()))
 			plog.Noticef("set the initial cluster version to %v", version.Cluster(ver.String()))
 		}
 		}
 	}
 	}
+	oldVer := c.version
 	c.version = ver
 	c.version = ver
 	mustDetectDowngrade(c.lg, c.version)
 	mustDetectDowngrade(c.lg, c.version)
 	if c.v2store != nil {
 	if c.v2store != nil {
@@ -573,6 +574,9 @@ func (c *RaftCluster) SetVersion(ver *semver.Version, onSet func(*zap.Logger, *s
 	if c.be != nil {
 	if c.be != nil {
 		mustSaveClusterVersionToBackend(c.be, ver)
 		mustSaveClusterVersionToBackend(c.be, ver)
 	}
 	}
+	if oldVer != nil {
+		ClusterVersionMetrics.With(prometheus.Labels{"cluster_version": oldVer.String()}).Set(0)
+	}
 	ClusterVersionMetrics.With(prometheus.Labels{"cluster_version": ver.String()}).Set(1)
 	ClusterVersionMetrics.With(prometheus.Labels{"cluster_version": ver.String()}).Set(1)
 	onSet(c.lg, ver)
 	onSet(c.lg, ver)
 }
 }