Variables are custom fields defined by the rule author on the Condition tab. Each variable consists of a unique name and an expression.
The user-defined variables can be referenced in the rule condition.
Variables cannot be included in a filter expression because filters are evaluated prior to the command being added to a window.
pival = 3.14
kb = 1024
curtime = 1515758392702
Define large integers as Long (64-bit integer) or floating numbers to avoid 32-bit integer overflow. The range of values that a 32-bit integer can hold is limited to
Use single or double quotes when declaring a string variable.
state = 'CA'
Inner quotes can be escaped with backslash.
sqlQuery = 'SELECT value AS used_mb FROM "fs.rw" WHERE entity = \'' + entity + '\''
sqlQuery = "SELECT value AS used_mb FROM \"fs.rw\" WHERE entity = '" + entity + "'"
errorCodes = [401, 403, 404]
A collection can include elements of different types.
Both single and double quotes can be used to specify elements of string type.
stateList = ['CA', 'WA']
stateList = ["CA", "WA"]
To check the size of the collection, use the
To access the n-th element in the collection, use square brackets
[index] or the
get(index) method (starting with
0 for the first element).
// define variable 'authors' authors = split(tags.authors, ',') // define variable 'author' author = authors.size() == 0 ? 'n/a' : authors
stateMap = ['CA': 0.8, 'WA': 0.2]
countryMap = ['USA': 'North America', 'Brazil': 'South America']
Use single quotes to enclose keys and values.
last_msg = db_message_last('1 week', 'alert', 'rule-engine')
since_start = formatIntervalShort(elapsedTime(property('dkr.state::started')))
server = upper(keepBefore(entity, ':'))
annotation = tags.note == null ? 'N/A' : tags.note
Variables can be included in the condition expression.
The variables can refer to other variables declared in the same rule.
The order of variables is important. The dependent variables must be declared after the referenced variables.
// Incorrect order b = a * 2 a = 10
b refers to variable
a and therefore must be declared after
// Correct order a = 10 b = a * 2
Depending on the sequence of boolean checks in the condition, referenced variables can be evaluated for each incoming or exiting command.
If the window status is
REPEAT, all variables are evaluated regardless of condition.
If a variable invokes an external function such as
scriptOut, such function must execute quickly, within a few seconds.
Avoid calling long-running functions in variables.
The current value of a variable can be accessed on the Window Details page.