Skip to end of metadata
Go to start of metadata

Overview

Device agent alerts provide a mechanism for system operators to configure device agents to publish event notifications under certain circumstances that may occur spontaneously that the operator should be made aware of in a timely manner. Examples include data streams exceeding some validity ranges, loss of device communications or lack of expected data sampling in an auto streaming device. This page exists to document the parameterization and function of these alerts so that proper user documentation and user interface designs may be constructed. Table 1 shows the types of alerts possible and their function in the system.

Alert Type Purpose of Notification Trigger Mechanism Clear Mechanism
Interval Alert Data stream out of range Data is tested against user defined bounds Data returns to valid range
Late Data Alert Expected data has not arrived Data arrival timer expired Data arrives
State Alert Unexpected state change (e.g. loss of comms) A named state change has occurred A named clear state change has occurred
Command Error Alert Unexpected error on agent command (e.g. failure to establish comms) A named agent command has returned an error A named command has succeeded or a named state change has occured
RSN Alert Alert notification from RSN element has arrived The RSN OMS software has pushed an alert TBD OMS-CI ICD

Table 1. OOINET device agent alert types.

Interval Alerts

The interval alert logic tests individual data stream elements against simple one- or two-sided inequality expressions with no filtering or memory, strictly time step by time step. If we notate lower and upper thresholds as Tlower and Tupper, respectively, then a typical two sided interval specifies that data should normally fall in a range given by

Tlower <= x <= Tupper

When this inequality expression is violated, then the alert is triggered and an event is published.

The above example is one of a multitude of possible parameterizations of useful range boundaries. For example, we may only be interested in an upper or lower bound, or we may want to specify a strict greater-than or less-than threshold rather than including the equality in the valid range. Under these circumstances, there are 23 = 8 possibilities we can enumerate

Type Meaning Expression Metaparameters Specified Threshold Parameters Specified
1 Strictly greater than Tlower < x OPlower Tlower
2 Greater than or equal Tlower <= x OPlower Tlower
3 Strictly less than x < Tupper OPupper Tupper
4 Less than or equal x <= Tupper OPupper Tupper
5 Strictly between Tlower < x < Tupper OPlower,OPupper Tlower,Tupper
6 Strictly less than and greater than or equal Tlower <= x < Tupper OPlower,OPupper Tlower,Tupper
7 Less than or equal and strictly greater than Tlower < x < =Tupper OPlower,OPupper Tlower,Tupper
8 Less than or equal and greater than or equal Tlower <= x <= Tupper OPlower,OPupper Tlower,Tupper

So we can capture all of the above and parameterize the general case of an interval expression like so

Tlower OPlower x OPupper Tupper

In this way, any of the above alert expressions can be chosen by selecting

OPlower, OPupper one of { <,<=,None }

and specifying Tlower, Tupper where an inequality operator is specified (i.e. is not None).

This is how the interval alert configuration is currently implemented. The two OP metaparameters are specified and define which type of expression is being used, and the appropriate threshold parameters are supplied and used in evaluating the expression. A user interface wizard for setting such parameters in a form-based widget might look like Figure 1., below. More sophisticated UI widgets can easily be imagined, such as draggable threshold lines across a data stream visualization.

Figure 1. Example form based UI widget for entering interval alert parameters.

Alternative Parameterizations

There are other ways of parameterizing this alert, and they could be implemented at the UI level or at the native alert class level. For example, we could choose to just specify the interval type as 8-valued enum with the above types.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.