health

package
v1.9.0-rc.11 Latest Latest
Warning

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

Go to latest
Published: Sep 21, 2022 License: BSD-3-Clause Imports: 14 Imported by: 40

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewGetAndPostHandler added in v1.7.4

func NewGetAndPostHandler(log logging.Logger, reporter Reporter) (http.Handler, error)

NewGetAndPostHandler returns a health handler that supports GET and jsonrpc POST requests.

func NewGetHandler added in v1.7.4

func NewGetHandler(reporter func() (map[string]Result, bool)) http.Handler

NewGetHandler return a health handler that supports GET requests reporting the result of the provided [reporter].

Types

type APIHealthReply added in v1.2.1

type APIHealthReply struct {
	Checks  map[string]Result `json:"checks"`
	Healthy bool              `json:"healthy"`
}

APIHealthReply is the response for Health

type Checker added in v1.7.4

type Checker interface {
	// HealthCheck returns health check results and, if not healthy, a non-nil
	// error
	//
	// It is expected that the results are json marshallable.
	HealthCheck() (interface{}, error)
}

Checker can have its health checked

type CheckerFunc added in v1.7.4

type CheckerFunc func() (interface{}, error)

func (CheckerFunc) HealthCheck added in v1.7.4

func (f CheckerFunc) HealthCheck() (interface{}, error)

type Client added in v1.0.6

type Client interface {
	// Readiness returns if the node has finished initialization
	Readiness(context.Context, ...rpc.Option) (*APIHealthReply, error)
	// Health returns a summation of the health of the node
	Health(context.Context, ...rpc.Option) (*APIHealthReply, error)
	// Liveness returns if the node is in need of a restart
	Liveness(context.Context, ...rpc.Option) (*APIHealthReply, error)
	// AwaitHealthy queries the Health endpoint with a pause of [interval]
	// in between checks and returns early if Health returns healthy
	AwaitHealthy(ctx context.Context, freq time.Duration, options ...rpc.Option) (bool, error)
}

Client interface for Avalanche Health API Endpoint

func NewClient added in v1.0.6

func NewClient(uri string) Client

NewClient returns a client to interact with Health API endpoint

type Health

type Health interface {
	Registerer
	Reporter

	Start(freq time.Duration)
	Stop()
}

Health defines the full health service interface for registering, reporting and refreshing health checks.

func New added in v1.7.2

func New(log logging.Logger, registerer prometheus.Registerer) (Health, error)

type Registerer added in v1.7.4

type Registerer interface {
	RegisterReadinessCheck(name string, checker Checker) error
	RegisterHealthCheck(name string, checker Checker) error
	RegisterLivenessCheck(name string, checker Checker) error
}

Registerer defines how to register new components to check the health of.

type Reporter added in v1.7.4

type Reporter interface {
	Readiness() (map[string]Result, bool)
	Health() (map[string]Result, bool)
	Liveness() (map[string]Result, bool)
}

Reporter returns the current health status.

type Result added in v1.6.2

type Result struct {
	// Details of the HealthCheck.
	Details interface{} `json:"message,omitempty"`

	// Error is the string representation of the error returned by the failing
	// HealthCheck. The value is nil if the check passed.
	Error *string `json:"error,omitempty"`

	// Timestamp of the last HealthCheck.
	Timestamp time.Time `json:"timestamp,omitempty"`

	// Duration is the amount of time this HealthCheck last took to evaluate.
	Duration time.Duration `json:"duration"`

	// ContiguousFailures the HealthCheck has returned.
	ContiguousFailures int64 `json:"contiguousFailures,omitempty"`

	// TimeOfFirstFailure of the HealthCheck,
	TimeOfFirstFailure *time.Time `json:"timeOfFirstFailure,omitempty"`
}

type Service added in v1.2.1

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

func (*Service) Health added in v1.7.2

func (s *Service) Health(_ *http.Request, _ *struct{}, reply *APIHealthReply) error

Health returns a summation of the health of the node

func (*Service) Liveness added in v1.7.4

func (s *Service) Liveness(_ *http.Request, _ *struct{}, reply *APIHealthReply) error

Liveness returns if the node is in need of a restart

func (*Service) Readiness added in v1.7.4

func (s *Service) Readiness(_ *http.Request, _ *struct{}, reply *APIHealthReply) error

Readiness returns if the node has finished initialization

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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