Documentation
¶
Index ¶
- Constants
- Variables
- func BaseExit(rc int)
- func BoundaryToString(value float64) (s string)
- func CatchPanic()
- func ExitError(err error)
- func ExitRaw(rc int, output ...string)
- func Exitf(rc int, output string, args ...interface{})
- func FormatFloat(value float64) string
- func HandleTimeout(timeout int)
- func StatusText(status int) string
- type Config
- type Threshold
Examples ¶
Constants ¶
const ( // OK means everything is fine OK = 0 // Warning means there is a problem the admin should review Warning = 1 // Critical means there is a problem that requires immediate action Critical = 2 // Unknown means the status can not be determined, probably due to an error or something missing Unknown = 3 )
Variables ¶
var ( PosInf = math.Inf(1) NegInf = math.Inf(-1) )
var AllowExit = true
AllowExit lets you disable the call to os.Exit() in ExitXxx() functions of this package.
This should be used carefully and most likely only for testing.
var PrintStack = true
PrintStack prints the error stack when recovering from a panic with CatchPanic()
Functions ¶
func BoundaryToString ¶
BoundaryToString returns the string representation of a Threshold boundary.
func CatchPanic ¶
func CatchPanic()
CatchPanic is a general function for defer, to capture any panic that occurred during runtime of a check
The function will recover from the condition and exit with a proper UNKNOWN status, while showing error and the call stack.
Example ¶
defer CatchPanic() panic("something bad happened")
Output: [UNKNOWN] - Golang encountered a panic: something bad happened would exit with code 3
func ExitError ¶
func ExitError(err error)
ExitError exists with an Unknown state while reporting the error
Example ¶
err := fmt.Errorf("connection to %s has been timed out", "localhost:12345") ExitError(err)
Output: [UNKNOWN] - connection to localhost:12345 has been timed out (*errors.errorString) would exit with code 3
func ExitRaw ¶ added in v0.2.0
ExitRaw prints the plugin output with the state prefixed and exits the program.
Example:
OK - everything is fine
Example ¶
ExitRaw(OK, "Everything is fine")
Output: [OK] - Everything is fine would exit with code 0
func Exitf ¶ added in v0.2.0
Exitf prints the plugin output using formatting and exits the program.
Output is the formatting string, and the rest of the arguments help adding values.
Also see fmt package: https://golang.org/pkg/fmt
Example ¶
Exitf(OK, "Everything is fine - value=%d", 42)
Output: [OK] - Everything is fine - value=42 would exit with code 0
func FormatFloat ¶ added in v0.3.0
FormatFloat returns a string representation of floats, avoiding scientific notation and removes trailing zeros.
func HandleTimeout ¶
func HandleTimeout(timeout int)
Helper for a goroutine, to wait for signals and timeout, and exit with a proper code
func StatusText ¶
StatusText returns the string corresponding to a state
Example ¶
fmt.Println(StatusText(OK), StatusText(Warning), StatusText(Critical), StatusText(Unknown))
Output: OK WARNING CRITICAL UNKNOWN
Types ¶
type Config ¶
type Config struct { Name string Readme string Version string Timeout int Verbose bool Debug bool PrintVersion bool DefaultFlags bool DefaultHelper bool FlagSet *flag.FlagSet }
Example ¶
config := NewConfig() config.Name = "check_test" config.Readme = `Test Plugin` config.Version = "1.0.0" _ = config.FlagSet.StringP("hostname", "H", "localhost", "Hostname to check") config.ParseArguments() // Some checking should be done here Exitf(OK, "Everything is fine - answer=%d", 42)
Output: [OK] - Everything is fine - answer=42 would exit with code 0
func (*Config) EnableTimeoutHandler ¶
func (c *Config) EnableTimeoutHandler()
Start the timeout and signal handler in a goroutine
func (*Config) ParseArguments ¶
func (c *Config) ParseArguments()
func (*Config) ParseArray ¶
type Threshold ¶
Defining a threshold for any numeric value
Format: [@]start:end
Threshold Generate an alert if x... 10 < 0 or > 10, (outside the range of {0 .. 10}) 10: < 10, (outside {10 .. ∞}) ~:10 > 10, (outside the range of {-∞ .. 10}) 10:20 < 10 or > 20, (outside the range of {10 .. 20}) @10:20 ≥ 10 and ≤ 20, (inside the range of {10 .. 20})
Reference: https://www.monitoring-plugins.org/doc/guidelines.html#THRESHOLDFORMAT
func (Threshold) DoesViolate ¶
Compares a value against the threshold, and returns true if the value violates the threshold.
Directories
¶
Path | Synopsis |
---|---|
examples
|
|
check_example
command
|
|
check_example2
command
|
|
result tries to
|
result tries to |