Browse Source

refactor(peer_server): move stats construction to factories

Brian Waldon 12 years ago
parent
commit
86718167e8
3 changed files with 23 additions and 15 deletions
  1. 3 15
      server/peer_server.go
  2. 7 0
      server/raft_follower_stats.go
  3. 13 0
      server/raft_server_stats.go

+ 3 - 15
server/peer_server.go

@@ -75,23 +75,11 @@ type snapshotConf struct {
 func NewPeerServer(psConfig PeerServerConfig, tlsConf *TLSConfig, tlsInfo *TLSInfo, registry *Registry, store store.Store, mb *metrics.Bucket) *PeerServer {
 	s := &PeerServer{
 		Config: psConfig,
-
 		registry: registry,
 		store:    store,
-		followersStats: &raftFollowersStats{
-			Leader:    psConfig.Name,
-			Followers: make(map[string]*raftFollowerStats),
-		},
-		serverStats: &raftServerStats{
-			Name:      psConfig.Name,
-			StartTime: time.Now(),
-			sendRateQueue: &statsQueue{
-				back: -1,
-			},
-			recvRateQueue: &statsQueue{
-				back: -1,
-			},
-		},
+
+		followersStats: newRaftFollowersStats(psConfig.Name),
+		serverStats: newRaftServerStats(psConfig.Name),
 
 		timeoutThresholdChan: make(chan interface{}, 1),
 

+ 7 - 0
server/raft_follower_stats.go

@@ -10,6 +10,13 @@ type raftFollowersStats struct {
 	Followers map[string]*raftFollowerStats `json:"followers"`
 }
 
+func newRaftFollowersStats(name string) *raftFollowersStats {
+	return &raftFollowersStats{
+		Leader:    name,
+		Followers: make(map[string]*raftFollowerStats),
+	}
+}
+
 type raftFollowerStats struct {
 	Latency struct {
 		Current           float64 `json:"current"`

+ 13 - 0
server/raft_server_stats.go

@@ -29,6 +29,19 @@ type raftServerStats struct {
 	recvRateQueue *statsQueue
 }
 
+func newRaftServerStats(name string) *raftServerStats {
+	return &raftServerStats{
+		Name:      name,
+		StartTime: time.Now(),
+		sendRateQueue: &statsQueue{
+			back: -1,
+		},
+		recvRateQueue: &statsQueue{
+			back: -1,
+		},
+	}
+}
+
 func (ss *raftServerStats) RecvAppendReq(leaderName string, pkgSize int) {
 	ss.State = raft.Follower
 	if leaderName != ss.LeaderInfo.Name {