huh, many issues were analyzed, ZBXNEXT-954 is similar to this, but I still decided to create this one.
Documentation page (search the "units" word): http://www.zabbix.com/documentation/1.8/manual/web_interface/configuration
"Since Zabbix 1.8.2, default multiplier is 1000, and special processing is used for units B, where multiplier is 1024.
For example, if units are set to B, Zabbix will display:
1 as 1B
1024 as 1KB
1536 as 1.5KB"
On the page related to suffixes:
no any information what will be used for multiplier - 1000 or 1024.
On first step our item "test.item" doesn't have specified "Unit", i.e. it's empty. See on top of attached picture.
For three graphs items values are 1024, 1024^2, 1024^3
As you see a trigger line doesn't correspond to the Y axis scale.
On next step item has unit "B" specified. See bottom of attached picture.
Testing server side:
For trigger expression "host:test.item.last(0)}<1G" a value 1073741823 is PROBLEM event but for the value 1073741824 is OK event.
The same for "M" 1048575 - PROBLEM, 1048576 - OK and "K" 1023 - PROBLEM, 1024 - OK
So suffixes always are using the multiplier 1024 and it's some sort of inconsistency with the default multiplier 1000 for units.
Yes, server side: "./src/libs/zbxcommon/misc.c" function str2double() uses 1024 as multiplier.
Question: why default value for units has been changed to 1000 but for suffixes was not?
I don't know what would be better to do to improve the situation. Seems would be more consistent to change 1024 to the 1000 for suffixes, but it's not very good currently.
The best would be to change default multiplier to 1000 and perform the trigger calculation in more intelligent way.
For instance, if at least one item used in the trigger expression has specified unit as "B" then use multiplier 1024 for all suffices in expression. For all another cases use multiplier 1000.
What do you think?
Highly connected issue: ZBXNEXT-954