With calculated items you can create calculations on the basis of other items.
Thus, calculated items are a way of creating virtual data sources. The values will be periodically calculated based on an arithmetical expression.
The resulting data will be stored in the Zabbix database as for any other item - this means storing both history and trend values for fast graph generation. Calculated items may be used in trigger expressions, referenced by macros or other entities same as any other item type.
To use calculated items, choose the item type Calculated.
The key is a unique item identifier (per host). You can create any key name using supported symbols.
Calculation definition should be entered in the Formula field (named 'Expression' in 1.8.1 and 1.8.2). There is virtually no connection between the formula and the key. The key parameters are not used in formula in any way.
The correct syntax of a simple formula is:
|func||One of the functions supported in trigger expressions: last, min, max, avg, count, etc|
|key||The key of another item whose data you want to use. It may be defined as key or hostname:key.
Note: Putting the whole key in double quotes (“…”) is strongly recommended to avoid incorrect parsing because of spaces or commas within the key.
If there are also quoted parameters within the key, those double quotes must be escaped by using the backslash (\). See Example 5 below.
|parameter(s)||Function parameter(s), if required.|
A more complex formula may use a combination of functions, operators and brackets. You can use all functions and operators supported in trigger expressions. Note that the syntax is slightly different, however logic and operator precedence are exactly the same.
Unlike trigger expressions, Zabbix processes calculated items according to the item update interval, not upon receiving a new value.
A calculated item may become unsupported in several cases:
Calculating percentage of free disk space on '/'.
Use of function last:
Zabbix will take the latest values for free and total disk spaces and calculate percentage according to the given formula.
Calculating a 10-minute average of the number of values processed by Zabbix.
Use of function avg:
Note that extensive use of calculated items with long time periods may affect performance of Zabbix server.
Calculating total bandwidth on eth0.
Sum of two functions:
Calculating percentage of incoming traffic.
More complex expression:
Using aggregated items correctly within a calculated item.
Take note of how double quotes are escaped within the quoted key:
last("grpsum[\"video\",\"net.if.out[eth0,bytes]\",\"last\",\"0\"]") / last("grpsum[\"video\",\"nginx_stat.sh[active]\",\"last\",\"0\"]")