-
Problem report
-
Resolution: Unresolved
-
Trivial
-
None
-
5.2.5
-
None
Steps to reproduce:
Create host: HOST
Create items:
Item1 - Type: Zabbix trapper;
Key: item1;
Type of information: Numeric(unsigned);
Item2 - Type: Calculated;
Key: item2;
Formula: last(item1);
Type of information: Numeric(unsigned);
Update interval: 1s
Create triggers:
Trigger1 -{HOST:item1.last()}=1
Trigger2 -{HOST:item2.last()}=1
Use zabbix_sender:
echo "HOST item1 0" | zabbix_sender -z <zabbix address> -i
timestamp: now (for me 1615548674)
echo "HOST item1 1615462274 1" | zabbix_sender -z <zabbix address> -T -i -
timestamp: now - 1 day (for me 1615462274)
Result (Problems window):
Trigger1 status - PROBLEM
Operation data - 0 (should be 1)
Trigger2 status OK
Latest data (window): item1 - 0; item2 - 0
Expected:
I think if Operation dat_a is 0, _Trigger status should be OK or if Trigger status is PROBLEM, Operation data should be 1.
According to this example function last() in Calculate items and last() in Trigger expression work differently. Trigger last() uses the last received data and last() in the Item's formula uses the last received data in time.
Why the work of functions is different?
Is it possible to make triggers also use the latest data in time when calculating last()?
In my opinion, the best choices in this case would be:
Trigger1 status OK
Trigger2 status OK