CountsStats encapsulates raft statistics.
type CountsStats struct { Fail uint64 `json:"fail"` Success uint64 `json:"success"` }
FollowerStats encapsulates various statistics about a follower in an etcd cluster
type FollowerStats struct { Latency LatencyStats `json:"latency"` Counts CountsStats `json:"counts"` sync.Mutex }
func (fs *FollowerStats) Fail()
Fail updates the FollowerStats with an unsuccessful send
func (fs *FollowerStats) Succ(d time.Duration)
Succ updates the FollowerStats with a successful send
LatencyStats encapsulates latency statistics.
type LatencyStats struct { Current float64 `json:"current"` Average float64 `json:"average"` StandardDeviation float64 `json:"standardDeviation"` Minimum float64 `json:"minimum"` Maximum float64 `json:"maximum"` // contains filtered or unexported fields }
LeaderStats is used by the leader in an etcd cluster, and encapsulates statistics about communication with its followers
type LeaderStats struct { sync.Mutex // contains filtered or unexported fields }
func NewLeaderStats(lg *zap.Logger, id string) *LeaderStats
NewLeaderStats generates a new LeaderStats with the given id as leader
func (ls *LeaderStats) Follower(name string) *FollowerStats
func (ls *LeaderStats) JSON() []byte
RequestStats represent the stats for a request. It encapsulates the sending time and the size of the request.
type RequestStats struct { SendingTime time.Time Size int }
ServerStats encapsulates various statistics about an EtcdServer and its communication with other members of the cluster
type ServerStats struct { sync.Mutex // contains filtered or unexported fields }
func NewServerStats(name, id string) *ServerStats
func (ss *ServerStats) BecomeLeader()
func (ss *ServerStats) JSON() []byte
func (ss *ServerStats) RecvAppendReq(leader string, reqSize int)
RecvAppendReq updates the ServerStats in response to an AppendRequest from the given leader being received
func (ss *ServerStats) SendAppendReq(reqSize int)
SendAppendReq updates the ServerStats in response to an AppendRequest being sent by this server
type Stats interface { // SelfStats returns the struct representing statistics of this server SelfStats() []byte // LeaderStats returns the statistics of all followers in the cluster // if this server is leader. Otherwise, nil is returned. LeaderStats() []byte // StoreStats returns statistics of the store backing this EtcdServer StoreStats() []byte }