· Aug 17, 2021

Interoperability Alerts - routing and aggregating

Alerts are automatic notifications triggered by specified events or thresholds being exceeded.

InterSystems Documentation

I have a Business Service connected to a machine with ~100 sensors. BS receives sensor values once a second.

Several conditions determine if a Business Service should raise an alert (it's a list of: sensor id > threshold).

I have three questions:

  1.  Should I write these conditions as a business rule and call this rule from the Business Service, and if the rule returns 1 call SendAlert? Or is there some other way to do that?
  2. Business Rule returns a reason for the rule evaluation result but is it possible to return all reasons (i.e., Sensor001 > 100 and Sensor017 < 1) and not only the first one?
  3. Is it possible to group alerts, for example, to get all alerts arrived in a minute, combine them into one message and send that?
Product version: IRIS 2021.1
Discussion (2)1
Log in or sign up to continue

Hey Eduard.

For question 3 - you could technically group them using managed alerts, as there is a function you can include in the router that is supposed to not raise an alert but instead update an existing managed alert (IsRecentManagedAlert) but this would mean getting alerted on the first message.

However, I have found this to be a bit inconsistent as it relies on a match on the AlertText and SourceConfigName within a user defined timeframe. Where this catches me out is when the alert text contains something like a timestamp, as this makes it unique so a new alert is raised anyway.

Alternatively, you could create a function that writes the alerts to an internal table, and then poll that table every x minutes to generate a single detailed alert message?