From c27c288bef1125886ad222b8484737e0119442e2 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Mon, 15 Dec 2014 16:55:17 -0800 Subject: [PATCH] etcdserver: update stats when become leader --- etcdserver/server.go | 5 +++++ etcdserver/stats/server.go | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/etcdserver/server.go b/etcdserver/server.go index ee4b48ee5..da629f36a 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -385,6 +385,11 @@ func (s *EtcdServer) run() { atomic.StoreUint64(&s.raftLead, rd.SoftState.Lead) if rd.RaftState == raft.StateLeader { syncC = s.SyncTicker + // TODO: remove the nil checking + // current test utility does not provide the stats + if s.stats != nil { + s.stats.BecomeLeader() + } } else { syncC = nil } diff --git a/etcdserver/stats/server.go b/etcdserver/stats/server.go index 90772486e..deae201bb 100644 --- a/etcdserver/stats/server.go +++ b/etcdserver/stats/server.go @@ -141,3 +141,11 @@ func (ss *ServerStats) SendAppendReq(reqSize int) { ss.SendAppendRequestCnt++ } + +func (ss *ServerStats) BecomeLeader() { + if ss.State != raft.StateLeader { + ss.State = raft.StateLeader + ss.LeaderInfo.Name = ss.ID + ss.LeaderInfo.StartTime = time.Now() + } +}