 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- type FollowerStats
- type LeaderStats
- type RequestStats
- type ServerStats
- func (ss *ServerStats) BecomeLeader()
- func (ss *ServerStats) Initialize()
- func (ss *ServerStats) JSON() []byte
- func (ss *ServerStats) RecvAppendReq(leader string, reqSize int)
- func (ss *ServerStats) RecvRates() (float64, float64)
- func (ss *ServerStats) SendAppendReq(reqSize int)
- func (ss *ServerStats) SendRates() (float64, float64)
 
- type Stats
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FollowerStats ¶
type FollowerStats struct {
	Latency 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
	} `json:"latency"`
	Counts struct {
		Fail    uint64 `json:"fail"`
		Success uint64 `json:"success"`
	} `json:"counts"`
	sync.Mutex
}
    FollowerStats encapsulates various statistics about a follower in an etcd cluster
func (*FollowerStats) Fail ¶
func (fs *FollowerStats) Fail()
Fail updates the FollowerStats with an unsuccessful send
func (*FollowerStats) Succ ¶
func (fs *FollowerStats) Succ(d time.Duration)
Succ updates the FollowerStats with a successful send
type LeaderStats ¶
type LeaderStats struct {
	// TODO(jonboulle): clarify that these are IDs, not names
	Leader    string                    `json:"leader"`
	Followers map[string]*FollowerStats `json:"followers"`
	sync.Mutex
}
    LeaderStats is used by the leader in an etcd cluster, and encapsulates statistics about communication with its followers
func NewLeaderStats ¶
func NewLeaderStats(id string) *LeaderStats
NewLeaderStats generates a new LeaderStats with the given id as leader
func (*LeaderStats) Follower ¶
func (ls *LeaderStats) Follower(name string) *FollowerStats
func (*LeaderStats) JSON ¶
func (ls *LeaderStats) JSON() []byte
type RequestStats ¶
RequestStats represent the stats for a request. It encapsulates the sending time and the size of the request.
type ServerStats ¶
type ServerStats struct {
	Name string `json:"name"`
	// TODO(jonboulle): use ID instead of name?
	ID        string         `json:"id"`
	State     raft.StateType `json:"state"`
	StartTime time.Time      `json:"startTime"`
	LeaderInfo struct {
		Name      string    `json:"leader"`
		Uptime    string    `json:"uptime"`
		StartTime time.Time `json:"startTime"`
	} `json:"leaderInfo"`
	RecvAppendRequestCnt uint64  `json:"recvAppendRequestCnt,"`
	RecvingPkgRate       float64 `json:"recvPkgRate,omitempty"`
	RecvingBandwidthRate float64 `json:"recvBandwidthRate,omitempty"`
	SendAppendRequestCnt uint64  `json:"sendAppendRequestCnt"`
	SendingPkgRate       float64 `json:"sendPkgRate,omitempty"`
	SendingBandwidthRate float64 `json:"sendBandwidthRate,omitempty"`
	sync.Mutex
	// contains filtered or unexported fields
}
    ServerStats encapsulates various statistics about an EtcdServer and its communication with other members of the cluster
func (*ServerStats) BecomeLeader ¶
func (ss *ServerStats) BecomeLeader()
func (*ServerStats) Initialize ¶
func (ss *ServerStats) Initialize()
Initialize clears the statistics of ServerStats and resets its start time
func (*ServerStats) JSON ¶
func (ss *ServerStats) JSON() []byte
func (*ServerStats) RecvAppendReq ¶
func (ss *ServerStats) RecvAppendReq(leader string, reqSize int)
RecvAppendReq updates the ServerStats in response to an AppendRequest from the given leader being received
func (*ServerStats) RecvRates ¶
func (ss *ServerStats) RecvRates() (float64, float64)
RecvRates calculates and returns the rate of received append requests
func (*ServerStats) SendAppendReq ¶
func (ss *ServerStats) SendAppendReq(reqSize int)
SendAppendReq updates the ServerStats in response to an AppendRequest being sent by this server
func (*ServerStats) SendRates ¶
func (ss *ServerStats) SendRates() (float64, float64)
SendRates calculates and returns the rate of sent append requests
type Stats ¶
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
}