7 Unit symbols
Overview
Having to use some large numbers, for example '86400' to represent the number of seconds in one day, is both difficult and error-prone. This is why you can use some appropriate unit symbols (or suffixes) to simplify Zabbix trigger expressions and item keys.
Instead of '86400' for the number of seconds you can simply enter '1d'. Suffixes function as multipliers.
Time suffixes
For time you can use:
- s - seconds (when used, works the same as the raw value)
- m - minutes
- h - hours
- d - days
- w - weeks
- M - months (trend functions only)
- y - years (trend functions only)
Time suffixes support only integer numbers (so '1h' is supported, '1,5h' or '1.5h' are not; use '90m' instead).
Time suffixes are supported in:
- trigger expression constants and function parameters
- constants of calculated item formulas
- parameters of the zabbix[queue,<from>,<to>] internal item
- time period parameter of aggregate calculations
- item configuration ('Update interval', 'Custom intervals', 'History storage period' and 'Trend storage period' fields)
- item prototype configuration ('Update interval', 'Custom intervals', 'History storage period' and 'Trend storage period' fields)
- low-level discovery rule configuration ('Update interval', 'Custom intervals', 'Keep lost resources' fields)
- network discovery configuration ('Update interval' field)
- web scenario configuration ('Update interval', 'Timeout' fields)
- action operation configuration ('Default operation step duration', 'Step duration' fields)
- user profile settings ('Auto-logout', 'Refresh', 'Message timeout' fields)
- graph widget of Monitoring → Dashboard ('Time shift' field)
- Administration → General → Housekeeping (storage period fields)
- Administration → General → Trigger displaying options ('Display OK triggers for', 'On status change triggers blink for' fields)
- Administration → General → Other ('Login blocking interval' field and fields related to communication with Zabbix server)
- Zabbix server
ha_set_failover_delay=delayruntime control option
Memory suffixes
Memory size suffixes are supported in:
- trigger expression constants and function parameters
- constants of calculated item formulas
For memory size you can use:
- K - kilobyte
- M - megabyte
- G - gigabyte
- T - terabyte
Item value suffixes
Suffixes can also be used to display numeric item values in a human-readable format.
To enable this, use one of the following suffixes in the Units field when configuring an item:
- B - bytes
- Bps - bytes per second
- s - seconds, displayed using up to three largest non-zero time units
- uptime - elapsed time in hh:mm:ss or N days, hh:mm:ss
- unixtime - Unix timestamp, formatted as yyyy.mm.dd hh:mm:ss
The following additional rules apply to how these suffixes are interpreted and displayed:
- For B and Bps, Zabbix uses base-2 conversion (1K = 1024B), following the JEDEC standard.
- For other units (such as Hz, W, etc.), Zabbix uses base-10 conversion (1K = 1000).
- For s (seconds):
- The format includes yyy mmm ddd hhh mmm sss ms; only up to three largest non-zero time units are displayed (e.g., 1M 10d 4h).
- If a unit is zero and between two non-zero units, it is omitted (e.g., 10d 56m instead of 10d 0h 56m).
When Units are used, the following multiplier suffixes are automatically applied to item values:
- K, M, G, T - kilo, mega, giga, tera
- P, E, Z, Y - peta, exa, zetta, yotta (these are applied in frontend only)
Usage examples
By using some appropriate suffixes you can write trigger expressions that are easier to understand and maintain, for example these expressions:
last(/host/system.uptime)<86400s
avg(/host/system.cpu.load,600s)<10
last(/host/vm.memory.size[available])<20971520
could be changed to:
last(/host/system.uptime)<1d
avg(/host/system.cpu.load,10m)<10
last(/host/vm.memory.size[available])<20M
Item values can also be converted, for example:
1 B → 1 B
1024 B → 1 KB
1536 B → 1.5 KB
881764 B → 881.76 KB
0.0000155 s → 0.016ms
3470400 s → 1M 10d 4h
2606400 s → 1M 4h
2592000 s → 1M
2592001 s → 1M
17764 uptime → 04:56:04
86400 uptime → 1 day, 00:00:00
881764 uptime → 10 days, 04:56:04
32417764 uptime → 375 days, 04:56:04
881764 unixtime → 1970-01-11 04:56:04 AM
17764 Hz → 17.76 KHz
86400 Hz → 86.4 KHz
881764 Hz → 881.76 KHz
32417764 Hz → 32.42 MHz
Preventing unit conversion
By default, specifying a unit for an item results in a multiplier prefix being added - for example, an incoming value '2048' with unit 'B' would be displayed as '2KB' by the frontend (for more details, see Units in item configuration).
To prevent a unit from conversion, use the ! prefix, for example,
!B. To better understand how the conversion works with and without the
exclamation mark, see the following examples of values and units:
1024 !B → 1024 B
1024 B → 1 KB
61 !s → 61 s
61 s → 1m 1s
0 !uptime → 0 uptime
0 uptime → 00:00:00
0 !! → 0 !
0 ! → 0
Before Zabbix 4.0, there was a hardcoded unit stoplist
consisting of ms, rpm, RPM, %. This stoplist has been
deprecated, thus the correct way to prevent converting such units is
!ms, !rpm, !RPM, !%.