This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ru:manual:appendix:triggers:functions [2015/12/25 17:06] dotneft |
ru:manual:appendix:triggers:functions [2019/12/30 14:12] (current) martins-v updating content |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== - #1 Поддерживаемые функции триггеров ==== | + | ==== 1 Поддерживаемые функции триггеров ==== |
Здесь перечислены все поддерживаемые функции в [[:ru/manual/config/triggers/expression|выражениях триггеров]]: | Здесь перечислены все поддерживаемые функции в [[:ru/manual/config/triggers/expression|выражениях триггеров]]: | ||
Line 6: | Line 6: | ||
^ ^ **Описания** ^ **Параметры** ^ **Комментарии** ^ | ^ ^ **Описания** ^ **Параметры** ^ **Комментарии** ^ | ||
|**abschange** ^^^^ | |**abschange** ^^^^ | ||
- | ^ |Абсолютная разница между последним и предыдущим значениями. | |Поддерживаемые типы значений: float, int, str, text, log\\ \\ Например:\\ (предыдущее значение/последнее значение=abschange)\\ 1/5=4\\ 3/1=2\\ 0/-2.5=2.5\\ \\ Результат для строк:\\ 0 - значения равны\\ 1 - значения различаются | | + | ^ |Абсолютная разница между последним и предыдущим значениями. | |Поддерживаемые типы значений: float, int, str, text, log\\ \\ Например:\\ (предыдущее значение;последнее значение=abschange)\\ 1;5=4\\ 3;1=2\\ 0;-2.5=2.5\\ \\ Результат для строк:\\ 0 - значения равны\\ 1 - значения различаются | |
^ |||| | ^ |||| | ||
|**avg** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | |**avg** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | ||
- | ^ |Среднее значение элемента данных за указанный период времени. |**сек** или **кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - точка вычисления перемещается на указанное количество секунд назад во времени |Поддерживаемые типы значений: float, int\\ \\ Примеры:\\ => avg(#5) -> среднее значение за пять последних значений\\ => avg(3600) -> среднее значение за час\\ => avg(3600,86400) -> среднее значение за час днем ранее.\\ \\ Параметр ''сдвиг_времени'' поддерживается начиная с Zabbix 1.8.2. Этот параметр очень полезен, если требуется сравнить текущее значение усреднения со значением усреднения сдвиг_времени секунд ранее. | | + | ^ |Среднее значение элемента данных за указанный период времени. |**сек** или **кол-во** - максимальный период<sup>**[[#примечания|1]]**</sup> вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - точка вычисления перемещается на указанное количество секунд назад во времени |Поддерживаемые типы значений: float, int\\ \\ Примеры:\\ => avg(#5) -> среднее значение за пять последних значений\\ => avg(1h) -> среднее значение за час\\ => avg(1h,1d) -> среднее значение за час днем ранее.\\ \\ Параметр ''сдвиг_времени'' поддерживается начиная с Zabbix 1.8.2. Этот параметр очень полезен, если требуется сравнить текущее значение усреднения со значением усреднения сдвиг_времени секунд ранее. | |
^ |||| | ^ |||| | ||
|**band** (сек<nowiki>|</nowiki>#кол-во,маска,<сдвиг_времени>) ^^^^ | |**band** (сек<nowiki>|</nowiki>#кол-во,маска,<сдвиг_времени>) ^^^^ | ||
- | ^ |Значение "побитового И" от значения элемента данных и маски. |**сек** (игнорируется) или **кол-во** - N-ое наиболее новое значение\\ **маска** (обязательна) - 64-битное целое число (0 - 18446744073709551615)\\ **сдвиг_времени** (опционально) - см. функцию avg() |Поддерживаемые типы значений: int\\ \\ Обратите внимание, что ''#кол-во'' здесь работает иначе, чем во многих других функциях (смотри last()).\\ \\ Хотя сравнение выполняется побитовым образом, все значения должны подставляться и возвращаться в десятичном виде. Например, выполнение проверки 3-го бита, сравнением с 4, не со 100.\\ \\ Примеры:\\ => %%band(,12)=8 or band(,12)=4%% -> 3-ий и 4-ый биты установлены, но не оба в одно время\\ => %%band(,20)=16%% -> 3-ий бит не установлен и 5 бит установлен.\\ \\ Эта функция поддерживается начиная с начиная с Zabbix 2.2.0. | | + | ^ |Значение "побитового И" от значения элемента данных и маски. |**сек** (игнорируется) или **кол-во** - N-ое наиболее новое значение\\ **маска** (обязательна) - 64-битное целое число (0 - 18446744073709551615)\\ **сдвиг_времени** (опционально) - см. функцию avg() |Поддерживаемые типы значений: int\\ \\ Обратите внимание, что ''#кол-во'' здесь работает иначе, чем во многих других функциях (смотри last()).\\ \\ Хотя сравнение выполняется побитовым образом, все значения должны подставляться и возвращаться в десятичном виде. Например, выполнение проверки 3-го бита, сравнением с 4, не со 100.\\ \\ Примеры:\\ => %%band(,12)=8 or band(,12)=4%% -> 3-ий и 4-ый биты установлены, но не оба в одно время\\ => %%band(,20)=16%% -> 3-ий бит не установлен и 5 бит установлен.\\ \\ Эта функция поддерживается начиная с Zabbix 2.2.0. | |
^ |||| | ^ |||| | ||
|**change** ^^^^ | |**change** ^^^^ | ||
- | ^ |Величина разницы между последним и предыдущим значениями. | |Поддерживаемые типы значений: float, int, str, text, log\\ \\ Например:\\ (предыдущее значение/последнее значение=изменение)\\ 1/5=+4\\ 3/1=-2\\ 0/-2.5=-2.5\\ \\ Для строк:\\ 0 - значения равны\\ 1 - значения различаются | | + | ^ |Величина разницы между последним и предыдущим значениями. | |Поддерживаемые типы значений: float, int, str, text, log\\ \\ Например:\\ (предыдущее значение;последнее значение=изменение)\\ 1;5=+4\\ 3;1=-2\\ 0;-2.5=-2.5\\ \\ Для строк:\\ 0 - значения равны\\ 1 - значения различаются | |
^ |||| | ^ |||| | ||
|**count** (сек<nowiki>|</nowiki>#кол-во,<шаблон>,<оператор>,<сдвиг_времени>) ^^^^ | |**count** (сек<nowiki>|</nowiki>#кол-во,<шаблон>,<оператор>,<сдвиг_времени>) ^^^^ | ||
- | ^ |Количество собранных значений за указанный период вычисления. |**сек** или **кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **шаблон** (опционально) - требуемый шаблон (целые числа - точное совпадение; числа с плавающей точкой - совпадение с точностью до 0.000001)\\ **оператор** (опционально)\\ \\ Поддерживаемые ''операторы'': //eq// - равно\\ //ne// - не равно\\ //gt// - больше\\ //ge// - больше или равно\\ //lt// - меньше\\ //le// - меньше или равно\\ //like// - совпадают, если содержат шаблон (регистрозависимое)\\ //band// - побитовое И (поддерживается начиная с Zabbix 2.2.0).\\ \\ Обратите внимание:\\ //eq// (по умолчанию), //ne//, //gt//, //ge//, //lt//, //le//, //band// поддерживаются целочисленными элементами данных\\ //eq// (по умолчанию), //ne//, //gt//, //ge//, //lt//, //le// поддерживаются числовыми с плавающей точкой элементами данных\\ //like// (по умолчанию), //eq//, //ne// поддерживаются строковыми, текстовыми и журнальными элементами данных\\ \\ **сдвиг_времени** (опционально) - смотрите avg() |Поддерживаемые типы значений: float, int, str, text, log\\ \\ При наличии **band** третьим параметром, второй параметр можно указывать двумя числами, разделенными с помощью '/': **количество_для_сравнения/маска**. count() вычисляет "побитовое И", используя значение и //маску//, и сравнивает результат с //количеством_для_сравнения//. Если результат "побитового И" равен //количеству_для_сравнения//, значение засчитывается.\\ Если //количество_для_сравнения// и //маска// равны, то необходимо указать только параметр //маска// (без '/').\\ \\ Примеры:\\ => count(600) -> количество значений за последние 10 минут\\ => count(600,12) -> количество значений за последние 10 минут, которые равны '12'\\ => %%count(600,12,"gt")%% -> количество значений за последние 10 минут, которые больше '12'\\ => %%count(#10,12,"gt")%% -> количество значений из последних 10 значений, которые больше '12'\\ => %%count(600,12,"gt",86400)%% -> количество значений за 10 минут 24 часами ранее, которые больше '12'\\ => %%count(600,6/7,"band")%% -> количество значений за последние 10 минут, которые имеют '110' (в бинарном виде) в 3 младших битах.\\ => count(600,,,86400) -> количество значений за 10 минут 24 часами ранее\\ \\ Параметр ''#кол-во'' поддерживается начиная с Zabbix 1.6.1.\\ Параметр ''сдвиг_времени'' и строковые операторы поддерживаются начиная с Zabbix 1.8.2. | | + | ^ |Количество собранных значений за указанный период вычисления. |**сек** или **кол-во** - максимальный период<sup>**[[#примечания|1]]**</sup> вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **шаблон** (опционально) - требуемый шаблон\\ \\ **оператор** (опционально)\\ \\ Поддерживаемые ''операторы'': //eq// - равно\\ //ne// - не равно\\ //gt// - больше\\ //ge// - больше или равно\\ //lt// - меньше\\ //le// - меньше или равно\\ //like// - совпадают, если содержат шаблон (регистрозависимое)\\ //band// - побитовое И\\ //regexp// - совпадение с учетом регистра с регулярным выражением, заданным в ''шаблон''\\ //iregexp// - совпадение без учета регистра с регулярным выражением, заданным в ''шаблон''\\ \\ Обратите внимание:\\ //eq// (по умолчанию), //ne//, //gt//, //ge//, //lt//, //le//, //band//, //regexp//, //iregexp// поддерживаются целочисленными элементами данных\\ //eq// (по умолчанию), //ne//, //gt//, //ge//, //lt//, //le//, //regexp//, //iregexp// поддерживаются числовыми с плавающей точкой элементами данных\\ //like// (по умолчанию), //eq//, //ne//, //regexp//, //iregexp// поддерживаются строковыми, текстовыми и журнальными элементами данных\\ \\ **сдвиг_времени** (опционально) - смотрите avg() |Поддерживаемые типы значений: float, integer, string, text, log\\ Элементы данных с плавающей точкой совпадают с точностью до 0.000001.\\ \\ При наличии **band** третьим параметром, второй параметр ''шаблон'' можно указывать двумя числами, разделенными с помощью '/': **количество_для_сравнения/маска**. count() вычисляет "побитовое И", используя значение и //маску//, и сравнивает результат с //количеством_для_сравнения//. Если результат "побитового И" равен //количеству_для_сравнения//, значение засчитывается.\\ Если //количество_для_сравнения// и //маска// равны, то необходимо указать только параметр //маска// (без '/').\\ \\ При наличии //regexp// или //iregexp// третьим параметром, второй параметр ''шаблон'' может быть как обычным, так и [[:ru/manual/regular_expressions#глобальные_регулярные_выражения|глобальным]] (которое начинается с '@') регулярным выражением. В случае глобального регулярного выражения учет регистра наследуется из настроек глобального регулярного выражения. Для цели соответствия регулярному выражению числа с плавающей точкой всегда будут представлены с 4 десятичными знаками после '.'. Также обратите внимание на то, что при разница между большими числами в десятичном (хранится в базе данных) и бинарном (используется Zabbix сервере) представлениях может повлиять на 4 цифру после запятой. \\ \\ Примеры:\\ => count(10m) -> количество значений за последние 10 минут\\ => %%count(10m,"error",eq)%% -> количество значений за последние 10 минут, которые равны 'error' \\ => count(10m,12) -> количество значений за последние 10 минут, которые равны '12'\\ => %%count(10m,12,gt)%% -> количество значений за последние 10 минут, которые больше '12'\\ => %%count(#10,12,gt)%% -> количество значений из последних 10 значений, которые больше '12'\\ => %%count(10m,12,gt,1d)%% -> количество значений за 10 минут 24 часами ранее, которые больше '12'\\ => %%count(10m,6/7,band)%% -> количество значений за последние 10 минут, которые имеют '110' (в бинарном виде) в 3 младших битах.\\ => count(10m,,,1d) -> количество значений за 10 минут 24 часами ранее\\ \\ Параметр ''#кол-во'' поддерживается начиная с Zabbix 1.6.1.\\ Параметр ''сдвиг_времени'' и строковые операторы поддерживаются начиная с Zabbix 1.8.2.\\ Оператор //band// поддерживается начиная с Zabbix 2.2.0.\\ Параметры //regexp//, //iregexp// поддерживаются начиная с Zabbix 3.2.0. | |
^ |||| | ^ |||| | ||
|**date** ^^^^ | |**date** ^^^^ | ||
Line 30: | Line 30: | ||
^ |||| | ^ |||| | ||
|**delta** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | |**delta** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | ||
- | ^ |Разницы между максимальным и минимальным значениями за указанный период вычисления ('max()' минус 'min()'). |**сек** или **#кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений: float, int\\ \\ Параметр ''сдвиг_времени'' поддерживается начиная с Zabbix 1.8.2. | | + | ^ |Разницы между максимальным и минимальным значениями за указанный период вычисления ('max()' минус 'min()'). |**сек** или **#кол-во** - максимальный период<sup>**[[#примечания|1]]**</sup> вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений: float, int\\ \\ Параметр ''сдвиг_времени'' поддерживается начиная с Zabbix 1.8.2. | |
^ |||| | ^ |||| | ||
|**diff** ^^^^ | |**diff** ^^^^ | ||
^ |Проверка, различаются ли последнее и предыдущее значения. | |Поддерживаемые типы значений: float, int, str, text, log\\ \\ Возвращает:\\ 1 - последнее и предыдущее значения различаются\\ 0 - в противном случае | | ^ |Проверка, различаются ли последнее и предыдущее значения. | |Поддерживаемые типы значений: float, int, str, text, log\\ \\ Возвращает:\\ 1 - последнее и предыдущее значения различаются\\ 0 - в противном случае | | ||
+ | ^ |||| | ||
+ | |**forecast** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>,время,<аппроксимация>,<режим>) ^^^^ | ||
+ | ^ |Будущее значение, макс, мин, дельта или сред элемента данных. |**сек** или **#кол-во** - указывается период вычисления в секундах или в количестве собранных значений (начинается с решетки)\\ **сдвиг_времени** (опционально) - см. функцию avg()\\ **время** - горизон предсказания в секундах\\ **аппроксимация** (опционально) - используемая функция для аппроксимации данных истории\\ \\ Поддерживаемые ''аппроксимации'':\\ //linear// - линейная функция\\ //polynomialN// - полином степени N (1 <nowiki><=</nowiki> N <nowiki><=</nowiki> 6)\\ //exponential// - экспоненциальная функция\\ //logarithmic// - логарифмическая функция\\ //power// - степенная функция\\ \\ Обратите внимание, что:\\ //linear// является умолчанием, //polynomial1// эквивалент //linear//\\ \\ **режим** (опционально) - запрашиваемый вывод\\ \\ Поддерживаемые ''режимы'':\\ //value// - значение (по умолчанию)\\ //max// - максимальное\\ //min// - минимальное\\ //delta// - //max//-//min//\\ //avg// - среднее\\ \\ Обратите внимание:\\ //value// оценивает значение элемента данных за момент ''сейчас'' + ''время''\\ //max//, //min//, //delta// и //avg// оценивают значение элемента данных за интервал между ''сейчас'' и ''сейчас'' + ''время'' |Поддерживаемые типы значений: float, int\\ \\ Если возвращаемое значение больше чем 999999999999.9999 или меньше чем -999999999999.9999,возвращаемое значение обрезается до 999999999999.9999 или -999999999999.9999 соответственно.\\ \\ Становится не поддерживаемым только, если в выражении имеется злоупотребление (ошибочный тип элемента данных, некорректные параметры), в противном случае возвращает -1 в случае ошибок.\\ \\ Примеры:\\ => forecast(#10,,1h) -> прогноз значения элемента данных через один час на основе последних 10 значений\\ => forecast(1h,,30m) -> прогноз значения элемента данных через 30 минут на основе данных последнего часа\\ => forecast(1h,1d,12h) -> прогноз значения элемента данных через 12 часов на основе одного часа днем ранее\\ => forecast(1h,,10m,exponential) -> прогноз значения элемента данных через 10 минут на основе данных последнего часа и экспоненциальной функции\\ => forecast(1h,,2h,polynomial3,max) -> прогноз максимального значения элемента данных, которое может достичь элемент данных через два часа, на основе данных последнего часа и кубического (третьей степени) полинома\\ => forecast(#2,,-20m) -> оценивает значение элемента данных, которое было 20 минут назад на основе двух последних значений (эта функция может быть более точной, чем использование last() или prev(), особенно, если элемент данных обновляется редко, скажем, раз в час)\\ \\ Эта функция поддерживается начиная с Zabbix 3.0.0.\\ Отрицательные значения ''времени'' поддерживаются начиная с Zabbix 3.2.2.\\ Смотрите дополнительную информацию о [[:ru/manual/config/triggers/prediction|функциях предсказания в триггерах]]. | | ||
^ |||| | ^ |||| | ||
|**fuzzytime** (сек) ^^^^ | |**fuzzytime** (сек) ^^^^ | ||
- | ^ |Проверка, синхронизировано ли системное локальное время со временем на Zabbix сервере. |**сек** - секунды |Поддерживаемые типы значений: float, int\\ \\ Возвращает '1' в случае, если штамп времени из значения элемента данных не отличается от времени Zabbix сервера более чем на N секунд, 0 - в противном случае. Обычно используется с system.localtime для проверки, что локальное время синхронизировано с локальным временем Zabbix сервера. | | + | ^ |Проверка, на сколько отличается штамп времени значения элемента данных от времени Zabbix сервера. |**сек** - секунды |Поддерживаемые типы значений: float, int\\ \\ Возвращает:\\ 1 - если разница между штампом времени значения элемента данных и штампом времени Zabbix сервера меньше или равна ''сек'' секунд\\ 0 - в противном случае.\\ \\ Обычно используется с system.localtime для проверки, что локальное время синхронизировано с локальным временем Zabbix сервера.\\ Также можно использовать с ключем vfs.file.time[/путь/к/файлу,modify] для проверки, что файл не обновлялся длительное время.\\ \\ Пример:\\ => fuzzytime(60)=0 -> обнаружение проблемы, если разница во времени больше 60 секунд | |
^ |||| | ^ |||| | ||
|**iregexp** (шаблон,<сек<nowiki>|</nowiki>#кол-во>) ^^^^ | |**iregexp** (шаблон,<сек<nowiki>|</nowiki>#кол-во>) ^^^^ | ||
Line 54: | Line 57: | ||
^ |||| | ^ |||| | ||
|**max** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | |**max** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | ||
- | ^ |Максимальное значение за указанный период вычисления. |**сек** или **#кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений: float, int\\ \\ Параметр ''сдвиг_времени'' поддерживается начиная с Zabbix 1.8.2. | | + | ^ |Максимальное значение за указанный период вычисления. |**сек** или **#кол-во** - максимальный период<sup>**[[#примечания|1]]**</sup> вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений: float, int\\ \\ Параметр ''сдвиг_времени'' поддерживается начиная с Zabbix 1.8.2. | |
^ |||| | ^ |||| | ||
|**min** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | |**min** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | ||
- | ^ |Минимальное значение за указанный период вычисления. |**сек** или **#кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений: float, int\\ \\ Параметр ''сдвиг_времени'' поддерживается начиная с Zabbix 1.8.2. | | + | ^ |Минимальное значение за указанный период вычисления. |**сек** или **#кол-во** - максимальный период<sup>**[[#примечания|1]]**</sup> вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений: float, int\\ \\ Параметр ''сдвиг_времени'' поддерживается начиная с Zabbix 1.8.2. | |
^ |||| | ^ |||| | ||
|**nodata** (сек) ^^^^ | |**nodata** (сек) ^^^^ | ||
- | ^ |Проверка, отсутствия полученных данных. |**сек** - период вычисления в секундах. Период не должен быть меньше 30 секундам. |Поддерживаемые типы значений: //любые//\\ \\ Результат:\\ 1 - если нет полученных данных за указанный период времени\\ 0 - в противном случае\\ \\ Обратите внимание, эта функция отобразит ошибку в случае, если за указанный период в первом параметре:\\ - нет данных и Zabbix сервер был перезапущен\\ - нет данных и было завершено обслуживание\\ - нет данных и элемент данных был добавлен или активирован снова | | + | ^ |Проверка, отсутствия полученных данных. |**сек** - период вычисления в секундах. Период не должен быть меньше 30 секундам.\\ \\ nodata(0) запрещена начиная с Zabbix 3.2.2. |Поддерживаемые типы значений: //любые//\\ \\ Результат:\\ 1 - если нет полученных данных за указанный период времени\\ 0 - в противном случае\\ \\ Обратите внимание, эта функция отобразит ошибку в случае, если за указанный период в первом параметре:\\ - нет данных и Zabbix сервер был перезапущен\\ - нет данных и было завершено обслуживание\\ - нет данных и элемент данных был добавлен или активирован снова.\\ Ошибки отображаются в колонке //Инфо// в [[:ru/manual/web_interface/frontend_sections/configuration/hosts/triggers|настройке]] триггеров. | |
^ |||| | ^ |||| | ||
|**now** ^^^^ | |**now** ^^^^ | ||
^ |Количество секунд начиная с Epoch (00:00:00 UTC, 1 Января, 1970). | |Поддерживаемые типы значений: //любые// | | ^ |Количество секунд начиная с Epoch (00:00:00 UTC, 1 Января, 1970). | |Поддерживаемые типы значений: //любые// | | ||
+ | ^ |||| | ||
+ | |**percentile** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>,процент) ^^^^ | ||
+ | ^ |P-ый процентиль за период, где P (процент) задается третьим параметров. |**сек** или **#кол-во** - максимальный период<sup>**[[#примечания|1]]**</sup> вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **time_shift** (опционально) - см. функцию avg()\\ **процент** - число с плавающей точкой между 0 и 100 (включительно) с точностью до 4 цифр после десятичной точки |Поддерживаемые типы значений: float, int\\ \\ Эта функция поддерживается начиная с Zabbix 3.0.0. | | ||
^ |||| | ^ |||| | ||
|**prev** ^^^^ | |**prev** ^^^^ | ||
Line 69: | Line 75: | ||
^ |||| | ^ |||| | ||
|**regexp** (шаблон,<сек<nowiki>|</nowiki>#кол-во>) ^^^^ | |**regexp** (шаблон,<сек<nowiki>|</nowiki>#кол-во>) ^^^^ | ||
- | ^ |Проверка, совпадает ли последне (самое новое) значение с регулярным выражением. |**шаблон** - регулярное выражение, в формате [[https://ru.wikipedia.org/wiki/Регулярные_выражения#.D0.A0.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.BD.D1.8B.D0.B5_.D1.80.D0.B5.D0.B3.D1.83.D0.BB.D1.8F.D1.80.D0.BD.D1.8B.D0.B5_.D0.B2.D1.8B.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F_POSIX|расширенных регулярных выражений POSIX]].\\ **сек** или **#кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки). В этом случае, может быть обработано более одного значения. |Поддерживаемые типы значений: str, text, log\\ \\ Результат:\\ 1 - найдено\\ 0 - в противном случае\\ \\ Эта функция является чувствительной к регистру. | | + | ^ |Проверка, совпадает ли последне (самое новое) значение с регулярным выражением. |**шаблон** - регулярное выражение, в формате [[https://ru.wikipedia.org/wiki/Регулярные_выражения#.D0.A0.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.BD.D1.8B.D0.B5_.D1.80.D0.B5.D0.B3.D1.83.D0.BB.D1.8F.D1.80.D0.BD.D1.8B.D0.B5_.D0.B2.D1.8B.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F_POSIX|расширенных регулярных выражений POSIX]].\\ **сек** или **#кол-во** - максимальный период<sup>**[[#примечания|1]]**</sup> вычисления в секундах или в последних собранных значениях (начинается с решетки). В этом случае, может быть обработано более одного значения. |Поддерживаемые типы значений: str, text, log\\ \\ Результат:\\ 1 - найдено\\ 0 - в противном случае\\ \\ Если обрабатывается более одного значения, '1' возвращается, если имеется по крайней мере одно совпадающее значение.\\ \\ Эта функция является чувствительной к регистру. | |
^ |||| | ^ |||| | ||
|**str** (шаблон,<сек<nowiki>|</nowiki>#кол-во>) ^^^^ | |**str** (шаблон,<сек<nowiki>|</nowiki>#кол-во>) ^^^^ | ||
- | ^ |Поиск строки в последнем (самом новом) значении. |**шаблон** - требуемая строка\\ **сек** или **#кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки). В этом случае, может быть обработано более одного значения. |Поддерживаемые типы значений: str, text, log\\ \\ Результат:\\ 1 - найдено\\ 0 - в противном случае\\ \\ Эта функция является чувствительной к регистру. | | + | ^ |Поиск строки в последнем (самом новом) значении. |**шаблон** - требуемая строка\\ **сек** или **#кол-во** - максимальный период<sup>**[[#примечания|1]]**</sup> вычисления в секундах или в последних собранных значениях (начинается с решетки). В этом случае, может быть обработано более одного значения. |Поддерживаемые типы значений: str, text, log\\ \\ Результат:\\ 1 - найдено\\ 0 - в противном случае\\ \\ Если обрабатывается более одного значения, '1' возвращается, если имеется по крайней мере одно совпадающее значение.\\ \\ Эта функция является чувствительной к регистру. | |
^ |||| | ^ |||| | ||
|**strlen** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | |**strlen** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | ||
Line 78: | Line 84: | ||
^ |||| | ^ |||| | ||
|**sum** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | |**sum** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>) ^^^^ | ||
- | ^ |Сумма собранных значений за указанный период вычисления. |**сек** или **#кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений: float, int\\ \\ Параметр ''сдвиг_времени'' поддерживается начиная с Zabbix 1.8.2. | | + | ^ |Сумма собранных значений за указанный период вычисления. |**сек** или **#кол-во** - максимальный период<sup>**[[#примечания|1]]**</sup> вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений: float, int\\ \\Функция начинает вычисляться с получением первого значения.\\ \\ Параметр ''сдвиг_времени'' поддерживается начиная с Zabbix 1.8.2. | |
^ |||| | ^ |||| | ||
|**time** ^^^^ | |**time** ^^^^ | ||
^ |Текущее время в формате ЧЧММСС. | |Поддерживаемые типы значений: //любые//\\ \\ Пример возвращаемого значения: 123055 | | ^ |Текущее время в формате ЧЧММСС. | |Поддерживаемые типы значений: //любые//\\ \\ Пример возвращаемого значения: 123055 | | ||
+ | ^ |||| | ||
+ | |**timeleft** (сек<nowiki>|</nowiki>#кол-во,<сдвиг_времени>,порог,<аппроксимация>) ^^^^ | ||
+ | ^ |Требуемое время в секундах элементу данных для достижения заданного порога. |**сек** или **#кол-во** - максимальный период<sup>**[[#примечания|1]]**</sup> вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - см. функцию avg()\\ **порог** - значение, которое необходимо достичь\\ **аппроксимация** (опционально) - см. функцию forecast() |Поддерживаемые типы значений: float, int\\ \\ Если возвращаемое значение больше чем 999999999999.9999, возвращаемое значение обрезается до 999999999999.9999.\\ \\ Возвращает 999999999999.9999, если порог нельзя достичь.\\ \\ Становится не поддерживаемым только, если в выражении имеется злоупотребление (ошибочный тип элемента данных, некорректные параметры), в противном случае возвращает -1 в случае ошибок.\\ \\ Примеры:\\ => timeleft(#10,,0) -> время до тех пор, когда значение элемента данных достигнет нуля на основе последних 10 значений\\ => timeleft(1h,,100) -> время до тех пор, когда значение элемента данных достигнет 100 на основе данных последнего часа\\ => timeleft(1h,1d,0) -> время до тех пор, когда значение элемента данных достигнет 0 на основе одного часа днем ранее\\ => timeleft(1h,,200,polynomial2) -> время до тех пор, когда значение элемента данных достигнет 200 на основе данных последнего часа и предположения, что элемент данных ведет себя как квадратичный (вторая степень) полином\\ \\ Эта функция поддерживается начиная с Zabbix 3.0.0.\\ [[:ru/manual/config/triggers/suffixes|Символы единиц измерения]] в параметре ''порог'' поддерживаются начиная с Zabbix 3.2.2.\\ Смотрите дополнительную информацию о [[:ru/manual/config/triggers/prediction|функциях предсказания в триггерах]]. | | ||
+ | |||
+ | <note warning>Важные заметки:\\ **1)** Все функции возвращают только числовые значения. Сравнение строк не поддерживается.\\ **2)** Некоторые функции нельзя использовать для нечисловых значений!\\ **3)** Строковые аргументы должны быть заключены в двойные кавычки. В противном случае, они могут быть неправильно интерпретированы.\\ **4)** У всех функций триггеров параметры **сек** и **сдвиг_времени** должны быть целым числом с опциональным [[ru:manual:config:triggers:suffixes#выражения_триггера|суффиксом единицы времени]] и это требование не имеет абсолютно ничего общего с типом данных элемента данных.</note> | ||
+ | |||
+ | == Примечания == | ||
+ | |||
+ | <sup>**1**</sup> Функция начинает вычисляться с момента получения первого значения (если не пользуется ''сдвиг_времени'' параметр). | ||
+ | |||
+ | === Функции и неподдерживаемые элементы данных === | ||
- | <note important>1) Все функции возвращают только числовые значения. Например, сравнение строк не поддерживается.\\ 2) Некоторые функции нельзя использовать для нечисловых параметров!\\ 3) Строковые аргументы должны быть заключены в двойные кавычки. В противном случае, они могут быть неправильно интерпретированы. </note> | + | Начиная с Zabbix 3.2, функции **nodata()**, **date()**, **dayofmonth()**, **dayofweek()**, **now()** и **time()** вычисляются также и для неподдерживаемых элементов данных. Другие функции требуют чтобы элементы данных на которые они ссылаются были поддерживаемом состоянии. |