UDT Dynamic Roll-Up Calculation

Hi all, we have a very large ignition system configured that we use to monitor a large array of network infrastructure. Included in this is a large number of Cisco network switches in which we monitor their CPUs, memory, environmentals and the actual interfaces.

With regards to the interfaces one of the items we would like to monitor and add alarms for is when there is a detection of In and Out errors. We have been able to set this up on our UDT for interfaces and it appears to work however the main issue is that simply because of the number of interfaces we have it takes our already large system of 35k total alarms up to around 110k configured alarms :frowning: . This is ultimately causing issues with our alarm status table as the volume is just soo significant to process

As such, I am trying to come up with a better way to “Roll up” this alarming to significantly reduce the number of alarms configured. We don’t specifically need to know which interface on a switch is the issue but rather just if a given network switch is experiencing issues. My question is, for these in/out error counts we have created on an interface UDT, is there any dynamic/elegant way to instead sum these values in to a different single UDT structure and then just alarm on that one value? (hopefully the screenshot gives an idea of what I am trying to achieve)

It is important to note that from one switch to the next, the number of interfaces can vary and they aren’t necessarily in a perfect numerical order (e.g. interface1 to interface10)

If we can find a nice way to achieve this, I hope to be able to reduce the additional alarm count from the more than 60k to a mere couple thousand new alarms.

This is a feature request we have percolating, but haven't yet implemented: Tag Alarm Aggregation | Voters | Inductive Automation

There's some more discussion in this thread:

Thanks for that, will have a look through this for some ideas and to upvote.
Ideally I am hoping to be able to rather than roll up / aggregate the alarm, instead aggregate the value and only have a single alarm on the rolled up value. This should then ultimately reduce the total number of alarms required. Hopefully I make sense :slight_smile:

Also worth mentioning whilst I know this could be achieved using runScript, ideally trying to avoid going down that path as I know can quickly affect performance…