health

package
v1.64.2 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2024 License: BSD-3-Clause Imports: 12 Imported by: 23

Documentation

Overview

Package health is a registry for other packages to report & check overall health status of the node.

Index

Constants

View Source
const (
	// SysOverall is the name representing the overall health of
	// the system, rather than one particular subsystem.
	SysOverall = Subsystem("overall")

	// SysRouter is the name of the wgengine/router subsystem.
	SysRouter = Subsystem("router")

	// SysDNS is the name of the net/dns subsystem.
	SysDNS = Subsystem("dns")

	// SysDNSOS is the name of the net/dns OSConfigurator subsystem.
	SysDNSOS = Subsystem("dns-os")

	// SysDNSManager is the name of the net/dns manager subsystem.
	SysDNSManager = Subsystem("dns-manager")

	// SysTKA is the name of the tailnet key authority subsystem.
	SysTKA = Subsystem("tailnet-lock")
)

Variables

View Source
var (
	ReceiveIPv4 = ReceiveFuncStats{/* contains filtered or unexported fields */}
	ReceiveIPv6 = ReceiveFuncStats{/* contains filtered or unexported fields */}
	ReceiveDERP = ReceiveFuncStats{/* contains filtered or unexported fields */}
)

Functions

func AppendWarnableDebugFlags added in v1.34.0

func AppendWarnableDebugFlags(base []string) []string

AppendWarnableDebugFlags appends to base any health items that are currently in failed state and were created with MapDebugFlag.

func DNSHealth added in v1.8.0

func DNSHealth() error

DNSHealth returns the net/dns.Manager error state.

func DNSOSHealth added in v1.20.0

func DNSOSHealth() error

DNSOSHealth returns the net/dns.OSConfigurator error state.

func DebugHandler added in v1.20.0

func DebugHandler(typ string) http.Handler

func GetDERPRegionReceivedTime added in v1.58.0

func GetDERPRegionReceivedTime(region int) time.Time

GetDERPRegionReceivedTime returns the last time that a frame was received from the given DERP region, or the zero time if no communication with that region has occurred.

func GetInPollNetMap added in v1.20.0

func GetInPollNetMap() bool

GetInPollNetMap reports whether the client has an open HTTP long poll open to the control plane.

func GotStreamedMapResponse added in v1.6.0

func GotStreamedMapResponse()

GotStreamedMapResponse notes that we got a tailcfg.MapResponse message in streaming mode, even if it's just a keep-alive message.

This also notes that a map poll is in progress. To unset that, call SetOutOfPollNetMap().

func NoteDERPRegionReceivedFrame added in v1.6.0

func NoteDERPRegionReceivedFrame(region int)

NoteDERPRegionReceivedFrame is called to note that a frame was received from the given DERP region at the current time.

func NoteMapRequestHeard added in v1.6.0

func NoteMapRequestHeard(mr *tailcfg.MapRequest)

NoteMapRequestHeard notes whenever we successfully sent a map request to control for which we received a 200 response.

func OverallError added in v1.16.0

func OverallError() error

OverallError returns a summary of the health state.

If there are multiple problems, the error will be of type multierr.Error.

func RegisterDebugHandler added in v1.20.0

func RegisterDebugHandler(typ string, h http.Handler)

func RegisterWatcher

func RegisterWatcher(cb func(key Subsystem, err error)) (unregister func())

RegisterWatcher adds a function that will be called if an error changes state either to unhealthy or from unhealthy. It is not called on transition from unknown to healthy. It must be non-nil and is run in its own goroutine. The returned func unregisters it.

func RouterHealth

func RouterHealth() error

RouterHealth returns the wgengine/router.Router error state.

func SetAnyInterfaceUp added in v1.8.0

func SetAnyInterfaceUp(up bool)

SetAnyInterfaceUp sets whether any network interface is up.

func SetAuthRoutineInError added in v1.26.0

func SetAuthRoutineInError(err error)

SetAuthRoutineInError records the latest error encountered as a result of a login attempt. Providing a nil error indicates successful login, or that being logged in w/coordination is not currently desired.

func SetControlHealth added in v1.16.0

func SetControlHealth(problems []string)

func SetDERPRegionConnectedState added in v1.6.0

