package watchdog import ( "context" "time" ) type Status uint8 const ( StatusUnknown Status = iota StatusOK StatusDown ) func (s Status) String() string { switch s { case StatusOK: return "OK" case StatusDown: return "DOWN" default: return "UNKNOWN" } } // CheckFunc is a function that does the actual work. // This package provides a number of check functions but // any function matching the signature may be provided. // It must obey context dealine and cancellation. type CheckFunc func(context.Context) (Status, error) // Check represents a check that must be run by Watchdog. type Check struct { Name string // indentifier of this check Interval time.Duration // how often the check must run (if running periodically with Start method) Check CheckFunc // function to run } type CheckResult struct { Name string // identifier of check Status Status // status as retuned by CheckFunc Error error // error returned by CheckFunc }