[ZBXNEXT-5264] new preprocessing type - "Discard with heartbeat", ignoring value changes Created: 2019 Jun 08  Updated: 2024 Sep 10

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: None
Affects Version/s: 4.2.2
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: Oleksii Zagorskyi Assignee: Unassigned
Resolution: Unresolved Votes: 4
Labels: newpreprocessing, preprocessing
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Screenshot from 2024-09-10 09-40-47.png    
Issue Links:
Duplicate
duplicates ZBXNEXT-6941 Introduce rate-limiting for trapper/S... Open

 Description   

Purpose is to use single Master item for really polling data, which can be used for LLD and for polling data for discovered items.

For example on a video https://www.youtube.com/watch?v=XcztWztGjZA the expert uses a single Master item with update interval 5 seconds for both: perform LLD and as a Master item for discovered items.

The small update interval in 5 seconds (or for example 60 seconds) is fine for discovered items, but it's bad for LLD rule, as it's too often.

Of course it's possible to create one more Master really polling data item, to separate polling and discovering intervals. But that's not an elegant way .

 

What if single Master item could have small update interval, but based on it, we could create a dependent item with preprocessing step "Discard with heartbeat" and a value with, say, 1 hour?
And then use this dependent less-frequently-updated item as another Master for LLD rule?

It looks to me like a quite smart approach.
We just need the new "Discard with heartbeat" step.

I think it's easy to implement - copy an existing function for "Discard unchanged with heartbeat" and simplify it a bit.

 



 Comments   
Comment by Oleksii Zagorskyi [ 2019 Dec 10 ]

Looking to new modular templates, for example in "Template Module Linux block devices by Zabbix agent" we see 2 processioning steps on a LLD rule "Block devices discovery" (dependent type):
1. JSONPath "$.lld"
2. "Discard unchanged with heartbeat" in 1h

So, while master is polled each 1 minute, LLD engine actually is not stressed by unneeded work too often.
In results it's the same what I wanted to reach by current ZBXNEXT.

But, to achieve this, we would need to trim out possible "runtime" data in received JSON of master item. And in current case it's luckily easy to do it by simple preprocessing step JSONPath.

But in my original case I would need to write some JavaScript preprocessing step, which would not be so easy and it would make additional load by frequent execution of JavaScript step.

So, this ZBXNEXT is still makes sense and is valid .

Comment by Sergey Simonenko (Inactive) [ 2021 Jul 08 ]

It would be also very nice to have this as a 'rate-limiting'.

I. e., to allow the user to define both the value count threshold and the units of time.

Comment by Dimitri Bellini [ 2022 May 27 ]

Hi DevTeam,
the "relative new" Discard preproc feature is very good but in most of the case create a "misunderstand" or "problem".
The BIG problem from my point of view is related to:

  • User perception: The graphs have dots without clearly understand that this item have a "discard option activeted"
  • Technical issue: The item will not fire the "Trigger process" until a change will happen during the collection. This is the most critical point from my point of view.

I would suggest to still preserve the "discard" preproc feature but please implement a more "smart" concept similar to "deduplication" concept.
What I mean is to still not save the values if there is no changes but Zabbix Server must still know the latest "value" and when we collect the latest value in RAM/Cache and using this Volatile information is able to evaluate the Trigger and maybe fill the Graphs.
Thanks so much

Comment by Dimitri Bellini [ 2024 Sep 10 ]

Hi ZabbixDevTeam,

today I discovered another strange beviour on all Cisco Template coming out-of-the-box for Zabbix 7.0.

For all the discoveries inside such templates the Devs introducing a new "PreProcessing Step" of "Discovery unchanged with heartbeat - 1h".

Why? Most of the discoveries are SNMP Walk Dependant items and they will not save nothing on the DB.

This "Preprocessing step" can generate a lot of missunderstanding for the Zabbix users and a bad User experience.

Please give me a feedback, thanks so much!

Generated at Wed Jul 16 10:26:54 EEST 2025 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.