1. Функции агрегации

Если не оговорено иначе, то все перечисленные здесь функции поддерживаются в:

Функции агрегации могут работать с:

  • историей элементов данных, например: min(/узел_сети/ключ,1h)
  • функциями foreach в качестве единственного параметра, например: min(last_foreach(/*/ключ)) (только в вычисляемых элементах данных; нельзя использовать в триггерах)

Некоторые общие замечания о параметрах функций:

  • параметры функций разделяются запятыми
  • необязательные параметры функций (или части параметров) обозначаются угловыми скобками < >
  • параметры, специфичные для функций, описываются с каждой функцией
  • параметры /узел_сети/ключ и (сек|#число)<:сдвиг_времени> никогда не должны заключаться в кавычки
Общие параметры
  • /узел_сети/ключ является общим обязательным первым параметром для функций, ссылающихся на историю элемента данных узла сети
  • (сек|#число)<:сдвиг_времени> является общим вторым параметром для функций, ссылающихся на историю элемента данных узла сети, где:
    • сек - максимальный период вычисления в секундах (могут использоваться суффиксы времени), либо
    • #число - максимальная область вычисления среди последних собранных значений (если начинается со знака решётки)
    • сдвиг_времени (опционально) позволяет сдвигать точку вычислений по времени назад в прошлое. Смотрите более подробную информацию относительно того, как указывать сдвиг времени.

Функции агрегации

ФУНКЦИЯ
Описание Параметры, специфичные для функции Комментарии
avg (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Среднее значение элементов данных за указанный период вычислений. Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаемы функции 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 - функция foreach, для которой нужно подсчитать количество возвращаемых значений (с поддерживаемыми аргументами). Смотрите функции foreach для более подробной информации. Поддерживаются типы значений: int

Поддерживаются функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach

Пример:
=> count(max_foreach(/*/net.if.in[*],1h)) → количество элементов данных в net.if.in, которые получали данные в течение последнего часа до текущего момента

Обратите внимание, что использование count() с функциями foreach, относящимися к истории (max_foreach, avg_foreach и т.п.), может сказаться на производительности, в то время как использование функции exists_foreach(), которая работает только с данными конфигурации, не окажет такого влияния.
histogram_quantile (квантиль,разряд1,значение1,разряд2,значение2,...)
Вычисление φ-го квантиля из разрядов гистограммы. квантиль - 0 ≤ φ ≤ 1
разрядN, значениеN - вручную введённые пары (>=2) параметров либо результат вызова bucket_rate_foreach
Поддерживается только в вычисляемых элементах данных.

Поддерживаются функции foreach: 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(//item_key,30s))
item_count (фильтр)
Подсчёт существующих в конфигурации элементов данных, соответствующих критериям фильтра. фильтр - критерий для выбора элементов данных, позволяет ссылаться на группы узлов сети, узлы сети, ключи элементов данных и теги. Поддерживаются подстановочные символы. Смотрите фильтр элементов данных для более подробной информации. Поддерживается только в вычисляемых элементах данных.

Поддерживаются типы значений: int

Работает как алиас для функции count(exists_foreach(фильтр)).

Пример:
=> item_count(/*/agent.ping?[group="Host group 1"]) → количество узлов сети с элементом данных agent.ping в группе узов сети «Host group 1»
kurtosis (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Эксцесс («островершинность») распределения вероятностей собранных значений в течение определённого периода оценки.

Смотрите также: Kurtosis [en]
Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаются функции foreach: last_foreach

Пример:
=> kurtosis(/узел_сети/ключ,1h) → эксцесс за последний час до текущего момента
mad (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Среднее абсолютное отклонение собранных значений в течение определённого периода оценки.

Смотрите также: Среднее абсолютное отклонение
Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаются функции foreach: last_foreach

Пример:
=> mad(/узел_сети/ключ,1h) → среднее абсолютное отклонение за последний час до текущего момента
max (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Наибольшее значение элемента данных в течение определённого периода оценки. Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаются функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach

Пример:
=> max(/узел_сети/ключ,1h) - min(/узел_сети/ключ,1h) → вычисление разницы между наибольшим и наименьшим значениями за последний час до текущего момента (дельта значений)
min (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Наименьшее значение элемента данных в течение определённого периода оценки. Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаются функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach

Пример:
=> max(/узел_сети/ключ,1h) - min(/узел_сети/ключ,1h) → вычисление разницы между наибольшим и наименьшим значениями за последний час до текущего момента (дельта значений)
skewness (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Асимметрия распределения вероятностей собранных значений в течение определённого периода оценки.

Смотрите также: Коэффициент асимметрии
Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаются функции foreach: last_foreach

Пример:
=> skewness(/узел_сети/ключ,1h) → коэффициент асимметрии за последний час до текущего момента
stddevpop (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Среднеквадратическое отклонение для генеральной совокупности собранных значений в течение определённого периода оценки.

Смотрите также: Среднеквадратическое отклонение
Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаются функции foreach: last_foreach

Пример:
=> stddevpop(/узел_сети/ключ,1h) → стандартное отклонение для генеральной совокупности за последний час до текущего момента
stddevsamp (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Среднеквадратическое отклонение для выборки собранных значений в течение определённого периода оценки.

Смотрите также: Среднеквадратическое отклонение
Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаются функции foreach: last_foreach

At least two data values are required for this function to work.

Пример:
=> stddevsamp(/узел_сети/ключ,1h) → стандартное отклонение для выборки за последний час до текущего момента
sum (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Сумма собранных значений в течение определённого периода оценки. Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаются функции foreach: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach

Пример:
=> sum(/узел_сети/ключ,1h) → сумма значений за последний час до текущего момента
sumofsquares (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Сумма квадратов собранных значений в течение определённого периода оценки. Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаются функции foreach: last_foreach

Пример:
=> sumofsquares(/узел_сети/ключ,1h) → сумма квадратов за последний час до текущего момента
varpop (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Генеральная (совокупная) дисперсия собранных значений в течение определённого периода оценки.

Смотрите также: Variance [en]
Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаются функции foreach: last_foreach

Пример:
=> varpop(/узел_сети/ключ,1h) → дисперсия случайной величины за последний час до текущего момента
varsamp (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>)
Выборочная дисперсия собранных значений в течение определённого периода оценки.

Смотрите также: Выборочная дисперсия
Смотрите общие параметры. Поддерживаются типы значений: float, int

Поддерживаются функции foreach: last_foreach

Для работы этой функции требуется как минимум два значения данных.

Пример:
=> varsamp(/узел_сети/ключ,1h) → выборочная дисперсия за последний час до текущего момента