mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
only leader will return peer stats
This commit is contained in:
parent
44e8c234ed
commit
43cb2a353f
@ -31,7 +31,7 @@ func newEtcdServer(name string, urlStr string, listenHost string, tlsConf *TLSCo
|
||||
// Start to listen and response etcd client command
|
||||
func (e *etcdServer) ListenAndServe() {
|
||||
|
||||
infof("etcd server [%s:%s]", e.name, e.url)
|
||||
infof("etcd server [name %s, listen on %s, advertised url %s]", e.name, e.Server.Addr, e.url)
|
||||
|
||||
if e.tlsConf.Scheme == "http" {
|
||||
fatal(e.Server.ListenAndServe())
|
||||
|
@ -45,6 +45,7 @@ func newRaftServer(name string, url string, listenHost string, tlsConf *TLSConfi
|
||||
version: raftVersion,
|
||||
name: name,
|
||||
url: url,
|
||||
listenHost: listenHost,
|
||||
tlsConf: tlsConf,
|
||||
tlsInfo: tlsInfo,
|
||||
peersStats: make(map[string]*raftPeerStats),
|
||||
@ -148,7 +149,7 @@ func startAsFollower() {
|
||||
|
||||
// Start to listen and response raft command
|
||||
func (r *raftServer) startTransport(scheme string, tlsConf tls.Config) {
|
||||
infof("raft server [%s:%s]", r.name, r.listenHost)
|
||||
infof("raft server [name %s, listen on %s, advertised url %s]", r.name, r.listenHost, r.url)
|
||||
|
||||
raftMux := http.NewServeMux()
|
||||
|
||||
@ -298,11 +299,14 @@ func (r *raftServer) Stats() []byte {
|
||||
warn(err)
|
||||
}
|
||||
|
||||
pBytes, _ := json.Marshal(r.peersStats)
|
||||
if r.State() == raft.Leader {
|
||||
pBytes, _ := json.Marshal(r.peersStats)
|
||||
|
||||
b := append(sBytes, pBytes...)
|
||||
b := append(sBytes, pBytes...)
|
||||
return b
|
||||
}
|
||||
|
||||
return b
|
||||
return sBytes
|
||||
}
|
||||
|
||||
// Register commands to raft server
|
||||
|
@ -1,7 +1,6 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"sync"
|
||||
"time"
|
||||
@ -13,14 +12,14 @@ const (
|
||||
queueCapacity = 200
|
||||
)
|
||||
|
||||
type runtimeStats struct {
|
||||
}
|
||||
|
||||
// packageStats represent the stats we need for a package.
|
||||
// It has sending time and the size of the package.
|
||||
type packageStats struct {
|
||||
sendingTime time.Time
|
||||
size int
|
||||
}
|
||||
|
||||
// NewPackageStats creates a pacakgeStats and return the pointer to it.
|
||||
func NewPackageStats(now time.Time, size int) *packageStats {
|
||||
return &packageStats{
|
||||
sendingTime: now,
|
||||
@ -28,6 +27,7 @@ func NewPackageStats(now time.Time, size int) *packageStats {
|
||||
}
|
||||
}
|
||||
|
||||
// Time return the sending time of the package.
|
||||
func (ps *packageStats) Time() time.Time {
|
||||
return ps.sendingTime
|
||||
}
|
||||
@ -38,13 +38,13 @@ type raftServerStats struct {
|
||||
Leader string `json:"leader"`
|
||||
LeaderUptime string `json:"leaderUptime"`
|
||||
|
||||
RecvAppendRequestCnt uint64 `json:"recvAppendRequestCnt"`
|
||||
RecvingPkgRate float64 `json:"recvPkgRate"`
|
||||
RecvingBandwidthRate float64 `json:"recvBandwidthRate"`
|
||||
RecvAppendRequestCnt uint64 `json:"recvAppendRequestCnt,"`
|
||||
RecvingPkgRate float64 `json:"recvPkgRate,omitempty"`
|
||||
RecvingBandwidthRate float64 `json:"recvBandwidthRate,omitempty"`
|
||||
|
||||
SendAppendRequestCnt uint64 `json:"sendAppendRequestCnt"`
|
||||
SendingPkgRate float64 `json:"sendPkgRate"`
|
||||
SendingBandwidthRate float64 `json:"sendBandwidthRate"`
|
||||
SendingPkgRate float64 `json:"sendPkgRate,omitempty"`
|
||||
SendingBandwidthRate float64 `json:"sendBandwidthRate,omitempty"`
|
||||
|
||||
leaderStartTime time.Time
|
||||
sendRateQueue *statsQueue
|
||||
@ -158,7 +158,6 @@ func (q *statsQueue) Insert(p *packageStats) {
|
||||
q.items[q.back] = p
|
||||
q.totalPkgSize += q.items[q.back].size
|
||||
|
||||
fmt.Println(q.front, q.back, q.size)
|
||||
}
|
||||
|
||||
func (q *statsQueue) Rate() (float64, float64) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user