Help us shape the future of Go! Take the 2026 Go Developer Survey

status

package
v1.6.3 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2019 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Collector

type Collector struct {
	lock.RWMutex // protects staleProbes and probeStartTime
	// contains filtered or unexported fields
}

Collector concurrently runs probes used to check status of various subsystems

func NewCollector

func NewCollector(probes []Probe, config Config) *Collector

NewCollector creates a collector and starts the given probes.

Each probe runs in a separate goroutine.

func (*Collector) Close

func (c *Collector) Close()

Close exits all probes and shuts down the collector TODO(brb): call it when daemon exits (after GH#6248).

func (*Collector) GetStaleProbes

func (c *Collector) GetStaleProbes() map[string]time.Time

GetStaleProbes returns a map of stale probes which key is a probe name and value is a time when the last instance of the probe has been started.

A probe is declared stale if it hasn't returned in FailureThreshold.

type Config

type Config struct {
	WarningThreshold time.Duration
	FailureThreshold time.Duration
	Interval         time.Duration
}

Config is the collector configuration

type Probe

type Probe struct {
	Name string

	Probe func(ctx context.Context) (interface{}, error)

	// OnStatusUpdate is called whenever the status of the probe changes
	OnStatusUpdate func(status Status)

	// Interval allows to specify a probe specific interval that can be
	// mutated based on whether the probe is failing or based on external
	// factors such as current cluster size
	Interval func(failures int) time.Duration
	// contains filtered or unexported fields
}

Probe is run by the collector at a particular interval between invocations

type Status

type Status struct {
	// Data is non-nil when the probe has completed successfully. Data is
	// set to the value returned by Probe()
	Data interface{}

	// Err is non-nil if either the probe file or the Failure or Warning
	// threshold has been reached
	Err error

	// StaleWarning is true once the WarningThreshold has been reached
	StaleWarning bool
}

Status is passed to a probe when its state changes

Jump to

Keyboard shortcuts

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