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

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

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

  • параметры функций разделяются запятыми
  • необязательные параметры функций (или части параметров) обозначаются угловыми скобками < >
  • параметры, специфичные для функций, описываются с каждой функцией
  • параметры /узел_сети/ключ и (сек|#число)<:сдвиг_времени> никогда не должны заключаться в кавычки
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 #нагрузка CPU (за одну минуту) выросла более чем на 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 #операционное состояние 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(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,<оператор>,<шаблон>)

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

Параметры:

  • смотрите общие параметры
  • оператор (должен быть в двойных кавычках). Поддерживаются операторы:
    eq — равно (по умолчанию для integer и float)
    ne — не равно
    gt — больше
    ge — больше или равно
    lt — меньше
    le — меньше или равно
    like (по умолчанию для элементов данных символ, текст и журнал (лог)) — содержит подстроку шаблона (чувствительно к регистру)
    bitand — побитовое И
    regexp — чувствительное к регистру соответствие регулярному выражению, данному в шаблоне
    iregexp — нечувствительное к регистру соответствие регулярному выражению, данному в шаблоне
  • шаблон — искомый шаблон (строковые аргументы должны быть в двойных кавычках)

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

  • Элементы данных с плавающей точкой совпадают с точностью 2.22e-16.
  • like в качестве оператора не поддерживается для целочисленных значений.
  • Для значений с типами символ, текст и журнал (лог) поддерживаются только операторы eq, ne, like, regexp и iregexp.
  • Для оператора bitand четвёртый параметр шаблон может быть указан как два числа, разделённых косой чертой («/»): число_для_сравнения/маска. countunique() вычисляет «побитовое И» из значения и маски и сравнивает результат с числом_для_сравнения. Если результат «побитового И» равен числу_для_сравнения, то значение считается.
    Если число_для_сравнения и маска равны, требуется указывать только маску (без «/»).
  • Для операторов regexp и iregexp четвёртый параметр шаблон может быть обычным или глобальным (начинающимся с «@») регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения. При проверке соответствия регулярному выражению, значения с плавающей точкой всегда будут представлены с 4 цифрами после десятичной точки («.»). Также обратите внимение, что для больших чисел различие между десятичным (хранящимся в базе данных) и двоичным (используемом сервером Zabbix) представлениями может повлиять на 4-ю десятичную цифру.

Примеры:

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

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

Параметры:

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

Примеры:

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

Уровень серьезности последней записи журнала.
Поддерживаемые типы значений: Log.
Возвращает: 0 - уровень серьезности по умолчанию; N - уровень серьезности (целое число, полезно для журналов событий Windows: 1 - Information, 2 - Warning, 4 - Error, 7 - Failure Audit, 8 - Success Audit, 9 - Critical, 10 - Verbose).

Параметры:

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

Примеры:

logseverity(/host/log[/var/log/syslog],10m)>3 #найдена запись журнала с уровнем серьезности выше "3"
logseverity(/host/eventlog[System],10m)=4 #найдена запись журнала с уровнем серьезности, равным "Error"
logsource(/host/key,<#num<:time shift>>,<pattern>)

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

Параметры:

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

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

Примеры:

logsource(/host/eventlog[Application],,"MSSQLSERVER")=1 #найдена запись журнала, источник которой соответствует "MSSQLSERVER"
logsource(/host/eventlog[System],,"Service Control Manager")=1 #найдена запись журнала, источник которой соответствует "Service Control Manager"
logsource(/host/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.
Поддерживаемые типы значений: Log.

Параметры:

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

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

Примеры:

logtimestamp(/host/key) #получить временную метку последнего сообщения журнала
logtimestamp(/host/key,#2) #получить временную метку предпоследнего сообщения журнала
logtimestamp(/host/key,#3:now-1d) #получить временную метку третьего по новизне сообщения журнала сутки назад
monodec(/host/key,(sec|#num)<:time shift>,<mode>)

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

Параметры:

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

Примеры:

monodec(/host/system.swap.size[all,free],60s) + monodec(/host2/system.swap.size[all,free],60s) + monodec(/host3/system.swap.size[all,free],60s) #calculate in how many hosts there has been a decrease in free swap size
monodec(/host/proc.num[nginx],10m,"strict")=1 #the number of nginx processes has monotonously decreased over 10 minutes
monoinc(/host/key,(sec|#num)<:сдвиг времени>,<mode>)

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

Параметры:

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

Примеры:

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

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

Параметры:

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

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

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

Пример:

nodata(/host/agent.ping,5m)=1 #триггер, если от агента Zabbix не получены данные в течение 5 минут
percentile(/host/key,(sec|#num)<:сдвиг времени>,percentage)

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

Параметры:

  • См. общие параметры
  • percentage - число с плавающей точкой от 0 до 100 включительно, с точностью до 4 знаков после десятичной точки

Примеры:

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

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