Documentation
¶
Index ¶
- Variables
- func Addr(ins spec.Instance) string
- func AsyncNodes(spec *spec.Specification, nodes []string, async bool) []string
- func Cleanup(getter ExecutorGetter, cluster spec.Topology, options Options) error
- func CleanupComponent(getter ExecutorGetter, instances []spec.Instance, cls spec.Topology, ...) error
- func DeleteGlobalDirs(getter ExecutorGetter, host string, options *spec.GlobalOptions) error
- func Destroy(getter ExecutorGetter, cluster spec.Topology, options Options) error
- func DestroyClusterTombstone(getter ExecutorGetter, cluster *spec.Specification, returNodesOnly bool, ...) (nodes []string, err error)
- func DestroyComponent(getter ExecutorGetter, instances []spec.Instance, cls spec.Topology, ...) error
- func DestroyMonitored(getter ExecutorGetter, inst spec.Instance, options *spec.MonitoredOptions, ...) error
- func DestroyTombstone(getter ExecutorGetter, cluster *spec.Specification, returNodesOnly bool, ...) (nodes []string, err error)
- func Download(component, nodeOS, arch string, version string) error
- func FilterComponent(comps []spec.Component, components set.StringSet) (res []spec.Component)
- func FilterInstance(instances []spec.Instance, nodes set.StringSet) (res []spec.Instance)
- func GetNodeInfo(ctx context.Context, getter ExecutorGetter, topo spec.Topology) (nodes []*telemetry.NodeInfo, err error)
- func GetServiceStatus(e executor.Executor, name string) (active string, err error)
- func NeedCheckTomebsome(spec *spec.Specification) bool
- func PrintClusterStatus(getter ExecutorGetter, cluster *spec.Specification) (health bool)
- func Restart(getter ExecutorGetter, cluster spec.Topology, options Options) error
- func RestartComponent(getter ExecutorGetter, instances []spec.Instance, timeout int64) error
- func ScaleIn(getter ExecutorGetter, cluster *spec.Specification, options Options) error
- func ScaleInCluster(getter ExecutorGetter, cluster *spec.Specification, options Options) error
- func Start(getter ExecutorGetter, cluster spec.Topology, options Options) error
- func StartComponent(getter ExecutorGetter, instances []spec.Instance, options Options) error
- func StartMonitored(getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, ...) error
- func Stop(getter ExecutorGetter, cluster spec.Topology, options Options) error
- func StopComponent(getter ExecutorGetter, instances []spec.Instance, timeout int64) error
- func StopMonitored(getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, ...) error
- func Upgrade(getter ExecutorGetter, topo spec.Topology, options Options) error
- type CheckOptions
- type CheckResult
- func CheckFIOResult(rr, rw, lat []byte) []*CheckResult
- func CheckKernelParameters(opt *CheckOptions, p []byte) []*CheckResult
- func CheckListeningPort(opt *CheckOptions, host string, topo *spec.Specification, rawData []byte) []*CheckResult
- func CheckPartitions(opt *CheckOptions, host string, topo *spec.Specification, rawData []byte) []*CheckResult
- func CheckSELinux(e executor.Executor) *CheckResult
- func CheckServices(e executor.Executor, host, service string, disable bool) *CheckResult
- func CheckSysLimits(opt *CheckOptions, user string, l []byte) []*CheckResult
- func CheckSystemInfo(opt *CheckOptions, rawData []byte) []*CheckResult
- type ExecutorGetter
- type Operation
- type Options
Constants ¶
This section is empty.
Variables ¶
var ( CheckNameGeneral = "general" // errors that don't fit any specific check CheckNameNTP = "ntp" CheckNameOSVer = "os-version" CheckNameSwap = "swap" CheckNameSysctl = "sysctl" CheckNameCPUThreads = "cpu-cores" CheckNameCPUGovernor = "cpu-governor" CheckNameDisks = "disk" CheckNamePortListen = "listening-port" CheckNameEpoll = "epoll-exclusive" CheckNameMem = "memory" CheckNameLimits = "limits" CheckNameSysService = "service" CheckNameSELinux = "selinux" CheckNameCommand = "command" CheckNameFio = "fio" )
Names of checks
Functions ¶
func AsyncNodes ¶
func AsyncNodes(spec *spec.Specification, nodes []string, async bool) []string
AsyncNodes return all nodes async destroy or not.
func Cleanup ¶ added in v1.1.0
func Cleanup( getter ExecutorGetter, cluster spec.Topology, options Options, ) error
Cleanup the cluster
func CleanupComponent ¶ added in v1.1.0
func CleanupComponent(getter ExecutorGetter, instances []spec.Instance, cls spec.Topology, options Options) error
CleanupComponent cleanup the instances
func DeleteGlobalDirs ¶
func DeleteGlobalDirs(getter ExecutorGetter, host string, options *spec.GlobalOptions) error
DeleteGlobalDirs deletes all global directories if they are empty
func Destroy ¶
func Destroy( getter ExecutorGetter, cluster spec.Topology, options Options, ) error
Destroy the cluster.
func DestroyClusterTombstone ¶
func DestroyClusterTombstone( getter ExecutorGetter, cluster *spec.Specification, returNodesOnly bool, options Options, ) (nodes []string, err error)
DestroyClusterTombstone remove the tombstone node in spec and destroy them. If returNodesOnly is true, it will only return the node id that can be destroy.
func DestroyComponent ¶
func DestroyComponent(getter ExecutorGetter, instances []spec.Instance, cls spec.Topology, options Options) error
DestroyComponent destroy the instances.
func DestroyMonitored ¶
func DestroyMonitored(getter ExecutorGetter, inst spec.Instance, options *spec.MonitoredOptions, timeout int64) error
DestroyMonitored destroy the monitored service.
func DestroyTombstone ¶
func DestroyTombstone( getter ExecutorGetter, cluster *spec.Specification, returNodesOnly bool, options Options, ) (nodes []string, err error)
DestroyTombstone remove the tombstone node in spec and destroy them. If returNodesOnly is true, it will only return the node id that can be destroy.
func Download ¶
Download the specific version of a component from the repository, there is nothing to do if the specified version exists.
func FilterComponent ¶
FilterComponent filter components by set
func FilterInstance ¶
FilterInstance filter instances by set
func GetNodeInfo ¶
func GetNodeInfo( ctx context.Context, getter ExecutorGetter, topo spec.Topology, ) (nodes []*telemetry.NodeInfo, err error)
GetNodeInfo the node info in topology.
func GetServiceStatus ¶
GetServiceStatus return the Acitive line of status.
[tidb@ip-172-16-5-70 deploy]$ sudo systemctl status drainer-8249.service ● drainer-8249.service - drainer-8249 service
Loaded: loaded (/etc/systemd/system/drainer-8249.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2020-03-09 13:56:19 CST; 1 weeks 3 days ago Main PID: 36718 (drainer) CGroup: /system.slice/drainer-8249.service └─36718 bin/drainer --addr=172.16.5.70:8249 --pd-urls=http://172.16.5.70:2379 --data-dir=/data1/deploy/data.drainer --log-file=/data1/deploy/log/drainer.log --config=conf/drainer.toml --initial-commit-ts=408375872006389761
Mar 09 13:56:19 ip-172-16-5-70 systemd[1]: Started drainer-8249 service.
func NeedCheckTomebsome ¶
func NeedCheckTomebsome(spec *spec.Specification) bool
NeedCheckTomebsome return true if we need to check and destroy some node.
func PrintClusterStatus ¶
func PrintClusterStatus(getter ExecutorGetter, cluster *spec.Specification) (health bool)
PrintClusterStatus print cluster status into the io.Writer.
func Restart ¶
func Restart( getter ExecutorGetter, cluster spec.Topology, options Options, ) error
Restart the cluster.
func RestartComponent ¶
func RestartComponent(getter ExecutorGetter, instances []spec.Instance, timeout int64) error
RestartComponent restarts the component.
func ScaleIn ¶
func ScaleIn( getter ExecutorGetter, cluster *spec.Specification, options Options, ) error
ScaleIn scales in the cluster
func ScaleInCluster ¶
func ScaleInCluster( getter ExecutorGetter, cluster *spec.Specification, options Options, ) error
ScaleInCluster scales in the cluster
func Start ¶
func Start( getter ExecutorGetter, cluster spec.Topology, options Options, ) error
Start the cluster.
func StartComponent ¶
func StartComponent(getter ExecutorGetter, instances []spec.Instance, options Options) error
StartComponent start the instances.
func StartMonitored ¶
func StartMonitored(getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, timeout int64) error
StartMonitored start BlackboxExporter and NodeExporter
func Stop ¶
func Stop( getter ExecutorGetter, cluster spec.Topology, options Options, ) error
Stop the cluster.
func StopComponent ¶
func StopComponent(getter ExecutorGetter, instances []spec.Instance, timeout int64) error
StopComponent stop the instances.
func StopMonitored ¶
func StopMonitored(getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, timeout int64) error
StopMonitored stop BlackboxExporter and NodeExporter
Types ¶
type CheckOptions ¶
type CheckOptions struct { // checks that are disabled by default EnableCPU bool EnableMem bool EnableDisk bool }
CheckOptions control the list of checks to be performed
type CheckResult ¶
type CheckResult struct { Name string // Name of the check Err error // An embedded error Warn bool // The check didn't pass, but not a big problem Msg string // A message or description }
CheckResult is the result of a check
func CheckFIOResult ¶
func CheckFIOResult(rr, rw, lat []byte) []*CheckResult
CheckFIOResult parses and checks the result of fio test
func CheckKernelParameters ¶
func CheckKernelParameters(opt *CheckOptions, p []byte) []*CheckResult
CheckKernelParameters checks kernel parameter values
func CheckListeningPort ¶
func CheckListeningPort(opt *CheckOptions, host string, topo *spec.Specification, rawData []byte) []*CheckResult
CheckListeningPort checks if the ports are already binded by some process on host
func CheckPartitions ¶
func CheckPartitions(opt *CheckOptions, host string, topo *spec.Specification, rawData []byte) []*CheckResult
CheckPartitions checks partition info of data directories
func CheckSELinux ¶
func CheckSELinux(e executor.Executor) *CheckResult
CheckSELinux checks if SELinux is enabled on the host
func CheckServices ¶
func CheckServices(e executor.Executor, host, service string, disable bool) *CheckResult
CheckServices checks if a service is running on the host
func CheckSysLimits ¶
func CheckSysLimits(opt *CheckOptions, user string, l []byte) []*CheckResult
CheckSysLimits checks limits in /etc/security/limits.conf
func CheckSystemInfo ¶
func CheckSystemInfo(opt *CheckOptions, rawData []byte) []*CheckResult
CheckSystemInfo performs checks with basic system info
func (CheckResult) IsWarning ¶
func (c CheckResult) IsWarning() bool
IsWarning checks if the result is a warning error
func (CheckResult) Passed ¶
func (c CheckResult) Passed() bool
Passed checks if the result is a success
func (CheckResult) String ¶
func (c CheckResult) String() string
String returns a readable string of the error
func (CheckResult) Unwrap ¶
func (c CheckResult) Unwrap() error
Unwrap implements the Wrapper interface
type ExecutorGetter ¶
ExecutorGetter get the executor by host.
type Operation ¶
type Operation byte
Operation represents the type of cluster operation
type Options ¶
type Options struct { Roles []string Nodes []string Force bool // Option for upgrade subcommand SSHTimeout int64 // timeout in seconds when connecting an SSH server OptTimeout int64 // timeout in seconds for operations that support it, not to confuse with SSH timeout APITimeout int64 // timeout in seconds for API operations that support it, like transfering store leader IgnoreConfigCheck bool // should we ignore the config check result after init config NativeSSH bool // should use native ssh client or builtin easy ssh // What type of things should we cleanup in clean command CleanupData bool // should we cleanup data CleanupLog bool // should we clenaup log // Some data will be retained when destroying instances RetainDataRoles []string RetainDataNodes []string }
Options represents the operation options