Operators

Boolean Operators

Name Description
OR Boolean OR, also \|\|.
AND Boolean AND, also &&.
NOT Boolean NOT, also !.

Examples:

value > 90 && avg() > 50
tags.file_system LIKE '/opt/*' OR tags.file_system LIKE '/mnt/*'
tags.file_system NOT LIKE '/dev/*'
NOT tags.isEmpty()

Ternary Operator

Name Description
? Ternary conditional

The ternary ? operator simplifies if/else syntax. The operator chooses one of the two options based on the boolean expression.

If the expression expr evaluates to true, the operator selects value1 option. Otherwise, value2 is chosen.

boolean expr ? value1 : value2

Examples:

tags.mount_point == '/' ? 90.0 : 75.0

// The above example is equivalent to:
if (tags.mount_point == '/') {
   return 90.0;
} else {
   return 75.0;
}
status >= 500 ? 'Server Error' : ((status >= 400) ? 'Client Error' : ((status >= 300) ? 'Redirect' : 'OK')))

Numeric Operators

Name Description
+ Addition
- Subtraction
* Multiplication
/ Division
% Modulus
=
==
Equality
!= Inequality
> Greater than
>= Greater than or equal to
< Less than
<= Less than or equal to
BETWEEN n BETWEEN m AND p
The number n is between m and p (inclusive).
m <= n <= p.
Example: avg() BETWEEN 10 and 20.
IN Returns true if the number is contained in the numeric collection.

Examples:

value*100 > 90
max() BETWEEN 80 and 100
value IN (0, 1, 12)

Text Operators

Name Description
=
==
Equality. The comparison is case-insensitive ('a' = 'A' returns true).
!= Not equal. The comparison is case-insensitive ('a' != 'A' returns false).
BETWEEN Returns true if the left operand string is ordered between lower and upper strings on the right.
a BETWEEN b AND c.
String a is ordered between b and c (inclusive) using lexicographical comparison.
The comparison is case-sensitive.
Example: timeStr BETWEEN '18:00' AND '18:04'.
LIKE Returns true if the left operand string matches the pattern on the right. The pattern can include regular characters and wildcards ? and *.
The operator also accepts a collection of patterns in round brackets.
IN Returns true if the left operand string is contained in the string collection specified in parenthesis on the right.

Examples:

entity = 'nurswgvml007'
entity IN ('nurswgvml007', 'nurswgvml010')
entity LIKE '*007'
tags.location LIKE ('NUR*', entity.tags.location)