Expressions
Expressions are used for the filter
, warning
, critical
and ok
arguments.
Syntax
The basic syntax is <attribute> <operator> <value>
. For a list and explanation
of allowed operators see the operator list.
The list of possible attributes is documented along with each check plugin.
ex.:
filter="status = 'started'"
critical="count >= 1"
Logical Operator
To combine multiple expressions you can use logical operator and brackets.
Operator | Alias | Description |
---|---|---|
and |
&& |
Logical and operator |
or |
|| |
Logical or operator |
ex.:
filter="(status = 'started' or status = 'pending') and usage > 5%"
Operator
Operator | Alias / Safe expression | Types | Description |
---|---|---|---|
= |
== , is , eq |
Strings, Numbers | Matches on exact equality, ex.: status = 'started' |
!= |
is not , ne |
Strings, Numbers | Matches if value is not exactly equal. ex.: 5 != 3 |
like |
Strings | Matches if value contains the condition (substring match), ex.: status like "pend" |
|
unlike |
not like |
Strings | Matches if value does not contain the substring, ex.: status unlike "stopped" |
ilike |
Strings | Matches a case insensitive substring, ex.: name ilike "WMI" |
|
not ilike |
Strings | Matches if a case insensitive substring cannot be found, ex.: name not ilike "WMI" |
|
~ |
regex , regexp |
Strings | Performs a regular expression match, ex.: status ~ '^pend' |
!~ |
not regex , not regexp |
Strings | Performs a inverse regular expression match, ex.: status !~ 'stop' |
~~ |
regexi , regexpi |
Strings | Performs a case insensitive regular expression match, ex.: status ~~ '^pend' . An alternative way is to use //i as in status ~ /^pend/i |
!~~ |
not regexi , not regexpi |
Strings | Performs a inverse case insensitive regular expression match, ex.: status !~~ 'stop' |
< |
lt |
Numbers | Matches lower than numbers, ex.: usage < 5% |
<= |
le , lte |
Numbers | Matches lower or equal numbers, ex.: usage <= 5% |
> |
gt |
Numbers | Matches greater than numbers, ex.: usage > 5% |
>= |
ge , gte |
Numbers | Matches greater or equal numbers, ex.: usage >= 5% |
in |
Strings | Matches if element is in list ex.: status in ('start', 'pending') |
|
not in |
Strings | Matches if element is not in list ex.: status not in ('stopped', 'starting') |