1 Агрегатные функции
Если не указано иное, все перечисленные здесь функции поддерживаются в:
Агрегатные функции могут работать либо с:
- историей элементов данных, например,
min(/host/key,1h) - функциями foreach в качестве
единственного параметра, например,
min(last_foreach(/*/key))(только в вычисляемых элементах данных; не может использоваться в триггерах)
Функции перечислены без дополнительной информации. Нажмите на функцию, чтобы увидеть полные сведения.
| Function | Description |
|---|---|
| avg | Среднее значение элемента данных в пределах заданного периода вычисления. |
| bucket_percentile | Вычисляет процентиль по корзинам гистограммы. |
| count | Количество значений в массиве, возвращаемом функцией foreach. |
| histogram_quantile | Вычисляет φ-квантиль по корзинам гистограммы. |
| item_count | Количество существующих элементов данных в конфигурации, соответствующих критериям фильтра. |
| kurtosis | «Хвостатость» распределения вероятностей в собранных значениях в пределах заданного периода вычисления. |
| mad | Медианное абсолютное отклонение в собранных значениях в пределах заданного периода вычисления. |
| max | Наибольшее значение элемента данных в пределах заданного периода вычисления. |
| min | Наименьшее значение элемента данных в пределах заданного периода вычисления. |
| skewness | Асимметрия распределения вероятностей в собранных значениях в пределах заданного периода вычисления. |
| stddevpop | Среднеквадратичное отклонение генеральной совокупности в собранных значениях в пределах заданного периода вычисления. |
| stddevsamp | Выборочное среднеквадратичное отклонение в собранных значениях в пределах заданного периода вычисления. |
| sum | Сумма собранных значений в пределах заданного периода вычисления. |
| sumofsquares | Сумма квадратов собранных значений в пределах заданного периода вычисления. |
| varpop | Дисперсия генеральной совокупности собранных значений в пределах заданного периода вычисления. |
| varsamp | Выборочная дисперсия собранных значений в пределах заданного периода вычисления. |
Общие параметры
/host/key— это общий обязательный первый параметр для функций, ссылающихся на историю элемента данных узла сети(sec|#num)<:time shift>— это общий второй параметр для функций, ссылающихся на историю элемента данных узла сети, где:- sec — максимальный период вычисления в секундах (можно использовать суффиксы времени), или
- #num — максимальный диапазон вычисления в последних собранных значениях (если перед ним стоит знак решётки)
- time shift (необязательно) позволяет сдвинуть точку вычисления назад во времени. Подробнее о задании time shift см. здесь.
Подробности о функциях
Некоторые общие замечания о параметрах функций:
- Параметры функций разделяются запятой
- Необязательные параметры функций (или части параметров) обозначаются с помощью
<> - Специфические для функции параметры описаны для каждой функции отдельно
- Параметры
/host/keyи(sec|#num)<:time shift>никогда не должны заключаться в кавычки
avg(/host/key,(sec|#num)<:time shift>)
Среднее значение элемента данных в пределах заданного периода вычисления.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Параметры: см. общие параметры.
Сдвиг времени полезен, когда необходимо сравнить текущее среднее значение со средним значением за некоторое время в прошлом.
Примеры:
avg(/host/key,1h) #среднее значение за последний час до текущего момента
avg(/host/key,1h:now-1d) #среднее значение за один час в интервале от 25 часов назад до 24 часов назад от текущего момента
avg(/host/key,#5) #среднее значение пяти последних значений
avg(/host/key,#5:now-1d) #среднее значение пяти последних значений, исключая значения, полученные за последние 24 часа
bucket_percentile(item filter,time period,percentage)
Вычисляет процентиль по бакетам гистограммы.
Параметры:
- item filter — см. синтаксис фильтра элемента данных;
- time period — см. период времени;
- percentage — процент (0-100).
Комментарии:
- Поддерживается только в вычисляемых элементах данных;
- Эта функция является псевдонимом для
histogram_quantile(percentage/100, bucket_rate_foreach(item filter, time period, 1)).
count(func_foreach(item filter,<time period>),<operator>,<pattern>)
Количество значений в массиве, возвращаемом функцией foreach.
Поддерживаемые функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Параметры:
- func_foreach - функция foreach, для которой необходимо подсчитать количество возвращаемых значений. Подробности см. в разделе функции foreach. Обратите внимание, что count_foreach и bucket_rate_foreach поддерживают дополнительные параметры.
- item filter - см. фильтр элементов данных;
- time period - см. период времени;
- operator (должен быть заключён в двойные кавычки). Поддерживаемые
операторы:
eq - равно
ne - не равно
gt - больше
ge - больше или равно
lt - меньше
le - меньше или равно
like - соответствует, если содержит шаблон (с учётом регистра)
bitand - побитовое И
regexp - чувствительное к регистру соответствие регулярному выражению, заданному вpattern
iregexp - нечувствительное к регистру соответствие регулярному выражению, заданному вpattern - pattern - требуемый шаблон (строковые аргументы должны быть заключены в двойные кавычки); поддерживается, если operator указан в третьем параметре.
Комментарии:
- Использование count() с функцией foreach, связанной с историей данных (max_foreach, avg_foreach и т. д.), может повлиять на производительность, тогда как использование exists_foreach(), работающей только с данными конфигурации, такого эффекта не оказывает.
- Необязательные параметры operator или pattern нельзя оставлять пустыми после запятой, их можно только полностью опустить.
- Если в качестве третьего параметра используется bitand, четвёртый параметр
patternможет быть задан как два числа, разделённые символом '/': number_to_compare_with/mask. count() вычисляет "побитовое И" значения и mask и сравнивает результат с number_to_compare_with. Если результат "побитового И" равен number_to_compare_with, значение учитывается.
Если number_to_compare_with и mask равны, можно указать только mask (без '/'). - Если в качестве третьего параметра используется regexp или iregexp, четвёртый параметр
patternможет быть обычным или глобальным (начинающимся с '@') регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения. Для целей сопоставления по regexp значения с плавающей точкой всегда будут представлены с 4 десятичными знаками после '.'. Также обратите внимание, что для больших чисел различие между десятичным представлением (хранимым в базе данных) и двоичным представлением (используемым сервером Zabbix) может повлиять на 4-й десятичный знак.
Примеры:
count(max_foreach(/*/net.if.in[*],1h)) #количество элементов данных net.if.in, которые получали данные за последний час до текущего момента
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #количество файловых систем, в которых используется более 95% дискового пространства
histogram_quantile(quantile,bucket1,value1,bucket2,value2,...)
Вычисляет φ-квантиль по корзинам гистограммы.
Поддерживаемая функция foreach: bucket_rate_foreach.
Параметры:
- quantile - 0 ≤ φ ≤ 1;
- bucketN, valueN - вручную введённые пары (>=2) параметров или ответ bucket_rate_foreach.
Комментарии:
- Поддерживается только в вычисляемых элементах данных;
- Функционально соответствует 'histogram_quantile' в PromQL;
- Возвращает -1, если значения последней корзины 'Infinity' ("+inf") равны 0.
Примеры:
histogram_quantile(0.75,1.0,last(/host/rate_bucket[1.0]),"+Inf",last(/host/rate_bucket[Inf]))
histogram_quantile(0.5,bucket_rate_foreach(//item_key,30s))
item_count(item filter)
Количество существующих элементов данных в конфигурации, соответствующих критериям фильтра.
Поддерживаемый тип значения: Integer.
Параметр:
- item filter — критерий выбора элементов данных; допускает ссылки по группе узлов сети, узлу сети, ключу элемента данных и тегам. Поддерживаются подстановочные знаки. Подробнее см. в разделе item filter.
Комментарии:
- Поддерживается только в вычисляемых элементах данных;
- Работает как псевдоним для функции count(exists_foreach(item_filter)).
Примеры:
item_count(/*/agent.ping?[group="Host group 1"]) #количество узлов сети с элементом данных *agent.ping* в "Host group 1"
kurtosis(/host/key,(sec|#num)<:time shift>)
«Хвостатость» распределения вероятностей собранных значений в пределах заданного периода вычисления. См. также: Kurtosis.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемая функция foreach: last_foreach.
Параметры: см. общие параметры.
Пример:
kurtosis(/host/key,1h) #kurtosis за последний час до текущего момента
mad(/host/key,(sec|#num)<:time shift>)
Медианное абсолютное отклонение собранных значений в пределах заданного периода вычисления. См. также: Медианное абсолютное отклонение.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемая функция foreach: last_foreach.
Параметры: см. общие параметры.
Пример:
mad(/host/key,1h) #медианное абсолютное отклонение за последний час до текущего момента
max(/host/key,(sec|#num)<:time shift>)
Наибольшее значение элемента данных в пределах заданного периода вычисления.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Параметры: см. общие параметры.
Пример:
max(/host/key,1h) - min(/host/key,1h) #вычислить разницу между максимальным и минимальным значениями за последний час до текущего момента (дельта значений)
min(/host/key,(sec|#num)<:time shift>)
Наименьшее значение элемента данных в пределах заданного периода вычисления.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Параметры: см. общие параметры.
Пример:
max(/host/key,1h) - min(/host/key,1h) #вычислить разницу между максимальным и минимальным значениями за последний час до текущего момента (дельта значений)
skewness(/host/key,(sec|#num)<:time shift>)
Асимметрия распределения вероятностей собранных значений в пределах заданного периода вычисления. См. также: Skewness.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемая функция foreach: last_foreach.
Параметры: см. общие параметры.
Пример:
skewness(/host/key,1h) #асимметрия за последний час до текущего момента
stddevpop(/host/key,(sec|#num)<:time shift>)
Стандартное отклонение генеральной совокупности по собранным значениям в пределах заданного периода вычисления. См. также: Стандартное отклонение.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемая функция foreach: last_foreach.
Параметры: см. общие параметры.
Пример:
stddevpop(/host/key,1h) #стандартное отклонение генеральной совокупности за последний час до текущего момента
stddevsamp(/host/key,(sec|#num)<:time shift>)
Выборочное стандартное отклонение собранных значений в пределах заданного периода вычисления. См. также: Стандартное отклонение.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемая функция foreach: last_foreach.
Параметры: см. общие параметры.
Для работы этой функции требуется как минимум два значения данных.
Пример:
stddevsamp(/host/key,1h) #выборочное стандартное отклонение за последний час до текущего момента
sum(/host/key,(sec|#num)<:time shift>)
Сумма собранных значений в пределах заданного периода вычисления.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Параметры: см. общие параметры.
Пример:
sum(/host/key,1h) #сумма значений за последний час до текущего момента
sumofsquares(/host/key,(sec|#num)<:time shift>)
Сумма квадратов собранных значений в пределах заданного периода вычисления.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемая функция foreach: last_foreach.
Параметры: см. общие параметры.
Пример:
sumofsquares(/host/key,1h) #сумма квадратов за последний час до текущего момента
varpop(/host/key,(sec|#num)<:time shift>)
Дисперсия генеральной совокупности собранных значений в пределах заданного периода вычисления. См. также: Variance.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемая функция foreach: last_foreach.
Параметры: см. общие параметры.
Пример:
varpop(/host/key,1h) #дисперсия генеральной совокупности за последний час до текущего момента
varsamp(/host/key,(sec|#num)<:time shift>)
Выборочная дисперсия собранных значений в пределах заданного периода вычисления. См. также: Variance.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемая функция foreach: last_foreach.
Параметры: см. общие параметры.
Для работы этой функции требуется как минимум два значения данных.
Пример:
varsamp(/host/key,1h) #выборочная дисперсия за последний час до текущего момента