Documentation ¶
Overview ¶
Package health is a registry for other packages to report & check overall health status of the node.
Index ¶
- Constants
- Variables
- func DNSHealth() error
- func DNSOSHealth() error
- func DebugHandler(typ string) http.Handler
- func GetInPollNetMap() bool
- func GotStreamedMapResponse()
- func NetworkCategoryHealth() error
- func NoteDERPRegionReceivedFrame(region int)
- func NoteMapRequestHeard(mr *tailcfg.MapRequest)
- func OverallError() error
- func RegisterDebugHandler(typ string, h http.Handler)
- func RegisterWatcher(cb func(key Subsystem, err error)) (unregister func())
- func RouterHealth() error
- func SetAnyInterfaceUp(up bool)
- func SetAuthRoutineInError(err error)
- func SetControlHealth(problems []string)
- func SetDERPRegionConnectedState(region int, connected bool)
- func SetDERPRegionHealth(region int, problem string)
- func SetDNSHealth(err error)
- func SetDNSManagerHealth(err error)
- func SetDNSOSHealth(err error)
- func SetIPNState(state string, wantRunning bool)
- func SetInPollNetMap(v bool)
- func SetMagicSockDERPHome(region int)
- func SetNetworkCategoryHealth(err error)
- func SetRouterHealth(err error)
- func SetUDP4Unbound(unbound bool)
- type ReceiveFuncStats
- type Subsystem
Constants ¶
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") // SysNetworkCategory is the name of the subsystem that sets // the Windows network adapter's "category" (public, private, domain). // If it's unhealthy, the Windows firewall rules won't match. SysNetworkCategory = Subsystem("network-category") )
Variables ¶
var ( ReceiveIPv4 = ReceiveFuncStats{/* contains filtered or unexported fields */} ReceiveIPv6 = ReceiveFuncStats{/* contains filtered or unexported fields */} ReceiveDERP = ReceiveFuncStats{/* contains filtered or unexported fields */} )
Functions ¶
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 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.
func NetworkCategoryHealth ¶ added in v1.6.0
func NetworkCategoryHealth() error
func NoteDERPRegionReceivedFrame ¶ added in v1.6.0
func NoteDERPRegionReceivedFrame(region int)
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 RegisterWatcher ¶
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 SetDERPRegionHealth ¶ added in v1.16.0
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
state is an ipn.State.String() value: "Running", "Stopped", "NeedsLogin", etc.
func SetInPollNetMap ¶ added in v1.6.0
func SetInPollNetMap(v bool)
SetInPollNetMap records whether the client has an open HTTP long poll open to the control plane.
func SetMagicSockDERPHome ¶ added in v1.6.0
func SetMagicSockDERPHome(region int)
SetMagicSockDERPHome notes what magicsock's view of its home DERP is.
func SetNetworkCategoryHealth ¶ added in v1.6.0
func SetNetworkCategoryHealth(err error)
SetNetworkCategoryHealth sets the state of setting the network adaptor's category. This only applies on Windows.
func SetRouterHealth ¶
func SetRouterHealth(err error)
SetRouterHealth sets the state of the wgengine/router.Router.
func SetUDP4Unbound ¶ added in v1.8.0
func SetUDP4Unbound(unbound bool)
SetUDP4Unbound sets whether the udp4 bind failed completely.
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()