api

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 2023 License: Apache-2.0 Imports: 60 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewHandler

NewHandler creates a HTTP handler for API.

func TopNRegions

func TopNRegions(regions []*core.RegionInfo, less func(a, b *core.RegionInfo) bool, n int) []*core.RegionInfo

TopNRegions returns top n regions according to the given rule.

Types

type Health

type Health struct {
	Name       string   `json:"name"`
	MemberID   uint64   `json:"member_id"`
	ClientUrls []string `json:"client_urls"`
	Health     bool     `json:"health"`
}

Health reflects the cluster's health. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.

type HistoryHotRegionsRequest

type HistoryHotRegionsRequest struct {
	StartTime      int64    `json:"start_time,omitempty"`
	EndTime        int64    `json:"end_time,omitempty"`
	RegionIDs      []uint64 `json:"region_ids,omitempty"`
	StoreIDs       []uint64 `json:"store_ids,omitempty"`
	PeerIDs        []uint64 `json:"peer_ids,omitempty"`
	IsLearners     []bool   `json:"is_learners,omitempty"`
	IsLeaders      []bool   `json:"is_leaders,omitempty"`
	HotRegionTypes []string `json:"hot_region_type,omitempty"`
}

HistoryHotRegionsRequest wrap request condition from tidb. it is request from tidb

type HotStoreStats

type HotStoreStats struct {
	BytesWriteStats map[uint64]float64 `json:"bytes-write-rate,omitempty"`
	BytesReadStats  map[uint64]float64 `json:"bytes-read-rate,omitempty"`
	KeysWriteStats  map[uint64]float64 `json:"keys-write-rate,omitempty"`
	KeysReadStats   map[uint64]float64 `json:"keys-read-rate,omitempty"`
	QueryWriteStats map[uint64]float64 `json:"query-write-rate,omitempty"`
	QueryReadStats  map[uint64]float64 `json:"query-read-rate,omitempty"`
}

HotStoreStats is used to record the status of hot stores.

type MetaPeer

type MetaPeer struct {
	*metapb.Peer
	// RoleName is `Role.String()`.
	// Since Role is serialized as int by json by default,
	// introducing it will make the output of pd-ctl easier to identify Role.
	RoleName string `json:"role_name"`
	// IsLearner is `Role == "Learner"`.
	// Since IsLearner was changed to Role in kvproto in 5.0, this field was introduced to ensure api compatibility.
	IsLearner bool `json:"is_learner,omitempty"`
}

MetaPeer is api compatible with *metapb.Peer. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.

type MetaStore

type MetaStore struct {
	*metapb.Store
	StateName string `json:"state_name"`
}

MetaStore contains meta information about a store.

type PDPeerStats

type PDPeerStats struct {
	*pdpb.PeerStats
	Peer MetaPeer `json:"peer"`
}

PDPeerStats is api compatible with *pdpb.PeerStats. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.

type Progress

type Progress struct {
	Action       string  `json:"action"`
	StoreID      uint64  `json:"store_id,omitempty"`
	Progress     float64 `json:"progress"`
	CurrentSpeed float64 `json:"current_speed"`
	LeftSeconds  float64 `json:"left_seconds"`
}

Progress contains status about a progress.

type RegionHeap

type RegionHeap struct {
	// contains filtered or unexported fields
}

RegionHeap implements heap.Interface, used for selecting top n regions.

func (*RegionHeap) Len

func (h *RegionHeap) Len() int

func (*RegionHeap) Less

func (h *RegionHeap) Less(i, j int) bool

func (*RegionHeap) Min

func (h *RegionHeap) Min() *core.RegionInfo

Min returns the minimum region from the heap.

func (*RegionHeap) Pop

func (h *RegionHeap) Pop() interface{}

Pop removes the minimum element (according to Less) from the heap and returns it.

func (*RegionHeap) Push

func (h *RegionHeap) Push(x interface{})

Push pushes an element x onto the heap.

func (*RegionHeap) Swap

func (h *RegionHeap) Swap(i, j int)

type RegionInfo

type RegionInfo struct {
	ID          uint64              `json:"id"`
	StartKey    string              `json:"start_key"`
	EndKey      string              `json:"end_key"`
	RegionEpoch *metapb.RegionEpoch `json:"epoch,omitempty"`
	Peers       []MetaPeer          `json:"peers,omitempty"`

	Leader          MetaPeer      `json:"leader,omitempty"`
	DownPeers       []PDPeerStats `json:"down_peers,omitempty"`
	PendingPeers    []MetaPeer    `json:"pending_peers,omitempty"`
	CPUUsage        uint64        `json:"cpu_usage"`
	WrittenBytes    uint64        `json:"written_bytes"`
	ReadBytes       uint64        `json:"read_bytes"`
	WrittenKeys     uint64        `json:"written_keys"`
	ReadKeys        uint64        `json:"read_keys"`
	ApproximateSize int64         `json:"approximate_size"`
	ApproximateKeys int64         `json:"approximate_keys"`
	Buckets         []string      `json:"buckets,omitempty"`

	ReplicationStatus *ReplicationStatus `json:"replication_status,omitempty"`
}

