Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type HAProxySocket ¶
type HAProxySocket interface {
Address() string
HasConn() bool
Send(observer func(duration time.Duration), command ...string) ([]string, error)
Unlistening() error
Close() error
}
HAProxySocket ...
func NewSocket ¶
func NewSocket(ctx context.Context, address string, timeout time.Duration, keepalive bool) HAProxySocket
NewSocket ...
func NewSocketConcurrent ¶
func NewSocketConcurrent(ctx context.Context, address string, timeout time.Duration, keepalive bool) HAProxySocket
NewSocketConcurrent ...
type Proc ¶
type Proc struct {
Type string
PID int
RPID int
Reloads int
Failed int
Uptime string
Version string
}
Proc ...
type ProcTable ¶
ProcTable ...
func HAProxyProcs ¶
func HAProxyProcs(ctx context.Context, masterSocket HAProxySocket) (*ProcTable, error)
HAProxyProcs reads and converts `show proc` from the master CLI to a ProcTable instance. Waits for the reload to complete while master CLI is down and the attempt to connect leads to a connection refused. Some context: https://www.mail-archive.com/haproxy@formilux.org/msg38415.html The amount of time between attempts increases exponentially between 1ms and 256ms, and arithmetically between 256ms and 1s in order to save CPU on long reload events and quit fast on the fastest ones. The whole processing time can be calculated by the caller as the haproxy reload time.