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 запросов в секунду за последнюю минуту

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