Zabbix Documentation 2.2

2.23.03.4In development:4.0Unsupported versions:1.82.02.43.2

User Tools

Site Tools


manual:appendix:triggers:functions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
manual:appendix:triggers:functions [2015/10/26 14:22]
richlv clarify that band() accepts and returns decimals, add a couple of examples
manual:appendix:triggers:functions [2018/04/17 12:58] (current)
natalja.cernohajeva <Note important> completed with item 4 (sec and time_shift description)
Line 6: Line 6:
 ^ ^  **Description** ​ ^  **Parameters** ​ ^  **Comments** ​ ^ ^ ^  **Description** ​ ^  **Parameters** ​ ^  **Comments** ​ ^
 |**abschange** ​ ^^^^ |**abschange** ​ ^^^^
-^ |The amount of absolute difference between last and previous values. ​ |  |Supported value types: float, int, str, text, log\\ \\ For example:\\ (previous value/last value=abschange)\\ 1/5=4\\ 3/1=2\\ 0/-2.5=2.5\\ \\ For strings returns:\\ 0 - values are equal\\ 1 - values differ ​ |+^ |The amount of absolute difference between last and previous values. ​ |  |Supported value types: float, int, str, text, log\\ \\ For example:\\ (previous value;last value=abschange)\\ 1;5=4\\ 3;1=2\\ 0;-2.5=2.5\\ \\ For strings returns:\\ 0 - values are equal\\ 1 - values differ ​ |
 ^ |||| ^ ||||
 |**avg** (sec<​nowiki>​|</​nowiki>#​num,<​time_shift>​) ​ ^^^^ |**avg** (sec<​nowiki>​|</​nowiki>#​num,<​time_shift>​) ​ ^^^^
Line 15: Line 15:
 ^ |||| ^ ||||
 |**change** ​ ^^^^ |**change** ​ ^^^^
-^ |The amount of difference between last and previous values. ​ |  |Supported value types: float, int, str, text, log\\ \\ For example:\\ (previous value/last value=change)\\ 1/5=+4\\ 3/1=-2\\ 0/-2.5=-2.5\\ \\ For strings returns:\\ 0 - values are equal\\ 1 - values differ ​ |+^ |The amount of difference between last and previous values. ​ |  |Supported value types: float, int, str, text, log\\ \\ For example:\\ (previous value;last value=change)\\ 1;5=+4\\ 3;1=-2\\ 0;-2.5=-2.5\\ \\ For strings returns:\\ 0 - values are equal\\ 1 - values differ ​ |
 ^ |||| ^ ||||
 |**count** (sec<​nowiki>​|</​nowiki>#​num,<​pattern>,<​operator>,<​time_shift>​) ​ ^^^^ |**count** (sec<​nowiki>​|</​nowiki>#​num,<​pattern>,<​operator>,<​time_shift>​) ​ ^^^^
-^ |Number of values within the defined evaluation period. ​ |**sec** or **#num** - evaluation period in seconds or in latest collected values (preceded by a hash mark)\\ **pattern** (optional) - required pattern ​(integer items - exact match; float items - match within 0.000001)\\ **operator** (optional)\\ \\ Supported ''​operators'':​\\ //eq// - equal\\ //ne// - not equal\\ //gt// - greater\\ //ge// - greater or equal\\ //lt// - less\\ //le// - less or equal\\ //like// - matches if contains pattern (case-sensitive)\\ //band// - bitwise AND (supported since Zabbix 2.2.0).\\ \\ Note that:\\ //eq// (default), //ne//, //gt//, //ge//, //lt//, //le//, //band// are supported for integer items\\ //eq// (default), //ne//, //gt//, //ge//, //lt//, //le// are supported for float items\\ //like// (default), //eq//, //ne// are supported for string, text and log items\\ \\ **time_shift** (optional) - see avg()  |Supported value types: float, ​intstr, text, log\\ \\ With //band// as third parameter, the second parameter can be specified as two numbers, separated by  '/':​ **number_to_compare_with/​mask**. count() calculates "​bitwise AND" from the value and the //mask// and compares the result to //​number_to_compare_with//​. If the result of "​bitwise AND" is equal to //​number_to_compare_with//,​ the value is counted.\\ If //​number_to_compare_with//​ and //mask// are equal, only the //mask// need be specified (without '/'​).\\ \\ Examples:\\ => count(600) -> number of values for last 10 minutes\\ => count(600,​12) -> number of values for last 10 minutes that equal '​12'​\\ => %%count(600,​12,​"gt")%% -> number of values for last 10 minutes that are over '​12'​\\ => %%count(#​10,​12,​"gt")%% -> number of values within last 10 values that are over '​12'​\\ => %%count(600,​12,​"gt",86400)%% -> number of values for preceding 10 minutes up to 24 hours ago that were over '​12'​\\ => %%count(600,​6/​7,​"band")%% -> number of values for last 10 minutes having '​110'​ (in binary) in the 3 least significant bits.\\ => count(600,,,​86400) -> number of values for preceding 10 minutes up to 24 hours ago\\ \\ The ''#​num''​ parameter is supported since Zabbix 1.6.1.\\ The ''​time_shift''​ parameter and string operators are supported since Zabbix 1.8.2. ​ |+^ |Number of values within the defined evaluation period. ​ |**sec** or **#num** - evaluation period in seconds or in latest collected values (preceded by a hash mark)\\ **pattern** (optional) - required pattern\\ \\ **operator** (optional)\\ \\ Supported ''​operators'':​\\ //eq// - equal\\ //ne// - not equal\\ //gt// - greater\\ //ge// - greater or equal\\ //lt// - less\\ //le// - less or equal\\ //like// - matches if contains pattern (case-sensitive)\\ //band// - bitwise AND (supported since Zabbix 2.2.0).\\ \\ Note that:\\ //eq// (default), //ne//, //gt//, //ge//, //lt//, //le//, //band// are supported for integer items\\ //eq// (default), //ne//, //gt//, //ge//, //lt//, //le// are supported for float items\\ //like// (default), //eq//, //ne// are supported for string, text and log items\\ \\ **time_shift** (optional) - see avg()  |Supported value types: float, ​integerstring, text, log\\ Float items match with the precision of 0.000001.\\ \\ With //band// as third parameter, the second parameter can be specified as two numbers, separated by  '/':​ **number_to_compare_with/​mask**. count() calculates "​bitwise AND" from the value and the //mask// and compares the result to //​number_to_compare_with//​. If the result of "​bitwise AND" is equal to //​number_to_compare_with//,​ the value is counted.\\ If //​number_to_compare_with//​ and //mask// are equal, only the //mask// need be specified (without '/'​).\\ \\ Examples:\\ => count(600) -> number of values for last 10 minutes\\ => %%count(10m,"​error",​eq)%% -> number of values for last 10 minutes that equal '​error'​\\ => count(600,​12) -> number of values for last 10 minutes that equal '​12'​\\ => %%count(600,​12,​gt)%% -> number of values for last 10 minutes that are over '​12'​\\ => %%count(#​10,​12,​gt)%% -> number of values within last 10 values that are over '​12'​\\ => %%count(600,​12,​gt,​86400)%% -> number of values for preceding 10 minutes up to 24 hours ago that were over '​12'​\\ => %%count(600,​6/​7,​band)%% -> number of values for last 10 minutes having '​110'​ (in binary) in the 3 least significant bits.\\ => count(600,,,​86400) -> number of values for preceding 10 minutes up to 24 hours ago\\ \\ The ''#​num''​ parameter is supported since Zabbix 1.6.1.\\ The ''​time_shift''​ parameter and string operators are supported since Zabbix 1.8.2. ​ |
 ^ |||| ^ ||||
 |**date** ​ ^^^^ |**date** ​ ^^^^
Line 36: Line 36:
 ^ |||| ^ ||||
 |**fuzzytime** (sec) ^^^^ |**fuzzytime** (sec) ^^^^
-^ |Checking ​if system local time is in sync with Zabbix server time.  |**sec** - seconds ​ |Supported value types: float, int\\ \\ Returns ​'​1' ​if the timestamp from item value does not differ from Zabbix server ​time for more than N seconds, 0 - otherwise. Usually used with system.localtime to check that local time is in sync with local time of Zabbix server. ​ |+^ |Checking ​how much an item timestamp value differs from the Zabbix server time.  |**sec** - seconds ​ |Supported value types: float, int\\ \\ Returns:\\ 0 - if difference between ​item timestamp ​value and Zabbix server ​timestamp is over T seconds\\ 1 - otherwise.\\ \\ Usually used with system.localtime to check that local time is in sync with local time of Zabbix server.\\ Can be used also with vfs.file.time[/​path/​file,​modify] key to check that file didn't get updates for long time.\\ \\ Example:\\ => fuzzytime(60)=0 -> detect a problem if time difference is over 60 seconds ​ |
 ^ |||| ^ ||||
 |**iregexp** (pattern,<​sec<​nowiki>​|</​nowiki>#​num>​) ​ ^^^^ |**iregexp** (pattern,<​sec<​nowiki>​|</​nowiki>#​num>​) ​ ^^^^
Line 60: Line 60:
 ^ |||| ^ ||||
 |**nodata** (sec)  ^^^^ |**nodata** (sec)  ^^^^
-^ |Checking for no data received. ​ |**sec** - evaluation period in seconds. The period should not be less than 30 seconds. ​ |Supported value types: //any//\\ \\ Returns:\\ 1 - if no data received during the defined period of time\\ 0 - otherwise\\ \\ Note that this function will display an error if, within the period of the 1st parameter:​\\ - there'​s no data and Zabbix server was restarted\\ - there'​s no data and maintenance was completed\\ - there'​s no data and the item was added or re-enabled ​ |+^ |Checking for no data received. ​ |**sec** - evaluation period in seconds. The period should not be less than 30 seconds. ​ |Supported value types: //any//\\ \\ Returns:\\ 1 - if no data received during the defined period of time\\ 0 - otherwise\\ \\ Note that this function will display an error if, within the period of the 1st parameter:​\\ - there'​s no data and Zabbix server was restarted\\ - there'​s no data and maintenance was completed\\ - there'​s no data and the item was added or re-enabled\\ Errors are displayed in the //Info// column in trigger [[:​manual/​web_interface/​frontend_sections/​configuration/​hosts/​triggers|configuration]]. ​ |
 ^ |||| ^ ||||
 |**now** ​ ^^^^ |**now** ​ ^^^^
Line 69: Line 69:
 ^ |||| ^ ||||
 |**regexp** (pattern,<​sec<​nowiki>​|</​nowiki>#​num>​) ​ ^^^^ |**regexp** (pattern,<​sec<​nowiki>​|</​nowiki>#​num>​) ​ ^^^^
-^ |Checking if the latest (most recent) value matches regular expression. ​ |**pattern** - regular expression, [[http://​en.wikipedia.org/​wiki/​Regular_expression#​POSIX_Extended_Regular_Expressions|POSIX extended]] style.\\ **sec** or **#num** (optional) - evaluation period in seconds or in latest collected values (preceded by a hash mark). In this case, more than one value may be processed. ​ |Supported value types: str, text, log\\ \\ Returns:\\ 1 - found\\ 0 - otherwise\\ \\ This function is case-sensitive. ​ |+^ |Checking if the latest (most recent) value matches regular expression. ​ |**pattern** - regular expression, [[http://​en.wikipedia.org/​wiki/​Regular_expression#​POSIX_Extended_Regular_Expressions|POSIX extended]] style.\\ **sec** or **#num** (optional) - evaluation period in seconds or in latest collected values (preceded by a hash mark). In this case, more than one value may be processed. ​ |Supported value types: str, text, log\\ \\ Returns:\\ 1 - found\\ 0 - otherwise\\ \\ If more than one value is processed, '​1'​ is returned if there is at least one matching value.\\ \\ This function is case-sensitive. ​ |
 ^ |||| ^ ||||
 |**str** (pattern,<​sec<​nowiki>​|</​nowiki>#​num>​) ​ ^^^^ |**str** (pattern,<​sec<​nowiki>​|</​nowiki>#​num>​) ​ ^^^^
-^ |Finding a string in the latest (most recent) value. ​ |**pattern** - required string\\ **sec** or **#num** (optional) - evaluation period in seconds or in latest collected values (preceded by a hash mark). ​ In this case, more than one value may be processed. ​ |Supported value types: str, text, log\\ \\ Returns:\\ 1 - found\\ 0 - otherwise\\ \\ This function is case-sensitive. ​ |+^ |Finding a string in the latest (most recent) value. ​ |**pattern** - required string\\ **sec** or **#num** (optional) - evaluation period in seconds or in latest collected values (preceded by a hash mark). ​ In this case, more than one value may be processed. ​ |Supported value types: str, text, log\\ \\ Returns:\\ 1 - found\\ 0 - otherwise\\ \\ If more than one value is processed, '​1'​ is returned if there is at least one matching value.\\ \\ This function is case-sensitive. ​ |
 ^ |||| ^ ||||
 |**strlen** (sec<​nowiki>​|</​nowiki>#​num,<​time_shift>​) ​ ^^^^ |**strlen** (sec<​nowiki>​|</​nowiki>#​num,<​time_shift>​) ​ ^^^^
Line 83: Line 83:
 ^ |Current time in HHMMSS format. ​ |  |Supported value types: //any//\\ \\ Example of returned value: 123055 ​ | ^ |Current time in HHMMSS format. ​ |  |Supported value types: //any//\\ \\ Example of returned value: 123055 ​ |
  
-<note important>​1) All functions return numeric values only. Comparison to strings is not supported, for example.\\ 2) Some of the functions cannot be used for non-numeric parameters!\\ 3) String arguments should be double quoted. Otherwise, they might get misinterpreted. ​ </​note>​+<note important>​1) All functions return numeric values only. Comparison to strings is not supported, for example.\\ 2) Some of the functions cannot be used for non-numeric parameters!\\ 3) String arguments should be double quoted. Otherwise, they might get misinterpreted.\\ 4) For all trigger functions **sec** and **time_shift** must be an integer with an optional [[manual:​config:​triggers:​suffixes#​trigger_expressions|time unit suffix]] and has absolutely nothing to do with item's data type.  </​note>​