Configuring JSON Threshold Evaluator - Ironstream_Hub - 1.3.1

Ironstream Hub Administration

Product type
Software
Portfolio
Integrate
Product family
Ironstream
Product
Ironstream > Ironstream Hub
Version
1.3.1
Language
English
ContentType
Administration
Product name
Ironstream Hub
Title
Ironstream Hub Administration
Topic type
Administration
First publish date
2022

This process allows you to pass on only those JSON records that breach a user-defined numeric threshold. You can delay sending continual threshold breaches for a number of seconds by setting an optional parameter to a value greater than zero.

If a JSON record without the delay option breaches the threshold described in these parameters, it is passed to the next node in the pipeline. If not, it is not passed on.

If a JSON record with the delay option breaches the threshold described in these parameters it is passed to the next node in the pipeline after that delay time, if the threshold is breached. Further breaches are passed on immediately until the threshold is no longer breached. If a value does not breach the threshold, it is not passed on.

If a JSON record does not contain the key set in PropertyName, the record will not be passed on. A warning will be written to the user log file.

When ProcessType is set to JsonThresholdEvaluator, a parent field named JsonThresholdEvaluatorConfiguration must be populated with sets of fields as shown below.

The pipeline will not start if the file content is not valid JSON, or if the existing validation of values fail. But some values, that would be considered invalid based on the information in the documentation, will not prevent the pipeline from starting. For example, if the TimeInSecondsToIgnoreShortTermPeaks value is greater than 3600, then the pipeline will still start.

Fields Description Valid Values
PropertyName The JSON key name that holds the value to be examined. This must match exactly with a key in a JSON record - the matching is case sensitive. Any valid JSON key name
ThresholdValue A number to use in comparison with the value of the PropertyName key. Any valid number. In accordance with JSON rules, numbers can be positive or negative, can be integers or real numbers with decimals can be specified after a period (.), for example, 1.618, and exponentiation form is also supported, for example, 2.78166e5 to mean 27816.6 or 1.4E-2 to mean 0.14. The use of e and E is interchangeable in this last form.
ComparisonOperator How the threshold and the key's value are to be compared. GreaterThanOrEqualTo
GreaterThan
LessThanOrEqualTo
LessThan
TimeInSecondsToIgnoreShortTermPeaks Optional parameter. The time in seconds for which a short term peak must be maintained for the threshold to be breached. An integer from 0 to 3600. 0 is used if this property is not specified. 0 means 'no waiting'.
Example with no waiting:
{
  "Name": "H_AvgPercentCPUUsedThreshold",
  "Id": "2ace599c-6983-4afc-b1d1-fb0900545273",
  "JsonThresholdEvaluatorConfiguration": {
    "PropertyName": "AvgPercentCPUUsed",
    "ThresholdValue": 80,
    "ComparisonOperator": "GreaterThanOrEqualTo"
  },
  "ProcessType": "JsonThresholdEvaluator"
}
Example with waiting:
{
  "Name": "H_AvgPercentCPUUsedThreshold",
  "Id": "7ace599d-6983-4afc-b1d1-fb0900545273",
  "JsonThresholdEvaluatorConfiguration": {
    "PropertyName": "CPU_busy",
    "ThresholdValue": 80,
    "ComparisonOperator": "GreaterThanOrEqualTo",
    "TimeInSecondsToIgnoreShortTermPeaks": 300
  },
  "ProcessType": "JsonThresholdEvaluator"
}
This data is received by a Threshold Evaluator Process with the above configuration:
Time CPU_busy HostName Threshold breached? Record passed?
09:00 17
43
HostA
HostB
N
N
N
N
09:01 85
56
HostA
HostB
Y - timer started
N
N
N
09:02 86
82
HostA
HostB
Y - minute 1
Y - timer started
N
N
09:03 84
87
HostA
HostB
Y - minute 2
Y - minute 1
N
N
09:04 89
96
HostA
HostB
Y - minute 3
Y - minute 2
N
N
09:05 92
83
HostA
HostB
Y - minute 4
Y - minute 3
N
N
09:06 82
87
HostA
HostB
Y - minute 5
Y - minute 4
Y
N
09:07 78
91
HostA
HostB
N - timer reset
Y - minute 5
N
Y
09:08 38
95
HostA
HostB
N
Y - still over threshold
N
Y
09:09 90
88
HostA
HostB
Y - timer started
N - still over threshold
N
Y
09:10 87
89
HostA
HostB
Y - minute 1
N - still over threshold
N
Y

A record is passed on for HostA at 09:06 as the value has breached the threshold for more than 300 seconds (5 minutes). At 09:08 the value no longer breaches the threshold so the timer is reset. At 09:09 the value breaches the threshold again and the timer is started, and if this continues will pass on the record at 09:14.

Alerts are first generated for HostB at 09:07 as the value has breached the threshold for more than 300 seconds (5 minutes) and again at each minute from 09:08 onwards as the value is still breaching the threshold.