5 Expression macros
Overview
Expression macros are useful for formula calculations. They are calculated by expanding all macros inside and evaluating the resulting expression.
Expression macros have a special syntax:
{?EXPRESSION}
The syntax in EXPRESSION is the same as in trigger expressions (see usage limitations below).
{HOST.HOST<1-9>} and {ITEM.KEY<1-9>} macros are supported inside expression macros. {ITEM.KEY<1-9>} macros are supported in expression macros since Zabbix 6.0.9.
Usage
In the following locations:
- graph names
- map element labels
- map shape labels
- map link labels
only a single function, from the following set: avg, last, max, min,
is allowed as an expression macro, e.g.:
{?avg(/{HOST.HOST}/{ITEM.KEY},1h)}
Expressions such as {?last(/host/item1)/last(/host/item2)}, {?count(/host/item1,5m)}
and {?last(/host/item1)*10} are incorrect in these locations.
However, in:
- trigger event names
- trigger-based notifications and commands
- problem update notifications and commands
complex expressions are allowed, e.g.:
{?trendavg(/host/item1,1M:now/M)/trendavg(/host/item1,1M:now/M-1y)*100}
When using expression macros in templates please do not specify the template name but rather use {HOST.HOST<N>}, because template names are not substituted with hosts during linkage.
You can also omit host reference altogether for the first host, e.g. {?avg(//item1,1h)}
See also:
- Supported macros for a list of supported locations of the expression macro
- Example of using an expression macro in the event name