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(фильтр,период_времени,процент)

Вычисление процентиля из разрядов гистограммы.

Параметры:

Комментарии:

  • Поддерживается только в вычисляемых элементах данных;
  • Эта функция является алиасом для 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 для более подробной информации.
  • фильтр — смотрите фильтр элементов данных;
  • период_времени — смотрите период времени;
  • оператор (должен быть в двойных кавычках). Поддерживаются операторы:
    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.dependent.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) #выборочная дисперсия за последний час до текущего момента

См. все поддерживаемые функции.