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.
Параметры:
- См. общие параметры
- #num (необязательно) - N-е по счету самое последнее значение
Комментарии:
- Обратите внимание, что период времени с хэштегом (#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.
Параметры:
- См. общие параметры;
- #num (необязательно) — N-е по новизне значение.
Функция завершается с ошибкой, если за указанный период не было собрано данных или не было собрано 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.
Параметры:
- См. общие параметры;
- #num (необязательно) — N-е самое последнее значение.
Комментарии:
- Вычисление сдвига времени основано на времени элемента данных, а не на временной метке сообщения журнала;
- Функция завершается с ошибкой, если:
- получен элемент данных не типа журнала;
- за указанный период не было собрано данных;
- 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 запросов в секунду за последнюю минуту