Агрегированные вычисления - это тип вычисляемых элементов данных, который позволяет собирать информацию с нескольких элементов данных Zabbix сервером, и затем вычислять совокупность, в зависимости от использованной функции агрегирования.
Для элементов данных агрегированного вычисления поддерживаются только целочисленные значения и значения с плавающей точкой (тип информации).
Агрегированные вычисления не требуют наличия какого-либо агента, запущенного на наблюдаемом узле сети.
Для получения агрегирования вы можете:
функция_агрегации(функция(/узел_сети/ключ,параметр),функция(/узел_сети2/ключ2,параметр),...)
Обратите внимание, что здесь функция
должна быть функцией истории / динамики изменений.
функция_агрегации(функция_foreach(/узел_сети/ключ?[group="узел сети"],период_времени))
Функция агрегации - одна из поддерживаемых функций агрегации: avg, max, min, sum и т.д.
Функция foreach (такая как avg_foreach, count_foreach и т.п.) возвращает одно совокупное значение по каждому выбранному элементу данных. Элементы данных выбираются с использованием фильтра элементов данных (/узел_сети/ключ?[group="группа узлов сети"]
), из истории элементов данных.
Если некоторые элементы данных не имеют данных за требуемый период, они игнорируются в вычислении. Если никакие элементы данных не имеют данных, то функция вернет ошибку.
Для получения более подробных сведений смотрите функции foreach.
Если в результате агрегации получится значение числа с плавающей точкой, оно будет обрезаться до целого числа, если типом информации вычисляемого элемента данных выбрано Числовой (целое положительное).
Агрегированное вычисление может перейти в неподдерживаемое состояние в нескольких случаях:
Примеры ключей для агрегированных вычислений.
Общий размер дискового пространства в группе узлов сети 'MySQL Servers'.
Сумма последних значений на узле сети всех элементов данных, совпадающих с net.if.in[*].
Средняя загрузка процессора в группе узлов сети 'MySQL Servers'.
Усреднение за 5 минут количества запросов в секунду по группе узлов сети 'MySQL Servers'.
Средняя загрузка CPU по всем узлам сети в нескольких группах узлов сети, у которых имеются заданные теги.
avg(last_foreach(/*/system.cpu.load?[(group="Servers A" or group="Servers B" or group="Servers C") and (tag="Service:" or tag="Importance:High")]))
Вычисление с использованием суммы последних значений элементов данных по всей группе узлов сети.
sum(last_foreach(/*/net.if.out[eth0,bytes]?[group="video"])) / sum(last_foreach(/*/nginx_stat.sh[active]?[group="video"]))
Общее количество неподдерживаемых элементов данных в группе узлов сети 'Zabbix servers'.
Выражения (включая вызовы функций) нельзя использовать в качестве параметров к функциям истории, динамики изменений или foreach. Однако, сами эти функции могут быть использованы в параметрах других (не относящихся к истории) функций.
Выражение | Пример |
---|---|
Допустимое | avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100) max(avg(avg_foreach(/*/system.cpu.load?[group="Servers A"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers B"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers C"],5m))) |
Недопустимое | sum(/host/key,10+2) sum(/host/key, avg(10,2)) sum(/host/key,last(/host/key2)) |
Обратите внимание, что в таком выражении, как:
нельзя гарантировать, что обе части всегда будут иметь одинаковый набор значений. Пока вычисляется одна часть выражения, может прийти новое значение за запрашиваемый период, и тогда вторая часть выражения будет иметь отличающийся набор значений.