1. Функции агрегации
Если не оговорено иначе, то все перечисленные здесь функции поддерживаются в:
Функции агрегации могут работать с:
- историей элементов данных, например:
min(/узел_сети/ключ,1h) - функциями foreach в качестве
единственного параметра, например:
min(last_foreach(/*/ключ))(только в вычисляемых элементах данных; нельзя использовать в триггерах)
Функции перечислены без подробных сведений. Нажмите на функцию, чтобы увидеть полную информацию.
| Функция | Описание |
|---|---|
| avg | Среднее значение элемента данных за указанный период вычислений. |
| bucket_percentile | Вычисление процентиля из разрядов гистограммы. |
| count | Количество значений в массиве, возвращаемом функцией foreach. |
| histogram_quantile | Вычисление φ-го квантиля из разрядов гистограммы. |
| item_count | Подсчёт существующих в конфигурации элементов данных, соответствующих критериям фильтра. |
| kurtosis | Эксцесс («островершинность») распределения вероятностей собранных значений в течение определённого периода оценки. |
| mad | Среднее абсолютное отклонение собранных значений в течение определённого периода оценки. |
| max | Наибольшее значение элемента данных в течение определённого периода оценки. |
| min | Наименьшее значение элемента данных в течение определённого периода оценки. |
| skewness | Асимметрия распределения вероятностей собранных значений в течение определённого периода оценки. |
| stddevpop | Среднеквадратическое отклонение для генеральной совокупности собранных значений в течение определённого периода оценки. |
| stddevsamp | Среднеквадратическое отклонение для выборки собранных значений в течение определённого периода оценки. |
| sum | Сумма собранных значений в течение определённого периода оценки. |
| sumofsquares | Сумма квадратов собранных значений в течение определённого периода оценки. |
| varpop | Генеральная (совокупная) дисперсия собранных значений в течение определённого периода оценки. |
| varsamp | Выборочная дисперсия собранных значений в течение определённого периода оценки. |
Общие параметры
/узел_сети/ключявляется общим обязательным первым параметром для функций, ссылающихся на историю элемента данных узла сети(сек|#число)<:сдвиг_времени>является общим вторым параметром для функций, ссылающихся на историю элемента данных узла сети, где:- сек — максимальный период вычисления в секундах (могут использоваться суффиксы времени), либо
- #число — максимальная область вычисления среди последних собранных значений (если начинается со знака решётки)
- сдвиг_времени (опционально) позволяет сдвигать точку вычислений по времени назад в прошлое. Смотрите более подробную информацию относительно того, как указывать сдвиг времени.
Подробности функций
Некоторые общие замечания о параметрах функций:
- Параметры функций разделяются запятой
- Необязательные параметры функций (или части параметров) обозначаются угловыми скобками
<> - Параметры, специфичные для функций, описаны с каждой функцией
- Параметры
/узел_сети/ключи(сек|#число)<:сдвиг_времени>никогда не должны заключаться в кавычки
avg(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Среднее значение элементов данных за указанный период вычислений.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Параметры: смотрите общие параметры.
Сдвиг времени полезен, когда нужно сравнить текущее среднее значение со средним значением некоторое время назад.
Примеры:
avg(/узел_сети/ключ,1h) #среднее значение за последний час до текущего момента
avg(/узел_сети/ключ,1h:now-1d) #среднее значение за час с 25 часов назад до 24 часов назад от текущего момента
avg(/узел_сети/ключ,#5) #среднее значение из пяти последних значений
avg(/узел_сети/ключ,#5:now-1d) #среднее значение из пяти последних значений, исключая значения, полученные за последние 24 часа
bucket_percentile(фильтр,период_времени,процент)
Вычисление процентиля из разрядов гистограммы.
Параметры:
- фильтр — смотрите фильтр элементов данных;
- период_времени — смотрите период времени;
- процент — процент (0-100).
Комментарии:
- Поддерживается только в вычисляемых элементах данных;
- Эта функция является алиасом для
histogram_quantile(процент/100, bucket_rate_foreach(фильтр, период_времени, 1)).
count(функция_foreach(фильтр,<период_времени>),<оператор>,<шаблон>)
Количество значений в массиве, возвращаемом функцией foreach.
Поддерживаемые функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Параметры:
- функция_foreach — функция foreach, для которой нужно подсчитать количество возвращаемых значений. Смотрите функции foreach для более подробной информации. Обратите внимание, что count_foreach и bucket_rate_foreach поддерживают дополнительные параметры.
- фильтр — смотрите фильтр элементов данных;
- период_времени — смотрите период времени;
- оператор (должен быть в двойных кавычках). Поддерживаются
операторы:
eq — равно
ne — не равно
gt — больше
ge — больше или равно
lt — меньше
le — меньше или равно
like — содержит подстроку шаблона (чувствительно к регистру)
bitand — побитовое И
regexp — чувствительное к регистру соответствие регулярному выражению, данному вшаблоне
iregexp — нечувствительное к регистру соответствие регулярному выражению, данному вшаблоне - шаблон — искомый шаблон (строковые аргументы должны быть в двойных кавычках); поддерживается, если в третьем параметре указан оператор.
Комментарии:
- Использование count() с функциями foreach, относящимися к истории (max_foreach, avg_foreach и т.п.), может сказаться на производительности, в то время как использование функции exists_foreach(), которая работает только с данными конфигурации, не окажет такого влияния.
- Необязательные параметры оператор или шаблон не могут быть оставлены пустыми после запятой, только полностью опущены.
- Если третьим параметром является bitand, то четвёртый параметр
шаблонможет быть указан как два числа, разделённых косой чертой («/»): число_для_сравнения/маска. count() вычисляет «побитовое И» из значения и маски и сравнивает результат с числом_для_сравнения. Если результат «побитового И» равен числу_для_сравнения, то значение считается. Если число_для_сравнения и маска равны, требуется указывать только маску (без «/»). - Если третьим параметром является regexp или iregexpто четвёртый параметр
шаблонможет быть обычным или глобальным (начинающимся с «@») регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения. При проверке соответствия регулярному выражению, значения с плавающей точкой всегда будут представлены с 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(квантиль,разряд1,значение1,разряд2,значение2,...)
Вычисление φ-го квантиля из разрядов гистограммы.
Поддерживаемые функции foreach: bucket_rate_foreach.
Параметры:
- квантиль — 0 ≤ φ ≤ 1;
- разрядN, значениеN — вручную введённые пары (>=2) параметров либо результат вызова bucket_rate_foreach.
Комментарии:
- Поддерживается только в вычисляемых элементах данных;
- По функционалу соответствует 'histogram_quantile [en]' из PromQL;
- Возвращает -1, если значения последнего разряда 'Infinity' ("+inf") равны 0.
Примеры:
histogram_quantile(0.75,1.0,last(/узел_сети/rate_bucket[1.0]),"+Inf",last(/узел_сети/rate_bucket[Inf]))
histogram_quantile(0.5,bucket_rate_foreach(//ключ,30s))
item_count(фильтр)
Подсчёт существующих в конфигурации элементов данных, соответствующих критериям фильтра.
Поддерживаемые типы значений: Integer.
Параметр:
- фильтр — критерий для выбора элементов данных, позволяет ссылаться на группы узлов сети, узлы сети, ключи элементов данных и теги. Поддерживаются подстановочные символы. Смотрите фильтр элементов данных для более подробной информации.
Комментарии:
- Поддерживается только в вычисляемых элементах данных;
- Работает как алиас для функции count(exists_foreach(фильтр)).
Примеры:
item_count(/*/agent.ping?[group="Host group 1"]) #количество узлов сети с элементом данных «agent.ping» в группе узлов сети «Host group 1»
kurtosis(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Эксцесс («островершинность») распределения вероятностей собранных значений в течение определённого периода оценки. Смотрите также: Коэффициент эксцесса, Kurtosis [en].
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: last_foreach.
Параметры: смотрите общие параметры.
Пример:
kurtosis(/узел_сети/ключ,1h) #эксцесс за последний час до текущего момента
mad(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Среднее абсолютное отклонение собранных значений в течение определённого периода оценки. Смотрите также: Среднее абсолютное отклонение.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: last_foreach.
Параметры: смотрите общие параметры.
Пример:
mad(/узел_сети/ключ,1h) #среднее абсолютное отклонение за последний час до текущего момента
max(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Наибольшее значение элемента данных в течение определённого периода оценки.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Параметры: смотрите общие параметры.
Пример:
max(/узел_сети/ключ,1h) - min(/узел_сети/ключ,1h) #вычисление разницы между наибольшим и наименьшим значениями за последний час до текущего момента (дельта значений)
min(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Наименьшее значение элемента данных в течение определённого периода оценки.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Параметры: смотрите общие параметры.
Пример:
max(/узел_сети/ключ,1h) - min(/узел_сети/ключ,1h) #вычисление разницы между наибольшим и наименьшим значениями за последний час до текущего момента (дельта значений)
skewness(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Асимметрия распределения вероятностей собранных значений в течение определённого периода оценки. Смотрите также: Коэффициент асимметрии.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: last_foreach.
Параметры: смотрите общие параметры.
Пример:
skewness(/узел_сети/ключ,1h) #коэффициент асимметрии за последний час до текущего момента
stddevpop(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Среднеквадратическое отклонение для генеральной совокупности собранных значений в течение определённого периода оценки. Смотрите также: Среднеквадратическое отклонение.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: last_foreach.
Параметры: смотрите общие параметры.
Пример:
stddevpop(/узел_сети/ключ,1h) #стандартное отклонение для генеральной совокупности за последний час до текущего момента
stddevsamp(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Среднеквадратическое отклонение для выборки собранных значений в течение определённого периода оценки. Смотрите также: Среднеквадратическое отклонение|Смотрите общие параметры.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: last_foreach.
Параметры: смотрите общие параметры.
Для работы этой функции требуется как минимум два значения данных.
Пример:
stddevsamp(/узел_сети/ключ,1h) #стандартное отклонение для выборки за последний час до текущего момента
sum(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Сумма собранных значений в течение определённого периода оценки.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Параметры: смотрите общие параметры.
Пример:
sum(/узел_сети/ключ,1h) #сумма значений за последний час до текущего момента
sumofsquares(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Сумма квадратов собранных значений в течение определённого периода оценки.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: last_foreach.
Параметры: смотрите общие параметры.
Пример:
sumofsquares(/узел_сети/ключ,1h) #сумма квадратов за последний час до текущего момента
varpop(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Генеральная (совокупная) дисперсия собранных значений в течение определённого периода оценки. Смотрите также: Дисперсия случайной величины.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: last_foreach.
Параметры: смотрите общие параметры.
Пример:
varpop(/узел_сети/ключ,1h) #дисперсия случайной величины за последний час до текущего момента
varsamp(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Выборочная дисперсия собранных значений в течение определённого периода оценки. Смотрите также: Выборочная дисперсия.
Поддерживаемые типы значений: Float, Integer.
Поддерживаемые функции foreach: last_foreach.
Параметры: смотрите общие параметры.
Для работы этой функции требуется как минимум два значения данных.
Пример:
varsamp(/узел_сети/ключ,1h) #выборочная дисперсия за последний час до текущего момента