Skip to content

Commit 8f8b32b

Browse files
authored
Merge pull request #9587 from mborsz/is_leader
etcdserver: add is_leader prometheus metric that is 1 on the leader.
2 parents b011208 + 46bc966 commit 8f8b32b

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

etcdserver/metrics.go

+7
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ var (
3030
Name: "has_leader",
3131
Help: "Whether or not a leader exists. 1 is existence, 0 is not.",
3232
})
33+
isLeader = prometheus.NewGauge(prometheus.GaugeOpts{
34+
Namespace: "etcd",
35+
Subsystem: "server",
36+
Name: "is_leader",
37+
Help: "Whether or not this member is a leader. 1 if is, 0 otherwise.",
38+
})
3339
leaderChanges = prometheus.NewCounter(prometheus.CounterOpts{
3440
Namespace: "etcd",
3541
Subsystem: "server",
@@ -77,6 +83,7 @@ var (
7783

7884
func init() {
7985
prometheus.MustRegister(hasLeader)
86+
prometheus.MustRegister(isLeader)
8087
prometheus.MustRegister(leaderChanges)
8188
prometheus.MustRegister(proposalsCommitted)
8289
prometheus.MustRegister(proposalsApplied)

etcdserver/raft.go

+5
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,11 @@ func (r *raftNode) start(rh *raftReadyHandler) {
182182

183183
rh.updateLead(rd.SoftState.Lead)
184184
islead = rd.RaftState == raft.StateLeader
185+
if islead {
186+
isLeader.Set(1)
187+
} else {
188+
isLeader.Set(0)
189+
}
185190
rh.updateLeadership(newLeader)
186191
r.td.Reset()
187192
}

0 commit comments

Comments
 (0)