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.
Подробности о функциях
Некоторые общие замечания о параметрах функций:
- Параметры функций разделяются запятой
- Необязательные параметры функций (или части параметров) обозначаются с помощью
<> - Специфические для функции параметры описаны для каждой функции
- Параметры
/host/keyи(sec|#num)<:time shift>никогда не должны заключаться в кавычки
change(/host/key)
Величина разницы между предыдущим и последним значением.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.
Для строк возвращает: 0 — значения равны; 1 — значения различаются.
Параметры: см. общие параметры.
Комментарии:
- Будет вычислена числовая разница, как показано в следующих примерах входящих значений ('предыдущее' и 'последнее' значение = разница):
'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 - побитовое AND
regexp - чувствительное к регистру совпадение с регулярным выражением, заданным вpattern
iregexp - нечувствительное к регистру совпадение с регулярным выражением, заданным вpattern - pattern - требуемый шаблон (строковые аргументы должны быть заключены в двойные кавычки)
Комментарии:
- Float элементы данных сопоставляются с точностью 2.22e-16.
- like не поддерживается в качестве оператора для целочисленных значений.
- like и bitand не поддерживаются в качестве операторов для значений float.
- Для значений string, text и log поддерживаются только операторы eq, ne, like, regexp и iregexp.
- При использовании bitand в качестве оператора четвёртый параметр
patternможет быть указан как два числа, разделённые символом '/': number_to_compare_with/mask. count() вычисляет "побитовое AND" значения и mask и сравнивает результат с number_to_compare_with. Если результат "побитового AND" равен 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 failed more than 5 times in 30 minutes
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 не поддерживается в качестве оператора для целочисленных значений.
- 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 не поддерживается в качестве оператора для целочисленных значений.
- like и bitand не поддерживаются в качестве операторов для значений с плавающей точкой.
- Для значений string, text и log поддерживаются только операторы eq, ne, like, regexp и iregexp.
- При использовании regexp или iregexp в качестве оператора четвёртый параметр
patternможет быть обычным или глобальным (начинающимся с '@') регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения.
Примеры:
find(/host/key,10m,"like","error") #find a value that contains 'error' within the last 10 minutes until now
find(/host/agent.version,,"like","beta")=1 #Zabbix agent has beta version, must be upgraded
find(/host/log[/var/log/nginx/access.log],,"regexp"," 500 ")=1 #internal web server error has been found
first(/host/key,sec<:time shift>)
Первое (самое старое) значение в пределах заданного периода вычисления.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.
Параметры:
- См. общие параметры
См. также last().
Пример:
first(/host/key,1h) #retrieve the oldest value within the last hour until now
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 агенте 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(/host/key,<#num<:time shift>>,<pattern>)
Проверяет, соответствует ли ID события последней записи журнала регулярному выражению.
Поддерживаемые типы значений: Журнал.
Возвращает: 0 — не соответствует; 1 — соответствует.
Параметры:
- См. общие параметры
- #num (необязательно) — N-е по свежести значение
- pattern (необязательно) — регулярное выражение, описывающее требуемый шаблон, в стиле Perl Compatible Regular Expression (PCRE) (строковые аргументы должны быть заключены в двойные кавычки)
Примеры:
logeventid(/host/eventlog[Security],,"4625")=1 #найдена запись журнала с ID, соответствующим "4625" (неудачная аутентификация)
logeventid(/host/eventlog[System],,"6008|41")=1 #найдена запись журнала с ID, соответствующим "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).
Параметры:
- См. общие параметры
- #num (необязательно) — N-е по счёту самое последнее значение
Zabbix получает серьёзность журнала из поля Information журнала событий Windows.
Примеры:
logseverity(/host/log[/var/log/syslog],10m)>3 #a log entry with severity above "3" found
logseverity(/host/eventlog[System],10m)=4 #a log entry with severity equaling "Error" found
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.
Параметры:
- См. общие параметры;
- #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(/host/key,(sec|#num)<:time shift>,<mode>)
Проверяет, было ли монотонное уменьшение значений.
Поддерживаемые типы значений: Целое число.
Возвращает: 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) #вычислить, на скольких узлах сети произошло уменьшение размера свободного swap
monodec(/host/proc.num[nginx],10m,"strict")=1 #количество процессов nginx монотонно уменьшалось в течение 10 минут
monoinc(/host/key,(sec|#num)<:time shift>,<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>)
Проверяет отсутствие полученных данных.
Поддерживаемые типы значений: Целое число, Число с плавающей точкой, Символ, Текст, Журнал.
Возвращает: 1 — если данные не поступали в течение заданного периода времени; 0 — в противном случае.
Параметры:
- См. общие параметры
- sec — период должен быть не менее 30 секунд, поскольку процесс синхронизации истории вычисляет эту функцию только каждые 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)<:time shift>,percentage)
P-й процентиль за период, где P (percentage) задается третьим параметром.
Поддерживаемые типы значений: 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 KB/s за последние 5 минут
rate(/host/app.requests.count,1m)>100 #счётчик количества запросов вырос до >100 запросов в секунду за последнюю минуту