func SetDERPRegionConnectedState(region int, connected bool)

func SetDERPRegionHealth added in v1.16.0

func SetDERPRegionHealth(region int, problem string)

SetDERPRegionHealth sets or clears any problem associated with the provided DERP region.

func SetDNSHealth added in v1.8.0

func SetDNSHealth(err error)

SetDNSHealth sets the state of the net/dns.Manager

func SetDNSManagerHealth added in v1.22.0

func SetDNSManagerHealth(err error)

SetDNSManagerHealth sets the state of the Linux net/dns manager's discovery of the /etc/resolv.conf situation.

func SetDNSOSHealth added in v1.20.0

func SetDNSOSHealth(err error)

SetDNSOSHealth sets the state of the net/dns.OSConfigurator

func SetIPNState added in v1.6.0

func SetIPNState(state string, wantRunning bool)

state is an ipn.State.String() value: "Running", "Stopped", "NeedsLogin", etc.

func SetLocalLogConfigHealth added in v1.34.0

func SetLocalLogConfigHealth(err error)

SetLocalLogConfigHealth sets the error state of this client's local log configuration.

func SetMagicSockDERPHome added in v1.6.0

func SetMagicSockDERPHome(region int, homeless bool)

SetMagicSockDERPHome notes what magicsock's view of its home DERP is.

The homeless parameter is whether magicsock is running in DERP-disconnected mode, without discovering and maintaining a connection to its home DERP.

func SetOutOfPollNetMap added in v1.50.0

func SetOutOfPollNetMap()

SetOutOfPollNetMap records that the client is no longer in an HTTP map request long poll to the control plane.

func SetRouterHealth

func SetRouterHealth(err error)

SetRouterHealth sets the state of the wgengine/router.Router.

func SetTKAHealth added in v1.36.0

func SetTKAHealth(err error)

SetTKAHealth sets the health of the tailnet key authority.

func SetTLSConnectionError added in v1.38.0

func SetTLSConnectionError(host string, err error)

SetTLSConnectionError sets the error state for connections to a specific host. Setting the error to nil will clear any previously-set error.

func SetUDP4Unbound added in v1.8.0

func SetUDP4Unbound(unbound bool)

SetUDP4Unbound sets whether the udp4 bind failed completely.

func TKAHealth added in v1.36.0

func TKAHealth() error

TKAHealth returns the tailnet key authority error state.

Types

type ReceiveFuncStats added in v1.8.0

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

ReceiveFuncStats tracks the calls made to a wireguard-go receive func.

func (*ReceiveFuncStats) Enter added in v1.8.0

func (s *ReceiveFuncStats) Enter()

func (*ReceiveFuncStats) Exit added in v1.8.0

func (s *ReceiveFuncStats) Exit()

type Subsystem added in v1.6.0

type Subsystem string

Subsystem is the name of a subsystem whose health can be monitored.

type Warnable added in v1.34.0

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

Warnable is a health check item that may or may not be in a bad warning state. The caller of NewWarnable is responsible for calling Set to update the state.

func NewWarnable added in v1.34.0

func NewWarnable(opts ...WarnableOpt) *Warnable

NewWarnable returns a new warnable item that the caller can mark as health or in warning state.

func (*Warnable) Set added in v1.34.0

func (w *Warnable) Set(err error)

Set updates the Warnable's state. If non-nil, it's considered unhealthy.

type WarnableOpt added in v1.34.0

type WarnableOpt interface {
	// contains filtered or unexported methods
}

WarnableOpt is an option passed to NewWarnable.

func WithConnectivityImpact added in v1.62.0

func WithConnectivityImpact() WarnableOpt

WithConnectivityImpact returns an option which makes a Warnable annotated as something that could be breaking external network connectivity on the machine. This will make the warnable returned by OverallError alongside network connectivity errors.

func WithMapDebugFlag added in v1.34.0

func WithMapDebugFlag(name string) WarnableOpt

WithMapDebugFlag returns a WarnableOpt for NewWarnable that makes the returned Warnable report itself to the coordination server as broken with this string in MapRequest.DebugFlag when Set to a non-nil value.

Directories

Path Synopsis
Package healthmsg contains some constants for health messages.
Package healthmsg contains some constants for health messages.

Jump to

Keyboard shortcuts

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