Alerts
Enterprise
RTView features a real-time alert engine
that enables management and operational personnel to monitor the health and
status of business operations. The alert
engine can monitor conditions and perform automated actions from any available
Enterprise RTView data source. Alert definitions can include thresholds,
severity, notification policies and automated actions, such as email, system
commands, performing a SQL statement or sending JMS messages. The
Enterprise
RTView alert engine can load any number of
alert definitions, and any number of customized dashboards can be created to
view alert status, filter alerts, use alerts as drill down navigation for
analysis and corrective action, or to interactively change alert status such as
alert acknowledgement.
To use alerts, you first build an
Alert Definition file, then configure the Alert data source to use this file.
Creating an Alert Definition File
An Alert Definition file is an Enterprise
RTView display (.rtv) file that contains your alert definition objects. To create an Alert Definition file, add
alert definition objects to a display in the Display Builder. The alert
definition objects are in the Alert tab of the Object Palette. For each alert
definition, you must assign a unique name in the alertName property, you
must setup the input data and you must enable the appropriate alert levels. You
may add multiple alert definitions to a single Alert Definition file. You may
also define multiple Alert Definition files.
There are two types of alert definition objects, Limits alerts and Discrete alerts.
Limits alerts allow you to compare your input value to a threshold and execute
the alert if your value goes above or below an acceptable range. Discrete alerts
allow you to compare the input value to up to three test values (one each for
low, medium and high alerts), and execute an alert if your input data equals one
of these values. The Discrete alert supports string, number and boolean
comparisons.
For both types of alert definition objects, there are properties such as
nonRepetitionTime and alertDelayTime that allow you finer control over when your
alert is executed. All of the properties for each alert type can be modified by
selecting the alert definition object and using the Object Property dialog.
When you have finished adding all of
your alert definition objects and configuring their properties, Save the
display (.rtv) file and add your
Alert Definition file to the
Alert data source
configuration.
Creating a Reusable
Alert Definition File
You can create a reusable Alert
Definition file using the Enterprise RTView substitution feature. When you name
the alert definition object (using the alertName
property), include a substitution string as the suffix. Use that same
substitution string for the input value in the data attachment. When you
subsequently add the Alert Definition file to the Alert data source
configuration, you then specify a substitution value.
To give an example, let us say that your sales
data is broken down by sales regions, and you need an alert for each. Instead of
manually creating an alert for each region, you can create one and reuse it as a
template for the others. First create a display containing an alert definition
object named salesAlert.$region, where salesAlert is the alert name and
$region is the substitution string. The data attachment for the input value also
uses the $region substitution string. Save the file as alert_config.rtv.
This is your Alert Definition file. You then add this Alert Definition file to
the Alert data source configuration multiple times (in our example, four times),
with $region set to a different value for each region:
alert_config.rtv $region:North
alert_config.rtv $region:South
alert_config.rtv $region:West
alert_config.rtv $region:East
You will get four copies of salesAlert with the
following names:
salesAlert.North
salesAlert.South
salesAlert.West
salesAlert.East
Alert Definition Objects
The properties for each alert definition object
are described below. All of the properties for each
alert type can be modified by
selecting the alert definition object and using the Object Property dialog.
Limits Alerts
Limits alerts allow you to compare your input
value to a threshold and execute the alert if your input data goes above or below an
acceptable range. Attach the value property to your input data if the data is scalar. If the
data is tabular, select the useTabularDataFlag and attach your input to
valueTable. The data attached to the valueTable property must contain two
columns, the first column must be an index column containing a unique value in
each row. The second column must contain numeric values to compare to the
thresholds. An alert will execute for each row in the table when the value goes
above or below the acceptable range.
This alert type supports four thresholds:
valueHighAlert, valueHighWarning, valueLowAlert and valueLowWarning. The
value and valueTable properties are compared
against the specified threshold values (scalar, tabular or list) and an alert is activated when threshold
values are exceeded.
When specifying a scalar
threshold value, value and
each row in the valueTable
will be compared against the scalar value.
When specifying a tabular threshold value, the input table
can contain one or two columns:
If the specified threshold table has one
column, the column must contain comparison values and should have the same
number of rows as the input table attached to the valueTable. Each row
in valueTable will be compared against values in the corresponding rows
of the specified threshold table. If valueTable has more rows than the
specified threshold table, these extra rows will be compared against the value
of the first row of the specified threshold table. The value property
will be compared to the first row of the specified threshold table.
If the specified threshold table has two columns, the first column must
contain indexes and the second column must contain comparison values. The
index value for each row in the input table attached to valueTable will
be used to lookup the corresponding comparison value from the specified
threshold table. If the index is not found in the specified threshold table,
no alert is activated. The value property cannot be compared against a
threshold table with two columns.
When specifying a list of threshold values, the
list can contain either index/comparison value pairs or just comparison values:
If the list only contains comparison values,
this should be a semicolon (;) delimited list of comparison values (e.g.:
80;90;100) with the same number of values as there are rows in the input table
attached to valueTable. Each row in valueTable will be compared
against corresponding items in the specified threshold list. If valueTable
has more rows than items in the specified threshold list, these extra rows
will be compared against the first item in the specified threshold list. The
value property will be compared to the first item the specified
threshold list.
If the list contains index/comparison value
pairs, this should be a semicolon (;) delimited list of comma (,) separated
index/comparison value pairs (e.g.: (Chicago,80;Dallas,90;Detroit,100). The
index value for each row in the input table attached to valueTable will
be used to lookup the corresponding comparison value from the specified
threshold list. If the index is not found in the specified threshold list, no
alert is activated. The value property cannot be compared against a
threshold list of index/comparison value pairs.
|
 |
Specify the properties of your Limits
alert.
Property
Name |
Description |
alertCommand |
The action executed when an alert is
activated. Any of the available Enterprise RTView commands can be used as well
as the
following substitutions. |
Substitution |
Description |
$alertID |
The unique ID for the alert. |
$alertName |
The value from the alertName field for the alert. |
$alertText |
The alert text. This is the same text that is
displayed in the AlertTable. |
$alertSeverity |
The severity of the alert. |
$alertEmailSubject |
The alert email subject. |
$alertEmailBody |
The alert email body text. |
$alertIndex |
The alert index. This is the same as the
value in the Alert Index column of the AlertTable. |
alertDelayTime |
Specifies the amount of time (in
seconds) that a value must remain within the alert range before the alert is
executed.
For example, if valueHighAlert is 90 and
alertDelayTime is 5, then the input value must stay over 90 for 5 seconds
before a high alert is issued.
If the skipDuplicateAlertsFlag is selected
it will apply to both threshold values. So, in the example above, if a high
alert has been issued, the
valueHighWarning is 80 and the input value drops to 85, it must stay below 90
for 5 seconds before the severity is changed to high warning. |
alertName |
A unique name for the alert. An
entry for this property is required. To create a
reusable Alert Definition
file, include the substitution string as the suffix.
For example: salesAlert.$region (where salesAlert is the alert name and
$region is the substitution string.) |
enabledFlag |
Enables or disables the entire
alert. If this alert is active when it is disabled, it will be cleared. NOTE: It
is not recommended that you attach data to this property if you are using the
Enable Alert Definition
command for this alert. |
nonRepetitionTime |
Amount of time (in
seconds) that must pass after a
cleared alert is executed again. If the skipDuplicateAlertsFlag is
selected, the alert will not be cleared until both thresholds (warning and
alert) are cleared. |
reNotificationTime |
Amount of time (in
seconds) that must pass before
the alertCommand for an unacknowledged or an uncleared alert is re-executed. The
alertCommand
will continue to re-execute on this interval until the alert is
acknowledged or cleared. |
rowEnabledTable |
Sets the enabled state for each row
in the valueTable, so you can enable or disable each index in a tabular
alert. This property only applies for tabular alerts, therefore the useTabularDataFlag must be selected to
activate the rowEnabledTable property. If the enabledFlag for the
alert is disabled, each row index is disabled regardless of the value of
rowEnabledTable.
This property can be set to one of the following:
Scalar data:
If true, all rows (indexes) in the table will be enabled. If false
all rows (indexes) will be disabled.
Tabular data (one or two columns): If
your tabular input data has one
column, the column must contain boolean values and should have the same number
of rows as the valueTable. Each row
in the valueTable will be compared against values in the corresponding rows
of the specified rowEnabledTable. If the valueTable has more rows than the
rowEnabledTable, these extra rows will be compared against the value
of the first row of the rowEnabledTable.
If your tabular input
data has two columns, the first column must
contain indexes and the second column must contain boolean values. The index
value for each row in the valueTable will
be used to lookup the corresponding enabled value from the rowEnabledTable. If the index is not found in the
rowEnabledTable,
the enabled state is set to false and the row (index) is disabled.
List of enabled (boolean) values:
This should be a semicolon (;) delimited list of boolean values (e.g.:
true;false;true) with the same number of values as there are rows in the
valueTable. Each row in valueTable will be set to corresponding
enabled values in the specified list. If valueTable has more rows than
enabled values in the list, then the first value in the list will be used.
List of index/enabled value pairs:
This should be a semicolon (;) delimited list of comma (,) separated
index/enabled value pairs (e.g.: (Chicago,true;Dallas,false;Detroit,true). The index
value for each row in the valueTable will
be used to lookup the corresponding enabled value from the specified
list. If the index is not found in the enabled value list, the enabled state
is set to false and the row (index) is disabled. |
skipDuplicateAlertsFlag |
If selected, the severity of an
alert will update (e.g. valueHighWarning to valueHighAlert)
without multiple alerts being activated. That is, only the highest (or
lowest) alert will be activated when the input value exceeds both high (or
low) thresholds. NOTE: Once an alert
is
acknowledged, the severity of that alert will no longer update. |
useTabularDataFlag |
For tabular input data, select the
useTabularDataFlag and attach your input to
valueTable. The data attached to the valueTable property must contain two
columns, the first column must be an index column containing a unique value in
each row. The second column must contain numeric values to compare to the
thresholds. |
value |
Attach your input data to this
property if your input data is scalar. For tabular input data, select the
useTabularData property and attach your input data to the valueTable
property. |
valueDeadband |
Specifies a deadband value for the
thresholds. If specified, the input value must go below the valueHighWarning/valueHighAlert
minus the deadband value or above the valueLowWarning/valueLowAlert
plus the deadband value for the alert to clear.
For example, if the valueHighAlert
is 90 and the valueDeadband is 5, a high alert will be issued when
the input value goes above 90, but will not clear until the input value goes
below 85.
If the skipDuplicateAlertsFlag is selected
it will apply to both threshold values. So, in the example above, if
valueHighWarning is set to 80 then the input value must go below 85 before
the severity is changed to high warning and below 75 for the alert to be
cleared. |
valueHighAlert |
Specifies the number that
the input value must exceed to activate the high alert.
Enter either a scalar or tabular value, or specify a
list of values. |
valueHighAlertEnabledFlag |
Enables the
high alert threshold. When executed, severity is 2. |
valueHighWarning |
Specifies the number that
the input value must exceed to activate the high warning.
Enter either a scalar or tabular value, or specify a
list of values. |
valueHighWarningEnabledFlag |
Enables the
high warning threshold. When executed, severity is
1. |
valueLowAlert |
Specifies the number the input value
must go below to activate the low alert. Enter
either a scalar or tabular value, or specify a list of values. |
valueLowAlertEnabledFlag |
Enables the
low alert threshold. When executed, severity is 2. |
valueLowWarning |
Specifies the number the input value
must go below to activate the low warning. Enter
either a scalar or tabular value, or specify a list of values. |
valueLowWarningEnabledFlag |
Enables the
low warning threshold. When executed, severity is
1. |
valueTable |
Attach your input data to this
property if it is tabular. For scalar input data, deselect the useTabularData
and attach your input data to the value property. The data attached to
this property must contain two
columns, the first column must be an index column containing a unique value in
each row. The second column must contain numeric values to compare to the
thresholds. |
Discrete Alerts
Discrete alerts allow you to compare the
input data to a test value and execute an alert if your input data equals this
value. Attach the value
property to your input data if the data is scalar. If the data is tabular,
select the useTabularDataFlag and attach your input data to the valueTable
property. The
data attached to the valueTable property must contain two columns, the first
column must be an index column containing a unique value in each row. The second
column must contain values (string, number, boolean) to compare to the test values. An alert will execute
for each row in the table when the value is equal to the specified test
values. This alert type supports three test
values: valueHighAlert,
valueMediumAlert, valueLowAlert. The
value and valueTable properties are compared
against the specified test values (scalar, tabular or list) and an alert is activated when
test
values are reached.
When specifying a scalar test
value, value and each row
in the valueTable will be
compared against the scalar value.
When specifying a tabular test value, the input table
can contain one or two columns:
If the specified test value table has one
column, the column must contain comparison values and should have the same
number of rows as the input table attached to the valueTable. Each row
in valueTable will be compared against values in the corresponding rows
of the specified test value table. If valueTable has more rows than the
specified test value table, these extra rows will be compared against the value
of the first row of the specified test value table. The value property
will be compared to the first row of the specified test value table.
If the specified
test value table has two columns, the first column must
contain indexes and the second column must contain comparison values. The
index value for each row in the input table attached to valueTable will
be used to lookup the corresponding comparison value from the specified
test value table. If the index is not found in the specified test value table,
no alert is activated. The value property cannot be compared against a
test value table with two columns.
When specifying a list of test values, the
list can contain either index/comparison value pairs or just comparison values:
If the list only contains comparison values,
this should be a semicolon (;) delimited list of comparison values (e.g.:
80;90;100) with the same number of values as there are rows in the input table
attached to valueTable. Each row in valueTable will be compared
against corresponding items in the specified test value list. If valueTable
has more rows than items in the specified test value list, these extra rows
will be compared against the first item in the specified test value list. The
value property will be compared to the first item the specified
test value list.
If the list contains index/comparison value
pairs, this should be a semicolon (;) delimited list of comma (,) separated
index/comparison value pairs (e.g.: (Chicago,80;Dallas,90;Detroit,100). The
index value for each row in the input table attached to valueTable will
be used to lookup the corresponding comparison value from the specified
test value list. If the index is not found in the specified test value list, no
alert is activated. The value property cannot be compared against a
test value list of index/comparison value pairs.
|
 |
Specify
the properties of your Discrete alert.
Property
Name |
Description |
alertCommand |
The action executed when an alert is
activated. Any of the available Enterprise RTView commands
can be used as well
as the following substitutions. |
Substitution |
Description |
$alertID |
The unique ID for the alert. |
$alertName |
The value from the alertName field for the alert. |
$alertText |
The alert text. This is the same text that is
displayed in the AlertTable. |
$alertSeverity |
The severity of the alert. |
$alertEmailSubject |
The alert email subject. |
$alertEmailBody |
The alert email body text. |
$alertIndex |
The alert index. This is the same as the
value in the Alert Index column of the AlertTable. |
alertDelayTime |
Specifies the amount of time (in
seconds) that a value must remain equal to the input value before the
alert is executed. |
alertName |
A unique name for the alert. An
entry for this property is required. To create a
reusable Alert Definition
file, include the substitution string as the suffix.
For example:
salesAlert.$region
where salesAlert is the alert name and $region is the substitution string. |
enabledFlag |
Enables or disables the entire
alert. If this alert is active when it is disabled, it will be cleared. NOTE: It
is not recommended that you attach data to this property if you are using the
Enable Alert Definition
command for this alert. |
nonRepetitionTime |
Amount of time (in
seconds) that must pass after a
cleared alert is again executed. |
reNotificationTime |
Amount of time (in
seconds) that must pass before
the alertCommand for an unacknowledged or an uncleared alert is re-executed. The
alertCommand
will continue to re-execute on this interval until the alert is
acknowledged or cleared. |
rowEnabledTable |
Sets the enabled state for each row
in the valueTable, so you can enable or disable each index in a tabular
alert. This property only applies for tabular alerts, therefore the useTabularDataFlag must be selected to
activate the rowEnabledTable property. If the enabledFlag for the
alert is disabled, each row index is disabled regardless of the value of
rowEnabledTable.
This property can be set to one of the following:
Scalar data:
If true, all rows (indexes) in the table will be enabled. If false
all rows (indexes) will be disabled.
Tabular data (one or two columns): If
your tabular input data has one
column, the column must contain boolean values and should have the same number
of rows as the valueTable. Each row
in the valueTable will be compared against values in the corresponding rows
of the specified rowEnabledTable. If the valueTable has more rows than the
rowEnabledTable, these extra rows will be compared against the value
of the first row of the rowEnabledTable.
If your tabular input
data has two columns, the first column must
contain indexes and the second column must contain boolean values. The index
value for each row in the valueTable will
be used to lookup the corresponding enabled value from the rowEnabledTable. If the index is not found in the
rowEnabledTable,
the enabled state is set to false and the row (index) is disabled.
List of enabled (boolean) values:
This should be a semicolon (;) delimited list of boolean values (e.g.:
true;false;true) with the same number of values as there are rows in the
valueTable. Each row in valueTable will be set to corresponding
enabled values in the specified list. If valueTable has more rows than
enabled values in the list, then the first value in the list will be used.
List of index/enabled value pairs:
This should be a semicolon (;) delimited list of comma (,) separated
index/enabled value pairs (e.g.: (Chicago,true;Dallas,false;Detroit,true). The index
value for each row in the valueTable will
be used to lookup the corresponding enabled value from the specified
list. If the index is not found in the enabled value list, the enabled state
is set to false and the row (index) is disabled. |
useTabularDataFlag |
For tabular input data, select the
useTabularDataFlag and attach your input data to the valueTable
property. The
data attached to the valueTable property must contain two columns, the first
column must be an index column containing a unique value in each row. The second
column must contain values to compare to the test values. |
value |
Attach your input data to this
property if your input data is scalar. For tabular input data, select the
useTabularData property and attach your input data to the valueTable
property. |
valueHighAlert |
Specifies the value that
the input value must be equal to for the high alert to execute.
Enter either a scalar or tabular value, or specify a
list of values. |
valueHighAlertEnabledFlag |
Enables the
high alert. When executed, severity is 3. |
valueLowAlert |
Specifies the value that
the input value must be equal to for the low alert to execute.
Enter either a scalar or tabular value, or specify a
list of values. |
valueLowAlertEnabledFlag |
Enables the
low alert. When executed, severity is 1. |
valueMediumAlert |
Specifies the value that
the input value must be equal to for the medium alert to execute.
Enter either a scalar or tabular value, or specify a
list of values. |
valueMediumAlertEnabledFlag |
Enables the
medium alert. When executed, severity is 2. |
valueTable |
Attach your input data to this
property if it is tabular. For scalar input data, deselect the useTabularData
and attach your input data to the value property. The data attached to
this property must contain two
columns, the first column must be an index column containing a unique value in
each row. The second column must contain numeric values to compare to the
thresholds. |
Add an Alert Definition File
When the Alert data source
reads in an Alert Definition file, it adds a line to the
Alert Variables
Table
for each alert in the file and creates a variable using the alertName
field for each alert in the file. Alerts without an entry for the alertName property,
as well as
alerts that have duplicate names, are not added. An error prints to
the console.
See
Application Options for details on how
to add an Alert Definition file to the Alert data
source configuration. Running the Alert
Engine
The alert engine resides within the
Alert data source, so there is no additional process to run the alert engine. How Enterprise RTView is deployed determines where the
alert engine specifically runs:
Thin Client Browser
with Direct Data Connection - The
alert engine runs on the Display Server. The alert engine is active as long as the Display Server is
running, regardless of whether clients are connected.
Application or Rich Client Browser with Direct Data
Connection - The alert engine runs on the client
machine. The alert engine is active as long as the client application or applet is running.
All
Deployments with Served Data -
The alert engine runs on the Data Server. The alert engine is active as long
as the Data Server is
running, regardless of whether clients are connected.
Alert Behavior
Alert Execution
Alerts are evaluated once each
update period. By default, this is every two seconds. You may set the update
period in the Application Options dialog. If
the current value of the input data meets an alert condition, the alert
executes. When an alert is
executed, the variables in the Alert data source are updated and the
alertCommand executes. NOTE:
Multiple asynchronous data updates between updates will be missed. For example,
if your input data is a JMS message and you receive three messages between
Enterprise RTView updates, only the data from the last message will be used when
evaluating the alert condition.
Cleared Alerts
Alerts are evaluated once each update period. By default, this is every two
seconds. You may set the update period in the
Application Options dialog. If the current value of the input data for
an alert that has been executed is no longer in an alert state, the alert will
clear. When an alert is cleared,
the variables in the Alert data source are updated and if the
reNotificationTime for the alert was specified, it will no longer re-execute
the alertCommand. NOTE:
Multiple asynchronous data updates between updates will be missed. For example,
if your input data is a JMS message and you receive three messages between
Enterprise RTView updates, only the data from the last message will be used when
evaluating the alert condition. Viewing Alerts
You can create a display using the Display Builder to view
your real-time alert data.
When the Alert data source reads in an
Alert Definition file, it adds a line to the Alert Variables Table for each
alert in the file and creates a variable using the alertName field for each
alert in the file. Alerts without the alertName property filled in as well
alerts that have duplicate names will not be added. An error will print to the
console. The following alert
variables are available in the Alert data source. See
Attach to Alert Data for more information on
attaching to alert variables. The
Alert Variables Table contains
one row for each alert definition with the following information.
Item |
Description |
Alert Name |
Value of the alertName field of the alert
definition object. |
Alert State |
Highest current severity for the
alert definition. If the data input for the alert definition object is tabular
(i.e. the useTabularDataFlag is True), it will have one alert
severity for each row in the input data table, this value will be the highest
severity of all the rows. If an alert is disabled, the value of Alert State will
become -1. |
Enabled |
Enabled state of the alert: true if
enabled, false if disabled. |
The
AlertTable lists all of your active
and cleared alerts and contains the following information:
Item |
Description |
Time |
Time the alert was activated. |
Alert Name |
Value of the alertName field of the alert
definition object. |
Alert Index |
This is blank if the input data for the alert
definition object is scalar (i.e. the useTabularDataFlag is False).
Otherwise, it is the value from the first column in the input data table. |
Severity |
Severity of the alert. |
Alert Text |
Text about the alert. |
Cleared |
Selected if the alert has cleared. |
Acknowledged |
Selected if the alert has been
acknowledged. |
ID |
Unique ID for the alert. |
An alert variable is added to the Alert
data source for each alert definition object and is named using the alertName
property of the alert definition object. For alert definition objects that use
scalar input data (i.e. the useTabularData property is False),
this variable will be scalar. It will list the highest severity for the alert
definition. For alert definition
objects that use tabular input data (i.e. the useTabularData property is
True), this variable will be a table. It contains one row for each row in
the input table with the following columns:
Item |
Description |
Alert Index |
Name from the first column
of the input data for the alert definition. |
Alert State |
Highest current alert severity for this alert
index. If this alert or alert index is disabled, the value of Alert State will
become -1. |
Enabled |
Enabled state of the alert index: true if
enabled, false if disabled. |
Managing Alerts
In addition to being able to manage your
alerts while developing your display using the
Application Options dialog, you
can also manage them from your deployed display.
Use the following alert commands to manage your alerts
from a deployed display.
- Add Alert Definition File
- Remove Alert Definition File
- Enable Alert Definition
- Enable Alerts
- Acknowledge Alert
See Define Alert
Command for more information.
NOTE: Executing these commands from your display
in the Display Builder does not cause the Application Options dialog to update. For example, if
you add an Alert Definition file by using the command, it does not show up in the
Application Options dialog until you either close and re-open it, or click Apply.
|