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

Количество значений за определённый период вычисления.
Поддерживаемые типы значений: 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 четвёртый параметр шаблон может быть указан как два числа, разделённых косой чертой («/»): число_для_сравнения/маска. count() вычисляет «побитовое И» из значения и маски и сравнивает результат с числом_для_сравнения. Если результат «побитового И» равен числу_для_сравнения, то значение считается.
    Если число_для_сравнения и маска равны, требуется указывать только маску (без «/»).
  • Для операторов regexp и iregexp четвёртый параметр шаблон может быть обычным или глобальным (начинающимся с «@») регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения. При проверке соответствия регулярному выражению, значения с плавающей точкой всегда будут представлены с 4 цифрами после десятичной точки («.»). Также обратите внимение, что для больших чисел различие между десятичным (хранящимся в базе данных) и двоичным (используемом сервером Zabbix) представлениями может повлиять на 4-ю десятичную цифру.

Примеры:

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

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

Параметры:

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

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

  • Если обрабатывается более одного значения, «1» возвращается, если имеется по крайней мере одно совпадающее значение.
  • like в качестве оператора не поддерживается для целочисленных значений.
  • like и bitand в качестве оператора не поддерживаются для значений с плавающей точкой.
  • Для значений с типом символ, текст и журнал (лог) поддерживаются только операторы eq, ne, like, regexp и iregexp.
  • С операторами regexp и iregexp четвёртый параметр шаблон может быть обычным или глобальным (начинающимся с «@») регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения.

Примеры:

find(/узел_сети/agent.version,,"like","beta")=1 #Zabbix agent имеет бета-версию, требуется обновление
find(/узел_сети/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(/узел_сети/ключ,сек)

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

Параметры:

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

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

Примеры:

fuzzytime(/узел_сети/system.localtime,5m)=0 #локальное время клиента отличается от времени Zabbix сервера/прокси более чем на 5 минут
fuzzytime(/узел_сети/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 запросов в секунду за последнюю минуту

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