health

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: May 18, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckContext

func CheckContext(ctx context.Context) context.Context

func IsCheck

func IsCheck(ctx context.Context) bool

func WaitForTestDial

func WaitForTestDial(ctx context.Context, addr net.Addr)

WaitForTestDial tries to create a client connection to the given target with a blocking dial and a timeout specified in testDialTimeout. Nothing is done with the connection, which is just closed in case it is created.

Types

type Checkable

type Checkable interface {
	CheckHealth() State
}

Checkable is the interface implemented by subsystems that the checker uses to determine subsystem health.

type Checker

type Checker interface {
	AddCheck(name string, checkable Checkable) error
}

Checker is responsible for running health checks and serving the healthcheck HTTP paths

type Config

type Config struct {
	ListenerEnabled bool `hcl:"listener_enabled"`

	// Address and port to listen on, defaulting to localhost:80
	BindAddress string `hcl:"bind_address"`
	BindPort    string `hcl:"bind_port"`

	// Paths for /ready and /live
	ReadyPath string `hcl:"ready_path"`
	LivePath  string `hcl:"live_path"`

	UnusedKeys []string `hcl:",unusedKeys"`
}

type Details

type Details struct {
	Message string `json:"message,omitempty"`
}

Details are additional data to be used when the system is ready

type ServableChecker

type ServableChecker interface {
	Checker
	ListenAndServe(ctx context.Context) error
}

func NewChecker

func NewChecker(config Config, log logrus.FieldLogger) ServableChecker

type State

type State struct {
	// Live is whether or not the subsystem is live (i.e. in a good state
	// or in a state it can recover from while remaining alive). Global
	// liveness is only reported true if all subsystems report live.
	Live bool

	// Ready is whether or not the subsystem is ready (i.e. ready to perform
	// its function). Global readiness is only reported true if all subsystems
	// report ready.
	Ready bool

	// Subsystems can return whatever details they want here as long as it is
	// serializable via json.Marshal.
	// LiveDetails are opaque details related to the live check.
	LiveDetails interface{}

	// ReadyDetails are opaque details related to the live check.
	ReadyDetails interface{}
}

State is the health state of a subsystem.

Jump to

Keyboard shortcuts

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