4 Функции истории

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

Функции перечислены без дополнительной информации. Нажмите на функцию, чтобы увидеть полные сведения.

Function Description
change Величина разницы между предыдущим и последним значением.
changecount Количество изменений между соседними значениями в пределах заданного периода оценки.
count Количество значений в пределах заданного периода оценки.
countunique Количество уникальных значений в пределах заданного периода оценки.
find Поиск совпадения значения в пределах заданного периода оценки.
first Первое (самое старое) значение в пределах заданного периода оценки.
firstclock Метка времени первого (самого старого) значения в пределах заданного периода оценки.
fuzzytime Проверка того, насколько время пассивного агента отличается от времени сервера/прокси Zabbix.
last Самое последнее значение.
lastclock Метка времени N-го самого последнего значения в пределах заданного периода оценки.
logeventid Проверка, соответствует ли ID события последней записи журнала регулярному выражению.
logseverity Уровень серьезности журнала последней записи журнала.
logsource Проверка, соответствует ли источник журнала последней записи журнала регулярному выражению.
logtimestamp Метка времени сообщения журнала для N-го самого последнего значения элемента журнала.
monodec Проверка, было ли монотонное уменьшение значений.
monoinc Проверка, было ли монотонное увеличение значений.
nodata Проверка отсутствия полученных данных.
percentile P-й процентиль периода, где P (в процентах) задается третьим параметром.
rate Средняя скорость увеличения в секунду для монотонно возрастающего счетчика в пределах заданного периода времени.
Общие параметры
  • /host/key — общий обязательный первый параметр для функций, обращающихся к истории элемента данных узла сети
  • (sec|#num)<:time shift> — общий второй параметр для функций, обращающихся к истории элемента данных узла сети, где:
    • sec — максимальный период оценки в секундах (можно использовать суффиксы времени), или
    • #num — максимальный диапазон оценки в последних собранных значениях (если перед ним стоит символ решетки)
    • time shift (необязательно) позволяет сместить точку оценки назад во времени. См. подробности о задании time shift.

Подробности функций

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

  • параметры функций разделяются запятыми
  • необязательные параметры функций (или части параметров) обозначаются угловыми скобками < >
  • параметры, специфичные для функций, описываются с каждой функцией
  • параметры /узел_сети/ключ и (сек|#число)<:сдвиг_времени> никогда не должны заключаться в кавычки
change(/host/key)

Величина разницы между предыдущим и последним значением.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.
Для строк возвращает: 0 - значения равны; 1 - значения различаются.

Параметры: см. общие параметры.

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

  • Числовая разница будет вычислена, как показано на следующих примерах входных значений ('previous' и 'latest' value = разница):
    '1' и '5' = +4
    '3' и '1' = -2
    '0' и '-2.5' = -2.5.
  • В триггерах полезно для обнаружения резких всплесков (или падений), сбросов счетчиков, числовых переходов состояния.
  • См. также: abs для сравнения.

Примеры:

change(/host/system.uptime)<0 #изменение времени работы системы было отрицательным с момента последнего значения (что указывает на перезагрузку)
change(/host/system.cpu.load[all,avg1])>2 #нагрузка на ЦП (за одну минуту) выросла более чем на 2 с момента последнего значения
change(/host/vfs.fs.size[/,free])<-1G #свободное дисковое пространство уменьшилось более чем на 1 ГБ между проверками
changecount(/host/key,(sec|#num)<:time shift>,<mode>)

Количество изменений между соседними значениями в пределах заданного периода оценки.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.

Параметры:

  • См. общие параметры
  • mode (должен быть в двойных кавычках) - возможные значения: all - считать все изменения (по умолчанию); dec - считать уменьшения; inc - считать увеличения

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

  • Для нечисловых типов значений параметр mode игнорируется.
  • В триггерах полезно для выявления частых изменений состояния (что указывает на нестабильность).

Примеры:

changecount(/host/icmpping,10m)>5 #состояние ping изменилось более 5 раз за 10 минут
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 #состояние operstate интерфейса eth0 изменилось более 5 раз за час
changecount(/host/proc.num[httpd],15m)>10 #количество процессов httpd изменилось более 10 раз за 15 минут
changecount(/host/key,#10,"inc") #количество увеличений значения (относительно соседнего значения) среди последних 10 значений
changecount(/host/key,24h,"dec") #количество уменьшений значения (относительно соседнего значения) за последние 24 часа до текущего момента
count(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

Количество значений в пределах заданного периода оценки.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.

Параметры:

  • См. общие параметры
  • operator (должен быть заключен в двойные кавычки) Поддерживаемые operators:
    eq - равно (по умолчанию для integer, float)
    ne - не равно
    gt - больше
    ge - больше или равно
    lt - меньше
    le - меньше или равно
    like (по умолчанию для string, text, log) - совпадает, если содержит шаблон (с учетом регистра)
    bitand - побитовое И
    regexp - совпадение с регулярным выражением, заданным в pattern, с учетом регистра
    iregexp - совпадение с регулярным выражением, заданным в pattern, без учета регистра
  • pattern - требуемый шаблон (строковые аргументы должны быть заключены в двойные кавычки)

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

  • Элементы данных типа Float сопоставляются с точностью 2.22e-16.
  • like не поддерживается как оператор для значений integer.
  • like и bitand не поддерживаются как операторы для значений float.
  • Для значений string, text и log поддерживаются только операторы eq, ne, like, regexp и iregexp.
  • При использовании 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 значения float всегда будут представлены с 4 десятичными знаками после '.'. Также обратите внимание, что для больших чисел разница в десятичном (хранимом в базе данных) и двоичном (используемом сервером Zabbix) представлении может повлиять на 4-ю десятичную цифру.

Примеры:

count(/host/icmpping,30m,,"0")>5 #ping неудачен более 5 раз за 30 минут
count(/host/key,10m,"like","error") #количество значений за последние 10 минут до текущего момента, содержащих 'error'
count(/host/key,10m,,12) #количество значений за последние 10 минут до текущего момента, равных '12'
count(/host/key,10m,"gt",12) #количество значений за последние 10 минут до текущего момента, превышающих '12'
count(/host/key,#10,"gt",12) #количество значений среди последних 10 значений до текущего момента, превышающих '12'
count(/host/key,10m:now-1d,"gt",12) #количество значений между 24 часами и 10 минутами и 24 часами назад от текущего момента, которые были больше '12'
count(/host/key,10m,"bitand","6/7") #количество значений за последние 10 минут до текущего момента, имеющих '110' (в двоичном виде) в 3 младших значащих битах
count(/host/key,10m:now-1d) #количество значений между 24 часами и 10 минутами и 24 часами назад от текущего момента
countunique(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

Количество уникальных значений за заданный период оценки.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.

Параметры:

  • См. общие параметры
  • operator (должен быть заключен в двойные кавычки). Поддерживаемые operators:
    eq - равно (по умолчанию для integer, float)
    ne - не равно
    gt - больше
    ge - больше или равно
    lt - меньше
    le - меньше или равно
    like (по умолчанию для string, text, log) - совпадает, если содержит шаблон (с учетом регистра)
    bitand - побитовое И
    regexp - совпадение с регулярным выражением, заданным в pattern, с учетом регистра
    iregexp - совпадение с регулярным выражением, заданным в pattern, без учета регистра
  • pattern - требуемый шаблон (строковые аргументы должны быть заключены в двойные кавычки)

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

  • Элементы данных типа Float сопоставляются с точностью 2.22e-16.
  • like не поддерживается как оператор для значений integer.
  • like и bitand не поддерживаются как операторы для значений float.
  • Для значений string, text и log поддерживаются только операторы eq, ne, like, regexp и iregexp.
  • При использовании bitand в качестве оператора четвертый параметр pattern можно указать как два числа, разделенные '/': number_to_compare_with/mask. countunique() вычисляет "побитовое И" для значения и mask и сравнивает результат с number_to_compare_with. Если результат "побитового И" равен number_to_compare_with, значение учитывается.
    Если number_to_compare_with и mask равны, достаточно указать только mask (без '/').
  • При использовании regexp или iregexp в качестве оператора четвертый параметр pattern может быть обычным или глобальным регулярным выражением (начинающимся с '@'). В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения. Для сопоставления regexp значения float всегда будут представлены с 4 десятичными знаками после '.'. Также обратите внимание, что для больших чисел разница в десятичном (хранимом в базе данных) и двоичном (используемом сервером Zabbix) представлении может повлиять на 4-й десятичный знак.

Примеры:

countunique(/host/key,10m) #количество уникальных значений за последние 10 минут до текущего момента
countunique(/host/key,10m,"like","error") #количество уникальных значений за последние 10 минут до текущего момента, которые содержат 'error'
countunique(/host/key,10m,,12) #количество уникальных значений за последние 10 минут до текущего момента, равных '12'
countunique(/host/key,10m,"gt",12) #количество уникальных значений за последние 10 минут до текущего момента, которые больше '12'
countunique(/host/key,#10,"gt",12) #количество уникальных значений среди последних 10 значений до текущего момента, которые больше '12'
countunique(/host/key,10m:now-1d,"gt",12) #количество уникальных значений между 24 часами и 10 минутами и 24 часами назад от текущего момента, которые были больше '12'
countunique(/host/key,10m,"bitand","6/7") #количество уникальных значений за последние 10 минут до текущего момента, имеющих '110' (в двоичном виде) в 3 младших значащих битах
countunique(/host/key,10m:now-1d) #количество уникальных значений между 24 часами и 10 минутами и 24 часами назад от текущего момента
find(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

Находит совпадение значения в пределах заданного периода оценки.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.
Возвращает: 1 - найдено; 0 - в противном случае.

Параметры:

  • См. общие параметры
  • sec или #num (необязательно) - по умолчанию используется последнее значение, если не указано
  • operator (должен быть в двойных кавычках) Поддерживаемые operators:
    eq - равно (по умолчанию для integer, float)
    ne - не равно
    gt - больше
    ge - больше или равно
    lt - меньше
    le - меньше или равно
    like (по умолчанию для string, text, log) - совпадает, если содержит строку, указанную в pattern (с учетом регистра)
    bitand - побитовое И
    regexp - совпадение с регулярным выражением, чувствительное к регистру, указанным в pattern
    iregexp - совпадение с регулярным выражением, нечувствительное к регистру, указанным в pattern
  • pattern - требуемый шаблон (строковые аргументы должны быть в двойных кавычках); регулярное выражение Perl Compatible Regular Expression (PCRE), если operator - regexp, iregexp

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

  • Если обрабатывается более одного значения, возвращается '1', если найдено хотя бы одно совпадающее значение.
  • like не поддерживается как оператор для значений integer.
  • like и bitand не поддерживаются как операторы для значений float.
  • Для значений string, text и log поддерживаются только операторы eq, ne, like, regexp и iregexp.
  • При использовании regexp или iregexp в качестве оператора четвертый параметр pattern может быть обычным или глобальным регулярным выражением (начинающимся с '@'). В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения.

Примеры:

find(/host/key,10m,"like","error") #находит значение, содержащее 'error', за последние 10 минут до текущего момента
find(/host/agent.version,,"like","beta")=1 #агент Zabbix имеет beta-версию, требуется обновление
find(/host/log[/var/log/nginx/access.log],,"regexp"," 500 ")=1 #найдена внутренняя ошибка веб-сервера
first(/узел_сети/ключ,сек<:сдвиг_времени>)

Первое (самое старое) значение за указанный период вычисления.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.

Параметры:

Смотрите также last().

Пример:

first(/узел_сети/ключ,1h) #извлечь самое старое значение за последний час вплоть до текущего момента
firstclock(/host/key,sec<:time shift>)

Метка времени самого старого значения в пределах заданного периода вычисления.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.

Параметры:

Функция завершается с ошибкой, если за указанный период не было собрано данных.

См. также lastclock().

Примеры:

firstclock(/host/key,1h) #получить метку времени самого старого значения за последний час
firstclock(/host/key,1h:now-24h) #получить метку времени самого старого значения за последний час сутки назад
fuzzytime(/host/key,sec)

Проверяет, насколько время пассивного агента отличается от времени сервера/прокси Zabbix.
Поддерживаемые типы значений: Float, Integer.
Возвращает: 1 - разница между значением элемента данных пассивного опроса (как временной меткой) и временной меткой сервера/прокси Zabbix (временем сбора значения) меньше или равна sec секундам; 0 - в противном случае.

Параметры:

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

  • Обычно используется с элементом данных 'system.localtime' для проверки того, что локальное время синхронизировано с локальным временем сервера Zabbix. Обратите внимание, что 'system.localtime' должен быть настроен как пассивная проверка для агента Zabbix; в Zabbix agent 2 он может быть настроен как активная проверка.
  • Также может использоваться с ключом vfs.file.time[/path/file,modify] для проверки того, что файл долгое время не обновлялся.
  • Не рекомендуется использовать эту функцию в сложных выражениях триггеров (с участием нескольких элементов данных), поскольку это может привести к неожиданным результатам (разница во времени будет измеряться по самой последней метрике), например, в fuzzytime(/Host/system.localtime,60s)=0 or last(/Host/trap)<>0.

Примеры:

fuzzytime(/host/system.localtime,5m)=0 #локальное время клиента отличается от времени сервера/прокси Zabbix более чем на 5 минут
fuzzytime(/host/system.localtime,5m)=0 and nodata(/host/system.localtime,10m)=0 #локальное время клиента отличается от времени сервера/прокси Zabbix более чем на 5 минут (при этом гарантируется, что элемент данных не перестал передавать данные)
last(/host/key,<#num<:time shift>>)

Самое последнее значение.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.

Параметры:

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

  • Обратите внимание, что период времени с хэштегом (#N) здесь работает иначе, чем во многих других функциях. Например: last(/host/key) всегда равно last(/host/key,#1); last(/host/key,#3) - третье по счету самое последнее значение (а не три последних значения).
  • Zabbix не гарантирует точный порядок значений, если в истории за одну секунду существует более двух значений.
  • См. также first().

Примеры:

last(/host/key) #получить последнее значение
last(/host/key,#2) #получить предыдущее значение
last(/host/key,#1)<>last(/host/key,#2) #два последних значения различаются
lastclock(/host/key,<#num<:time shift>>)

Временная метка N-го по новизне значения в пределах заданного периода вычисления.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.

Параметры:

Функция завершается с ошибкой, если за указанный период не было собрано данных или не было собрано N-е значение.

См. также firstclock().

Примеры:

lastclock(/host/key) #получить временную метку последнего значения
lastclock(/host/key,#2) #получить временную метку предпоследнего значения
now()-lastclock(/host/heartbeat.item)>300 #с момента обновления элемента данных heartbeat прошло более 5 минут
lastclock(/host/system.cpu.load[all,avg1])-lastclock(/host/system.cpu.load[all,avg1],#2)>300 #интервал обновления между двумя последними значениями превышает 5 минут
((now()-lastclock(/host/system.cpu.load[all,avg1])<120 and last(/host/system.cpu.load[all,avg1])>5)) #значение CPU высокое, и значение свежее (менее 2 минут)
logeventid(/узел_сети/ключ,<#число<:сдвиг_времени>>,<шаблон>)

Проверка, соответствует ли указанному регулярному выражению идентификатор события последней записи из журнала.
Поддерживаемые типы значений: Log.
Возвращает: 0 — нет соответствия; 1 — соответствует.

Параметры:

  • Смотрите общие параметры;
  • #число (опционально) — N-ое из наиболее недавних значений;
  • шаблон (опционально) — регулярное выражение, описывающее нужный шаблон, в формате Perl Compatible Regular Expression (PCRE) (строковые аргументы должны быть заключены в двойные кавычки).

Примеры:

logeventid(/узел_сети/eventlog[Security],,"^4625$")=1 #найдена запись в журнале с идентификатором, совпадающим с "4625" (неудачная аутентификация, failed authentication)
logeventid(/узел_сети/eventlog[System],,"^(6008|41)$")=1 #найдена запись в журнале с идентификатором, совпадающим с "6008" или "41"
logseverity(/узел_сети/ключ,<#число<:сдвиг_времени>>)

Важность события последней записи в журнале.
Поддерживаемые типы значений: Log.
Возвращает: 0 — важность по умолчанию; N — важность (целое число, полезно для журналов событий Windows: 1 — Уведомление, 2 — Предупреждение, 4 — Ошибка, 7 — Аудит отказов, 8 — Аудит успехов, 9 — Критическая ошибка, 10 — Детали).

Параметры:

  • Смотрите общие параметры;
  • #число (опционально) — N-ое из наиболее недавних значений.

Zabbix берёт важность журнала из поля Информация журнала событий Windows.

Примеры:

logseverity(/узел_сети/log[/var/log/syslog],10m)>3 #найдена запись в журнале с важностью выше чем «3»
logseverity(/узел_сети/eventlog[System],10m)=4 #найдена запись в журнале с важностью, равной «Ошибка»
logsource(/узел_сети/ключ,<#число<:сдвиг_времени>>,<шаблон>)

Проверка, соответствует ли регулярному выражению источник последней записи в журнале.
Поддерживаемые типы значений: Log.
Возвращает: 0 — нет соответствия; 1 — соответствует.

Параметры:

  • Смотрите общие параметры;
  • #число (опционально) — N-ое из наиболее недавних значений;
  • шаблон (опционально) — регулярное выражение, описывающее нужный шаблон, в формате Perl Compatible Regular Expression (PCRE) (строковые аргументы должны быть заключены в двойные кавычки).

Обычно используется для журналов событий Windows.

Примеры:

logsource(/узел_сети/eventlog[Application],,"MSSQLSERVER")=1 #найдена запись в журнале с источником, совпадающим с «MSSQLSERVER»
logsource(/узел_сети/eventlog[System],,"Service Control Manager")=1 #найдена запись в журнале с источником, совпадающим с «Service Control Manager»
logsource(/узел_сети/eventlog[System],,"Service Control Manager")=1 and logeventid(/host/eventlog[System],,"^7031$")=1 #найдена запись в журнале с источником, совпадающим с «Service Control Manager», и и идентификатором события, совпадающим с «7031»
logtimestamp(/host/key,<#num<:time shift>>)

Временная метка сообщения журнала для N-го самого последнего значения элемента данных журнала.
Поддерживаемые типы значений: Log.

Параметры:

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

  • Вычисление сдвига времени основано на времени элемента данных, а не на временной метке сообщения журнала;
  • Функция завершается с ошибкой, если:
    • получен элемент данных не типа журнала;
    • за указанный период не было собрано данных;
    • N-е значение не было собрано;
    • сообщение журнала не содержит значения временной метки.

Примеры:

logtimestamp(/host/key) #retrieve the timestamp of the latest log message
logtimestamp(/host/key,#2) #retrieve the timestamp of the 2nd latest log message
logtimestamp(/host/key,#3:now-1d) #retrieve the timestamp of the 3rd latest log message a day ago
monodec(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,<режим>)

Проверка наличия монотонного убывания значений.
Поддерживаемые типы значений: Integer.
Возвращает: 1, если все элементы в течение указанного периода времени непрерывно уменьшаются; 0 — в противном случае.

Параметры:

  • Смотрите общие параметры
  • режим (должен быть в двойных кавычках) — weak (каждое значение меньше или равно предыдущему; по умолчанию) или strict (каждое значение строго уменьшается)

Примеры:

monodec(/узел_сети/system.swap.size[all,free],60s) + monodec(/узел_сети2/system.swap.size[all,free],60s) + monodec(/узел_сети3/system.swap.size[all,free],60s) #посчитать, на каком количестве узлов сети было уменьшение свободного места в области подкачки
monodec(/узел_сети/proc.num[nginx],10m,"strict")=1 #количество процессов nginx монотонно уменьшалось за последние 10 минут
monoinc(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,<режим>)

Проверка наличия монотонного возрастания значений.
Поддерживаемые типы значений: Integer.
Возвращает: 1, если все элементы в течение указанного периода времени непрерывно возрастают; 0 — в противном случае.

Параметры:

  • Смотрите общие параметры
  • режим (должен быть в двойных кавычках) — weak (каждое значение больше или равно предыдущему; по умолчанию) или strict (каждое значение строго возрастает)

Примеры:

monoinc(/узел_сети/system.localtime,#3,"strict")=0 #локальное время системы не увеличивается последовательно
monoinc(/узел_сети/vfs.dir.count[/mnt/data/logs],24h,"weak")=0 #срабатывает, если количество файлов не меняется более 24 часов (ожидается рост)
nodata(/узел_сети/ключ,сек,<режим>)

Проверка отсутствия полученных данных.
Поддерживаемые типы значений: Integer, Float, Character, Text, Log.
Возвращает: 1 — если нет полученных данных за указанный период времени; 0 — в противном случае.

Параметры:

  • Смотрите общие параметры
  • сек — период должен быть не менее 30 секунд, так как процесс синхронизации истории (history syncer) вычисляет эту функцию раз в 30 секунд; nodata(/узел_сети/ключ,0) запрещено
  • режим — при значении strict (в двойных кавычках) эта функция будет нечувствительна к доступности прокси (смотрите комментарии для более подробной информации)

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

  • Триггеры «nodata», контролируемые прокси серверами, по умолчанию чувствительны к доступности прокси — если прокси становится недоступным, триггеры «nodata» не будут срабатывать немедленно после восстановления соединения, а пропустят данные за задержанный период. Обратите внимание, что для пассивных прокси подавление активируется если соединение восстанавливается более чем через 15 секунд и не менее чем через 2 секунды. Для активных прокси подавление активируется, если соединение восстанавливается более чем через 15 секунд. Чтобы выключить чувствительность к доступности прокси, используйте третий параметр, например: nodata(/узел_сети/ключ,5m,"strict"); в этом случае функция будет срабатывать, как только период оценки отсутствия данных (пять минут) истечёт.
  • Эта функция отобразит ошибку в случае, если за указанный в первом параметре период:
    - нет данных и Zabbix сервер был перезапущен
    - нет данных и было завершено обслуживание
    - нет данных и элемент данных был добавлен или заново активирован.
  • Ошибки отображаются в колонке Инфо в настройке триггеров.
  • Эта функция может работать неправильно, если есть расхождения по времени между Zabbix сервером, прокси и агентом. Смотрите также: требования по синхронизации времени.

Пример:

nodata(/узел_сети/agent.ping,5m)=1 #срабатывает, если от Zabbix агента за 5 минут не было получено данных
percentile(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,процент)

P-й процентиль периода, где P (процент) указывается третьим параметром.
Поддерживаемые типы значений: Float, Integer.

Параметры:

  • Смотрите общие параметры;
  • процент — число с плавающей точкой от 0 до 100 (включительно), до 4 цифр после десятичной точки.

Примеры:

percentile(/узел_сети/net.if.in[eth0,bytes],1h,95)>1000000 #95-й процентиль входящего сетевого трафика (байт/сек) за 1 час превысил пороговое значение (например, 1 МБ/с).
percentile(/узел_сети/system.cpu.util,5m,95)>80 #95-й процентиль процента использования CPU в режиме пользователя превысил 80%
percentile(/узел_сети/icmppingsec[192.168.0.2],15m,95)>0.15 #большинство измерений задержки показывают значение ниже 150 мс, но верхняя часть диапазона (верхние 5%) указывает на наличие регулярной задержки
percentile(/узел_сети/net.if.in[eth0,bytes],1h,50) #вычислить 50-й процентиль (медианное значение) входящего сетевого трафика за час; это даст результат, отличающийся от функции avg() (среднее значение), поскольку процентиль не учитывает аномальные значения
(percentile(/узел_сети/net.if.in[eth0,bytes],1h,50)+percentile(/узел_сети/net.if.in[eth0,bytes],1h,51))/2 #вычислить точное медианное значение с чётным числом значений за час
rate(/host/key,sec<:time shift>)

Среднее почасовое увеличение монотонно возрастающего счетчика за заданный период времени.
Поддерживаемые типы значений: Float, Integer.

Параметры:

Функционально соответствует 'rate' в PromQL.

Примеры:

rate(/host/key,30s) #если монотонный рост за 30 секунд составляет 20, эта функция возвращает 0.67.
rate(/host/net.if.in[eth0,bytes],5m)>500000 #скорость входящего трафика интерфейса eth0 превысила 500 КБ/с за последние 5 минут
rate(/host/app.requests.count,1m)>100 #счетчик количества запросов вырос более чем на 100 запросов в секунду за последнюю минуту

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