Hi Dojo,
I'm looking for guidance on implementing a more advanced alarm correlation scenario.
Currently, we have a setup where an alarm triggers a correlation rule, which then executes a script. The script sends an email or SMS (based on configuration) including alarm details (forwarded to script from correlation rule) and a dashboard report (email with dashboard report is sent from the code). This works fine.
However, we now have a new customer requirement:
- They want to receive individual notifications per alarm (e.g., per TV channel) as long as the number of alarms stays low.
- If more than 5 alarms occur within a 10 minute window, instead of receiving many individual notifications, they want:
- A single aggregated notification
- Containing a list of all affected channels
- And no individual emails/SMS for those alarms in that case
In short:
- < 5 alarms in 10 minutes -> send individual notifications
- 5 alarms in 10 minutes -> send one summary notification instead
I’ve explored correlation rule options (including time windows), but I’m not sure:
- How to track/count alarms within a rolling 10 minute window
- How to retrieve details of all correlated alarms (e.g., channel names) to include them in a single email
- Whether this logic can be fully handled within correlation rules, or if it requires additional scripting/state handling
Has anyone implemented something similar or can point me in the right direction?
Thanks in advance!
Hi Dario,
Unfortunately, I do not believe it is possible to achieve what you are after with the Correlation module alone.
Currently, correlation rules can collect events for a specified time window (e.g., 10 minutes) and are capable of determining how many base alarms are present via the count(*) | DataMiner Docs function, however, this is always a cumulative count and never a rolling window count.
For that, you will need to use either an element or a service, like Miguel suggests, to do the rolling counting, and then use something like the parameter | DataMiner Docs function
Feel free to create a feature suggestion to add support for this use case in DataMiner
Thanks, João. Feature request created!