Merge pull request #449 from xiangli-cmu/fix_stats

fix(peer_server.go) init name field and update leader field
release-0.4
Xiang Li 2014-01-07 19:21:30 -08:00
commit 3736b7678a
1 changed files with 7 additions and 0 deletions

View File

@ -72,6 +72,7 @@ func NewPeerServer(name string, path string, url string, bindAddr string, tlsCon
Followers: make(map[string]*raftFollowerStats),
},
serverStats: &raftServerStats{
Name: name,
StartTime: time.Now(),
sendRateQueue: &statsQueue{
back: -1,
@ -401,6 +402,12 @@ func (s *PeerServer) joinByPeer(server raft.Server, peer string, scheme string)
func (s *PeerServer) Stats() []byte {
s.serverStats.LeaderInfo.Uptime = time.Now().Sub(s.serverStats.LeaderInfo.startTime).String()
// TODO: register state listener to raft to change this field
// rather than compare the state each time Stats() is called.
if s.RaftServer().State() == raft.Leader {
s.serverStats.LeaderInfo.Name = s.RaftServer().Name()
}
queue := s.serverStats.sendRateQueue
s.serverStats.SendingPkgRate, s.serverStats.SendingBandwidthRate = queue.Rate()