RegionInfo records detail region info for api usage. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.

func InitRegion

func InitRegion(r *core.RegionInfo, s *RegionInfo) *RegionInfo

InitRegion init a new API RegionInfo from the core.RegionInfo.

func NewAPIRegionInfo

func NewAPIRegionInfo(r *core.RegionInfo) *RegionInfo

NewAPIRegionInfo create a new API RegionInfo.

func (*RegionInfo) Adjust

func (r *RegionInfo) Adjust()

Adjust is only used in testing, in order to compare the data from json deserialization.

type RegionsInfo

type RegionsInfo struct {
	Count   int          `json:"count"`
	Regions []RegionInfo `json:"regions"`
}

RegionsInfo contains some regions with the detailed region info.

func (*RegionsInfo) Adjust

func (s *RegionsInfo) Adjust()

Adjust is only used in testing, in order to compare the data from json deserialization.

type ReplicationStatus

type ReplicationStatus struct {
	State   string `json:"state"`
	StateID uint64 `json:"state_id"`
}

ReplicationStatus represents the replication mode status of the region. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.

type SlowTrend

type SlowTrend struct {
	// CauseValue is the slow trend detecting raw input, it changes by the performance and pressure along time of the store.
	// The value itself is not important, what matter is:
	//   - The comparition result from store to store.
	//   - The change magnitude along time (represented by CauseRate).
	// Currently it's one of store's internal latency (duration of waiting in the task queue of raftstore.store).
	CauseValue float64 `json:"cause_value"`
	// CauseRate is for mesuring the change magnitude of CauseValue of the store,
	//   - CauseRate > 0 means the store is become slower currently
	//   - CauseRate < 0 means the store is become faster currently
	//   - CauseRate == 0 means the store's performance and pressure does not have significant changes
	CauseRate float64 `json:"cause_rate"`
	// ResultValue is the current gRPC QPS of the store.
	ResultValue float64 `json:"result_value"`
	// ResultRate is for mesuring the change magnitude of ResultValue of the store.
	ResultRate float64 `json:"result_rate"`
}

SlowTrend contains slow trend information about a store.

type StoreInfo

type StoreInfo struct {
	Store  *MetaStore   `json:"store"`
	Status *StoreStatus `json:"status"`
}

StoreInfo contains information about a store.

type StoreStatus

type StoreStatus struct {
	Capacity           typeutil.ByteSize  `json:"capacity"`
	Available          typeutil.ByteSize  `json:"available"`
	UsedSize           typeutil.ByteSize  `json:"used_size"`
	LeaderCount        int                `json:"leader_count"`
	LeaderWeight       float64            `json:"leader_weight"`
	LeaderScore        float64            `json:"leader_score"`
	LeaderSize         int64              `json:"leader_size"`
	RegionCount        int                `json:"region_count"`
	RegionWeight       float64            `json:"region_weight"`
	RegionScore        float64            `json:"region_score"`
	RegionSize         int64              `json:"region_size"`
	LearnerCount       int                `json:"learner_count,omitempty"`
	WitnessCount       int                `json:"witness_count,omitempty"`
	SlowScore          uint64             `json:"slow_score,omitempty"`
	SlowTrend          *SlowTrend         `json:"slow_trend,omitempty"`
	SendingSnapCount   uint32             `json:"sending_snap_count,omitempty"`
	ReceivingSnapCount uint32             `json:"receiving_snap_count,omitempty"`
	IsBusy             bool               `json:"is_busy,omitempty"`
	StartTS            *time.Time         `json:"start_ts,omitempty"`
	LastHeartbeatTS    *time.Time         `json:"last_heartbeat_ts,omitempty"`
	Uptime             *typeutil.Duration `json:"uptime,omitempty"`
}

StoreStatus contains status about a store.

type StoresInfo

type StoresInfo struct {
	Count  int          `json:"count"`
	Stores []*StoreInfo `json:"stores"`
}

StoresInfo records stores' info.

type Trend

type Trend struct {
	Stores  []trendStore  `json:"stores"`
	History *trendHistory `json:"history"`
}

Trend describes the cluster's schedule trend. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.

Jump to

Keyboard shortcuts

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