healthcheck

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2020 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SendHeartBeat

func SendHeartBeat(channel chan<- *ControllerHeartbeat, controller string)

SendHeartBeat sends a heartbeat on the passed channel

Types

type ControllerHeartbeat

type ControllerHeartbeat struct {
	Component     string
	LastHeartBeat time.Time
}

ControllerHeartbeat is the structure to hold the heartbeats sent by controllers

type HealthController

type HealthController struct {
	HealthPort  uint16
	HTTPEnabled bool
	Status      HealthStats
	Config      *options.KubeRouterConfig
}

HealthController reports the health of the controller loops as a http endpoint

func NewHealthController

func NewHealthController(config *options.KubeRouterConfig) (*HealthController, error)

NewHealthController creates a new health controller and returns a reference to it

func (*HealthController) CheckHealth

func (hc *HealthController) CheckHealth() bool

CheckHealth evaluates the time since last heartbeat to decide if the controller is running or not

func (*HealthController) HandleHeartbeat

func (hc *HealthController) HandleHeartbeat(beat *ControllerHeartbeat)

HandleHeartbeat handles received heartbeats on the health channel

func (*HealthController) Handler

func (hc *HealthController) Handler(w http.ResponseWriter, req *http.Request)

Handler writes HTTP responses to the health path

func (*HealthController) RunCheck

func (hc *HealthController) RunCheck(healthChan <-chan *ControllerHeartbeat, stopCh <-chan struct{}, wg *sync.WaitGroup)

RunCheck starts the HealthController's check

func (*HealthController) RunServer

func (hc *HealthController) RunServer(stopCh <-chan struct{}, wg *sync.WaitGroup)

RunServer starts the HealthController's server

func (*HealthController) SetAlive

func (hc *HealthController) SetAlive()

type HealthStats

type HealthStats struct {
	sync.Mutex
	Healthy                           bool
	MetricsControllerAlive            time.Time
	NetworkPolicyControllerAlive      time.Time
	NetworkPolicyControllerAliveTTL   time.Duration
	NetworkRoutingControllerAlive     time.Time
	NetworkRoutingControllerAliveTTL  time.Duration
	NetworkServicesControllerAlive    time.Time
	NetworkServicesControllerAliveTTL time.Duration
}

HealthStats is holds the latest heartbeats

Jump to

Keyboard shortcuts

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