-
Change Request
-
Resolution: Unresolved
-
Major
-
None
-
2.4.2
Currently in Zabbix if you create a trigger on two (or more) items, the trigger is evaluated when each item last value is changed, even if both items change their value at the exact same time (using zabbix_sender), which makes it impossible to compare values of more items in triggers.
I uploaded an example. In the graph you can see two items which have a trigger on them which checks if the green item is greater or equal to the red one, if it is, it will send a notification. These items were updated in Zabbix at the exact same time which you can see from the database:
zabbix=> SELECT clock,value from history_uint where itemid = 98532 and clock > 1417042800 and value = 70; clock | value ------------+------- 1417060938 | 70 (1 row) zabbix=> SELECT clock,value from history_uint where itemid = 98522 and clock > 1417042800 and value = 65; clock | value ------------+------- 1417060938 | 65 (1 row)
As you can see clocks are the same, but Zabbix evaluated this item 2 times in 6 seconds:
- the first time it evaluated when the value of the green item changed to 65 (which triggered a notification in Problem state, since it didn't use a value 70 from the red item), but the old value, which was 64,
- after 6 seconds it evaluated the trigger again for value 70 of the red item, which then sent a notification with OK state.
What Zabbix should do is it should evaluate this trigger only one time for all items which receive a new value at the same time.