Aggregate calculations

Overview

In aggregate calculations information from several items may be collected by Zabbix server (by doing direct database queries) to calculate an aggregate, depending on the aggregate function used.

Aggregate calculations do not require any agent running on the host being monitored.

To define aggregate calculations, select the Calculated item type.

Syntax

Aggregates can be retrieved by working with either:

  • history of items:
aggregate_function(function(/host/item,parameter),function(/host2/item2,parameter),...)
Copy
✔ Copied
aggregate_function(foreach_function(/*/key?[group="host group"],timeperiod))
Copy
✔ Copied

where:

  * ''aggregate_function'' is one of the supported [[:manual:appendix:functions:aggregate|aggregate functions]]: avg, max, min, sum, etc.
         * ''foreach_function'' is one of the supported foreach functions: avg_foreach, count_foreach, etc. 
Copy
✔ Copied

Foreach functions work with the history of multiple items and return an array of values - one for each item.

If the aggregate results in a float value it will be trimmed to an integer if the aggregated item type of information is Numeric (unsigned).

An aggregate calculation may become unsupported if:

  • none of the referenced items is found (which may happen if the item key is incorrect, none of the items exists or all included groups are incorrect)
  • no data to calculate a function

Usage examples

Examples of keys for aggregate calculations.

Example 1

Total disk space of host group 'MySQL Servers'.

sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"]))
Copy
✔ Copied
Example 2

Sum of latest values of all items matching net.if.in[*] on the host.

sum(last_foreach(/host/net.if.in[*]))
Copy
✔ Copied
Example 3

Average processor load of host group 'MySQL Servers'.

avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"]))
Copy
✔ Copied
Example 4

5-minute average of the number of queries per second for host group 'MySQL Servers'.

avg(avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m))
Copy
✔ Copied
Example 5

Average CPU load on all hosts in multiple host groups that have the specific tags.

avg(last_foreach(/*/system.cpu.load?[(group="Servers A" or group="Servers B" or group="Servers C") and (tag="Service:" or tag="Importance:High")]))
Copy
✔ Copied
Example 6

Calculation used on the latest item value sums of a whole host group.

sum(last_foreach(/*/net.if.out[eth0,bytes]?[group="video"])) / sum(last_foreach(/*/nginx_stat.sh[active]?[group="video"])) 
Copy
✔ Copied
Example 7

The total number of unsupported items in host group 'Zabbix servers'.

sum(last_foreach(/*/zabbix[host,,items_unsupported]?[group="Zabbix servers"]))
Copy
✔ Copied
To toggle search highlight, press Ctrl+Alt+H
Have an improvement suggestion for this page? Select the text that could be improved and press Ctrl+Enter to send it to the editors.