infosync

package
v1.1.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitEtcdClient

func InitEtcdClient(logger *zap.Logger, cfg *config.Config, certMgr *cert.CertManager) (*clientv3.Client, error)

InitEtcdClient initializes an etcd client that connects to PD ETCD server.

Types

type InfoSyncer

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

InfoSyncer syncs TiProxy topology to ETCD and queries TiDB topology from ETCD. It writes 2 items to ETCD: `/topology/tiproxy/.../info` and `/topology/tiproxy/.../ttl`. They are erased after TiProxy is down. The code is modified from github.com/pingcap/tidb/domain/infosync/info.go.

func NewInfoSyncer

func NewInfoSyncer(lg *zap.Logger) *InfoSyncer

func (*InfoSyncer) Close

func (is *InfoSyncer) Close() error

func (*InfoSyncer) GetPromInfo added in v1.1.0

func (is *InfoSyncer) GetPromInfo(ctx context.Context) (*PrometheusInfo, error)

func (*InfoSyncer) GetTiDBTopology

func (is *InfoSyncer) GetTiDBTopology(ctx context.Context) (map[string]*TiDBInfo, error)

func (*InfoSyncer) Init

func (is *InfoSyncer) Init(ctx context.Context, cfg *config.Config, certMgr *cert.CertManager) error

type PrometheusInfo added in v1.1.0

type PrometheusInfo struct {
	IP         string `json:"ip"`
	BinaryPath string `json:"binary_path"`
	Port       int    `json:"port"`
}

PrometheusInfo is the info of prometheus.

type TiDBInfo

type TiDBInfo struct {
	// TopologyInfo is parsed from the /info path.
	*TiDBTopologyInfo
	// TTL is parsed from the /ttl path.
	TTL string
}

TiDBInfo is the info of TiDB.

type TiDBTopologyInfo added in v1.1.0

type TiDBTopologyInfo struct {
	Version        string            `json:"version"`
	GitHash        string            `json:"git_hash"`
	IP             string            `json:"ip"`
	StatusPort     uint              `json:"status_port"`
	DeployPath     string            `json:"deploy_path"`
	StartTimestamp int64             `json:"start_timestamp"`
	Labels         map[string]string `json:"labels"`
}

TiDBTopologyInfo is the topology info of TiDB.

type TopologyInfo

type TopologyInfo struct {
	Version        string `json:"version"`
	GitHash        string `json:"git_hash"`
	IP             string `json:"ip"`
	Port           string `json:"port"`
	StatusPort     string `json:"status_port"`
	DeployPath     string `json:"deploy_path"`
	StartTimestamp int64  `json:"start_timestamp"`
}

TopologyInfo is the info of TiProxy.

Jump to

Keyboard shortcuts

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