Context
Signal loss is aimed at detecting consecutive missing events on signals that are supposed to be periodic. A signal could be anything like a data point stream on a variable, a file upload, a triggered calculated variable. At the time being, signal loss detection is available on DataHub variables only (see Data loss detection on variables). As we want as few configuration as possible, the signal loss detection mechanism will compute automatically and dynamically the average period of the signal and perform loss detection based on factors of this average period.
Signal period
A signal subject to data loss detection is supposed to be periodic with a period that we'll call expected_period, meaning that the signal state is expected to be refreshed (value changing or not) every expected_period. This period is purely theoretical and will not be used as-it by the signal loss detection mechanism that will compute the actual signal period called computed_period using a sliding period average.
Signal period computation
The data loss detection engine will compute the average signal period by keeping a sliding window of the last 100 signal periods and computing the average period from it (sum of periods / number of signal activity). This mechanism implies that there must be at least 2 signal activity to be able to start the average period computation. This also means that a single long period of inactivity could dramatically affect the computed period (big statistics variance).
Signal loss configuration parameters
There are 3 configuration parameters driving a the signal loss detection input. The signal detection output does not require any configuration but may be tailored if needed.
Signal loss input configuration
- A unique identifier of the signal that is subject to signal loss detection (variable Id, file Id, report Id, ...).
- An integer value called MissingSignalFactor that corresponds to a number of periods during which the signal may be inactive without being declared "lost". Let's imagine a signal that is supposed to be signalled every 10 minutes, MissingSignalFactor = 3 will lead to declare that the signal is lost after 3 * 10 minutes of inactivity. Remember that the actual signal period is dynamically computed (see signal period computation).
- An integer value called AbnormalPeriodFactor that corresponds to a number of periods after which an inactive signal must be considered as permanently lost. When a signal is inactive during a period greater that AbnormalPeriodFactor, the statistics used to compute the computed_period are cleared and the computation will restart from scratch. This helps to keep period variance under control ensuring a computed_period closer to the expected_period.
Signal loss output configuration
The signal loss output is always a DataHub variable that reflects the state of the signal loss detection. This variable is automatically managed by the signal loss detection engine but may be tailored if needed. The output management depends on the type of input signal (variable, file, report, ...). Please look at the "Output variable management" section specific to a signal type (Data loss detection on variables).
Intermittent signal loss detection
This is driven by the value of the MissingSignalFactor
Important
The output variable here above shows the internal missing state. The timestamp of the DataHub output variable will be set as follow: | Output variable state | TimeStamp | |--|--| | 0 | The timestamp of the first data point received after the data loss period| | 1 | The timestamp of the last data point received before the data loss period|
Permanent signal loss detection
This is driven by the value of the AbnormalPeriodFactor