stats

package
v0.0.0-...-900f3b1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 14, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package stats defines a standard interface for etcd cluster statistics.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CountsStats

type CountsStats struct {
	Fail    uint64 `json:"fail"`
	Success uint64 `json:"success"`
}

CountsStats encapsulates raft statistics.

type FollowerStats

type FollowerStats struct {
	Latency LatencyStats `json:"latency"`
	Counts  CountsStats  `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 LatencyStats

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
}

LatencyStats encapsulates latency statistics.

type LeaderStats

type LeaderStats struct {
	sync.Mutex
	// contains filtered or unexported fields
}

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

type RequestStats struct {
	SendingTime time.Time
	Size        int
}

RequestStats represent the stats for a request. It encapsulates the sending time and the size of the request.

type ServerStats

type ServerStats struct {
	sync.Mutex
	// contains filtered or unexported fields
}

ServerStats encapsulates various statistics about an EtcdServer and its communication with other members of the cluster

func NewServerStats

func NewServerStats(name, id string) *ServerStats

func (*ServerStats) BecomeLeader

func (ss *ServerStats) BecomeLeader()

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) SendAppendReq

func (ss *ServerStats) SendAppendReq(reqSize int)

SendAppendReq updates the ServerStats in response to an AppendRequest being sent by this server

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
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL