All functions listed here are supported in:
Some general notes on function parameters:
<
>
/host/key
and (sec#num)<:time shift>
parameters must never be quoted/host/key
is a common mandatory first parameter for the functions referencing the host item history(sec#num)<:time shift>
is a common second parameter for the functions referencing the host item history, where:
FUNCTION  

Description  Functionspecific parameters  Comments 
change (/host/key)  
The amount of difference between the previous and latest value.  Supported value types: float, int, str, text, log For strings returns: 0  values are equal 1  values differ Example: => change(/host/key)>10 Numeric difference will be calculated, as seen with these incoming example values ('previous' and 'latest' value = difference): '1' and '5' = +4 '3' and '1' = 2 '0' and '2.5' = 2.5 See also: abs for comparison 

changecount (/host/key,(sec#num)<:time shift>,<mode>)  
Number of changes between adjacent values within the defined evaluation period.  See common parameters. mode (optional; must be doublequoted) Supported modes :all  count all changes (default) dec  count decreases inc  count increases 
Supported value types: float, int, str, text, log For nonnumeric value types, mode parameter is ignored. Examples: => changecount(/host/key, 1w) → number of value changes for the last week until now => changecount(/host/key,#10,"inc") → number of value increases (relative to the adjacent value) among the last 10 values => changecount(/host/key,24h,"dec") → number of value decreases (relative to the adjacent value) for the last 24 hours until now 
count (/host/key,(sec#num)<:time shift>,<operator>,<pattern>)  
Number of values within the defined evaluation period.  See common parameters. operator (optional; must be doublequoted) Supported operators :eq  equal (default) ne  not equal gt  greater ge  greater or equal lt  less le  less or equal like  matches if contains pattern (casesensitive) bitand  bitwise AND regexp  casesensitive match of the regular expression given in pattern iregexp  caseinsensitive match of the regular expression given in pattern pattern (optional)  required pattern (string arguments must be doublequoted) 
Supported value types: float, integer, string, text, log Float items match with the precision of 2.22e16; if database is not upgraded the precision is 0.000001. With bitand as the third parameter, the fourth pattern 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 '/'). With regexp or iregexp as the third parameter, the fourth pattern parameter can be an ordinary or global (starting with '@') regular expression. In case of global regular expressions case sensitivity is inherited from global regular expression settings. For the purpose of regexp matching, float values will always be represented with 4 decimal digits after '.'. Also note that for large numbers difference in decimal (stored in database) and binary (used by Zabbix server) representation may affect the 4th decimal digit.Examples: => count(/host/key,10m) → number of values for the last 10 minutes until now => count(/host/key,10m,"like","error") → number of values for the last 10 minutes until now that contain 'error' => count(/host/key,10m,,12) → number of values for the last 10 minutes until now that equal '12' => count(/host/key,10m,"gt",12) → number of values for the last 10 minutes until now that are over '12' => count(/host/key,#10,"gt",12) → number of values within the last 10 values until now that are over '12' => count(/host/key,10m:now1d,"gt",12) → number of values between 24 hours and 10 minutes and 24 hours ago from now that were over '12' => count(/host/key,10m,"bitand","6/7") → number of values for the last 10 minutes until now having '110' (in binary) in the 3 least significant bits. => count(/host/key,10m:now1d) → number of values between 24 hours and 10 minutes and 24 hours ago from now 
countunique (/host/key,(sec#num)<:time shift>,<operator>,<pattern>)  
Number of unique values within the defined evaluation period.  See common parameters. operator (optional; must be doublequoted) Supported operators :eq  equal (default) ne  not equal gt  greater ge  greater or equal lt  less le  less or equal like  matches if contains pattern (casesensitive) bitand  bitwise AND regexp  casesensitive match of the regular expression given in pattern iregexp  caseinsensitive match of the regular expression given in pattern pattern (optional)  required pattern (string arguments must be doublequoted) 
Supported value types: float, integer, string, text, log Float items match with the precision of 2.22e16; if database is not upgraded the precision is 0.000001. With bitand as the third parameter, the fourth pattern 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 '/'). With regexp or iregexp as the third parameter, the fourth pattern parameter can be an ordinary or global (starting with '@') regular expression. In case of global regular expressions case sensitivity is inherited from global regular expression settings. For the purpose of regexp matching, float values will always be represented with 4 decimal digits after '.'. Also note that for large numbers difference in decimal (stored in database) and binary (used by Zabbix server) representation may affect the 4th decimal digit.Examples: => countunique(/host/key,10m) → number of unique values for the last 10 minutes until now => countunique(/host/key,10m,"like","error") → number of unique values for the last 10 minutes until now that contain 'error' => countunique(/host/key,10m,"gt",12) → number of unique values for the last 10 minutes until now that are over '12' => countunique(/host/key,#10,"gt",12) → number of unique values within the last 10 values until now that are over '12' => countunique(/host/key,10m:now1d,"gt",12) → number of unique values between 24 hours and 10 minutes and 24 hours ago from now that were over '12' => countunique(/host/key,10m,"bitand","6/7") → number of unique values for the last 10 minutes until now having '110' (in binary) in the 3 least significant bits. => countunique(/host/key,10m:now1d) → number of unique values between 24 hours and 10 minutes and 24 hours ago from now 
find (/host/key,<(sec#num)<:time shift>>,<operator>,<pattern>)  
Find a value match.  See common parameters. sec or #num (optional)  defaults to the latest value if not specified operator (optional; must be doublequoted) Supported operators :eq  equal (default) ne  not equal gt  greater ge  greater or equal lt  less le  less or equal like  value contains the string given in pattern (casesensitive)bitand  bitwise AND regexp  casesensitive match of the regular expression given in pattern iregexp  caseinsensitive match of the regular expression given in pattern pattern  required pattern (string arguments must be doublequoted); Perl Compatible Regular Expression (PCRE) regular expression if operator is regexp, iregexp. 
Supported value types: float, int, 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. With regexp or iregexp as the third parameter, the fourth pattern parameter can be an ordinary or global (starting with '@') regular expression. In case of global regular expressions case sensitivity is inherited from global regular expression settings.Example: => find(/host/key,10m,"like","error") → find a value that contains 'error' within the last 10 minutes until now 
first (/host/key,sec<:time shift>)  
The first (the oldest) value within the defined evaluation period.  See common parameters.  Supported value types: float, int, str, text, log Example: => first(/host/key,1h) → retrieve the oldest value within the last hour until now See also last(). 
fuzzytime (/host/key,sec)  
Checking how much the passive agent time differs from the Zabbix server/proxy time.  See commonparameters.  Supported value types: float, int Returns: 1  difference between the passive item value (as timestamp) and Zabbix server/proxy timestamp (clock of value collection) is less than or equal to T seconds 0  otherwise Usually used with the 'system.localtime' item to check that local time is in sync with the local time of Zabbix server. Note that 'system.localtime' must be configured as a passive check. 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(/host/key,60s)=0 → detect a problem if the time difference is over 60 seconds This function is not recommended for use in complex trigger expressions (with multiple items involved), because it may cause unexpected results (time difference will be measured with the most recent metric), e.g. in fuzzytime(/Host/system.localtime,60s)=0 or last(/Host/trap)<>0 
last (/host/key,<#num<:time shift>>)  
The most recent value.  See common parameters. #num (optional)  the Nth most recent value 
Supported value types: float, int, str, text, log Take note that a hashtagged time period (#N) works differently here than with many other functions. For example: last() is always equal to last(#1) last(#3)  third most recent value (not three latest values) Zabbix does not guarantee the exact order of values if more than two values exist within one second in history. Example: => last(/host/key) → retrieve the last value => last(/host/key,#2) → retrieve the previous value => last(/host/key,#1) <> last(/host/key,#2) → the last and previous values differ See also first(). 
logeventid (/host/key,<#num<:time shift>>,<pattern>)  
Checking if event ID of the last log entry matches a regular expression.  See common parameters. #num (optional)  the Nth most recent value pattern (optional)  regular expression describing the required pattern, Perl Compatible Regular Expression (PCRE) style (string arguments must be doublequoted). 
Supported value types: log Returns: 0  does not match 1  matches 
logseverity (/host/key,<#num<:time shift>>)  
Log severity of the last log entry.  See common parameters. #num (optional)  the Nth most recent value 
Supported value types: log Returns: 0  default severity N  severity (integer, useful for Windows event logs: 1  Information, 2  Warning, 4  Error, 7  Failure Audit, 8  Success Audit, 9  Critical, 10  Verbose). Zabbix takes log severity from Information field of Windows event log. 
logsource (/host/key,<#num<:time shift>>,<pattern>)  
Checking if log source of the last log entry matches a regular expression.  See common parameters. #num (optional)  the Nth most recent value pattern (optional)  regular expression describing the required pattern, Perl Compatible Regular Expression (PCRE) style (string arguments must be doublequoted). 
Supported value types: log Returns: 0  does not match 1  matches Normally used for Windows event logs. For example, logsource("VMware Server"). 
monodec (/host/key,(sec#num)<:time shift>,<mode>)  
Check if there has been a monotonous decrease in values.  See common parameters. mode (must be doublequoted)  weak (every value is smaller or the same as the previous one; default) or strict (every value has decreased) 
Supported value types: int Returns 1 if all elements in the time period continuously decrease, 0 otherwise. Example: => monodec(/Host1/system.swap.size[all,free],60s) + monodec(/Host2/system.swap.size[all,free],60s) + monodec(/Host3/system.swap.size[all,free],60s)  calculate in how many hosts there has been a decrease in free swap size 
monoinc (/host/key,(sec#num)<:time shift>,<mode>)  
Check if there has been a monotonous increase in values.  See common parameters. mode (must be doublequoted)  weak (every value is bigger or the same as the previous one; default) or strict (every value has increased) 
Supported value types: int Returns 1 if all elements in the time period continuously increase, 0 otherwise. Example: => monoinc(/Host1/system.localtime,#3,"strict")=0  check if system local time has been increasing consistently 
nodata (/host/key,sec,<mode>)  
Checking for no data received.  See common parameters. sec period should not be less than 30 seconds because the history syncer process calculates this function only every 30 seconds. nodata(/host/key,0) is disallowed. mode  if set to strict (doublequoted), this function will be insensitive to proxy availability (see comments for details). 
All value types are supported. Returns: 1  if no data received during the defined period of time 0  otherwise Since Zabbix 5.0, the 'nodata' triggers monitored by proxy are, by default, sensitive to proxy availability  if proxy becomes unavailable, the 'nodata' triggers will not fire immediately after a restored connection, but will skip the data for the delayed period. Note that for passive proxies suppression is activated if connection is restored more than 15 seconds and no less than 2 & ProxyUpdateFrequency seconds later. For active proxies suppression is activated if connection is restored more than 15 seconds later. To turn off sensitiveness to proxy availability, use the third parameter, e.g.: nodata(/host/key,5m,"strict"); in this case the function will work the same as before 5.0.0 and fire as soon as the evaluation period (five minutes) without data has past. 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 reenabled Errors are displayed in the Info column in trigger configuration. This function may not work properly if there are time differences between Zabbix server, proxy and agent. See also: Time synchronization requirement. 
percentile (/host/key,(sec#num)<:time shift>,percentage)  
Pth percentile of a period, where P (percentage) is specified by the third parameter.  See common parameters. percentage  a floatingpoint number between 0 and 100 (inclusive) with up to 4 digits after the decimal point 
Supported value types: float, int 
rate (/host/key,sec<:time shift>)  
Persecond average rate of the increase in a monotonically increasing counter within the defined time period.  See common parameters.  Supported value types: float, int Functionally corresponds to 'rate' of PromQL. Example: => rate(/host/key,30s) → If the monotonic increase over 30 seconds is 20, this function will return 0.67. 