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)

Вычисляет процентиль по бакетам гистограммы.

Параметры:

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

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

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