Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewGetAndPostHandler ¶
NewGetAndPostHandler returns a health handler that supports GET and jsonrpc POST requests.
Types ¶
type APIHealthReply ¶
type APIHealthReply struct { Checks map[string]Result `json:"checks"` Healthy bool `json:"healthy"` }
APIHealthReply is the response for Health
type Checker ¶
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 ¶
type CheckerFunc func() (interface{}, error)
func (CheckerFunc) HealthCheck ¶
func (f CheckerFunc) HealthCheck() (interface{}, error)
type Client ¶
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
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 ¶
func New(log logging.Logger, registerer prometheus.Registerer) (Health, error)
type Registerer ¶
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 ¶
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 ¶
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 ¶
type Service struct {
// contains filtered or unexported fields
}
func (*Service) Health ¶
func (s *Service) Health(_ *http.Request, _ *struct{}, reply *APIHealthReply) error
Health returns a summation of the health of the node
Source Files ¶
Click to show internal directories.
Click to hide internal directories.