healthcheck

package
v2.11.2 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2024 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BackendConfig

type BackendConfig struct {
	Options
	// contains filtered or unexported fields
}

BackendConfig HealthCheck configuration for a backend.

func NewBackendConfig

func NewBackendConfig(options Options, backendName string) *BackendConfig

NewBackendConfig Instantiate a new BackendConfig.

type Balancer

type Balancer interface {
	Servers() []*url.URL
	RemoveServer(u *url.URL) error
	UpsertServer(u *url.URL, options ...roundrobin.ServerOption) error
}

Balancer is the set of operations required to manage the list of servers in a load-balancer.

type BalancerHandler

type BalancerHandler interface {
	ServeHTTP(w http.ResponseWriter, req *http.Request)
	Balancer
}

BalancerHandler includes functionality for load-balancing management.

type BalancerStatusHandler added in v2.5.0

type BalancerStatusHandler interface {
	BalancerHandler
	StatusUpdater
}

BalancerStatusHandler is an http Handler that does load-balancing, and updates its parents of its status.

type Balancers

type Balancers []Balancer

Balancers is a list of Balancers(s) that implements the Balancer interface.

func (Balancers) RemoveServer

func (b Balancers) RemoveServer(u *url.URL) error

RemoveServer removes the given server from all the Balancer, and updates the status of the server to "DOWN".

func (Balancers) Servers

func (b Balancers) Servers() []*url.URL

Servers returns the deduplicated server URLs from all the Balancer. Note that the deduplication is only possible because all the underlying balancers are of the same kind (the oxy implementation). The comparison property is the same as the one found at: https://github.com/vulcand/oxy/blob/fb2728c857b7973a27f8de2f2190729c0f22cf49/roundrobin/rr.go#L347.

func (Balancers) UpsertServer

func (b Balancers) UpsertServer(u *url.URL, options ...roundrobin.ServerOption) error

UpsertServer adds the given server to all the Balancer, and updates the status of the server to "UP".

type HealthCheck

type HealthCheck struct {
	Backends map[string]*BackendConfig
	// contains filtered or unexported fields
}

HealthCheck struct.

func GetHealthCheck

func GetHealthCheck(registry metrics.Registry) *HealthCheck

GetHealthCheck returns the health check which is guaranteed to be a singleton.

func (*HealthCheck) SetBackendsConfiguration

func (hc *HealthCheck) SetBackendsConfiguration(parentCtx context.Context, backends map[string]*BackendConfig)

SetBackendsConfiguration set backends configuration.

type LbStatusUpdater

type LbStatusUpdater struct {
	BalancerHandler
	// contains filtered or unexported fields
}

LbStatusUpdater wraps a BalancerHandler and a ServiceInfo, so it can keep track of the status of a server in the ServiceInfo.

func NewLBStatusUpdater

func NewLBStatusUpdater(bh BalancerHandler, info *runtime.ServiceInfo, hc *dynamic.ServerHealthCheck) *LbStatusUpdater

NewLBStatusUpdater returns a new LbStatusUpdater.

func (*LbStatusUpdater) RegisterStatusUpdater added in v2.5.0

func (lb *LbStatusUpdater) RegisterStatusUpdater(fn func(up bool)) error

RegisterStatusUpdater adds fn to the list of hooks that are run when the status of the Balancer changes. Not thread safe.

func (*LbStatusUpdater) RemoveServer

func (lb *LbStatusUpdater) RemoveServer(u *url.URL) error

RemoveServer removes the given server from the BalancerHandler, and updates the status of the server to "DOWN".

func (*LbStatusUpdater) UpsertServer

func (lb *LbStatusUpdater) UpsertServer(u *url.URL, options ...roundrobin.ServerOption) error

UpsertServer adds the given server to the BalancerHandler, and updates the status of the server to "UP".

type Options

type Options struct {
	Headers         map[string]string
	Hostname        string
	Scheme          string
	Path            string
	Method          string
	Port            int
	FollowRedirects bool
	Transport       http.RoundTripper
	Interval        time.Duration
	Timeout         time.Duration
	LB              Balancer
}

Options are the public health check options.

func (Options) String

func (opt Options) String() string

type StatusUpdater added in v2.5.0

type StatusUpdater interface {
	RegisterStatusUpdater(fn func(up bool)) error
}

StatusUpdater should be implemented by a service that, when its status changes (e.g. all if its children are down), needs to propagate upwards (to their parent(s)) that change.

Jump to

Keyboard shortcuts

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