-
Change Request
-
Resolution: Fixed
-
Minor
-
2.0.6
-
Server: RHEL 6.4 x86_64 with local mysql database
Note that I searched the issue tracker for more than an hour and couldn't find any similar reports (which really surprises me!). My apologies if this is a duplicate report and I just didn't find what it duplicates.
With the current trigger implementation, you can't use >= or <= in trigger expressions.
This causes problems when you want to have two separate triggers related to the value of some item. For example, let's say I want a warning if the ping loss is less than 50%, but I want an error if it's >= 50%. You can't actually do that with current triggers, so you end up
doing stuff like this:
trigger #1 expression: {devicename:icmppingloss[,,200,32,1200].last(0)}<50.1
trigger #2 expression: {devicename:icmppingloss[,,200,32,1200].last(0)}>50.0
(so there's overlap, and both triggers may fire if the item value is exactly 50.0)
Or, much worse, you do something like:
trigger #1 expression: {devicename:icmppingloss[,,200,32,1200].last(0)}<50.0
trigger #2 expression: {devicename:icmppingloss[,,200,32,1200].last(0)}>50.0
In which case neither trigger fires if there's exactly 50% packet loss.
This is even worse when you consider that sites might want to use user macros in their templates, so that the desired threshold might be {$PING_PACKET_LOSS} => 50.0 at the template level. The first case (the overlap) now becomes impossible, unless you define two macros, which is a pretty horrible workaround.
What's really needed is for both the trigger engine and the frontend expression builder to support both >= and <=, so that multiple trigger expressions can correctly handle ranges with no overlap and especially no gap.
- causes
-
ZBX-13742 It is possible to create a trigger with an invalid expression
- Closed