Rule Engine
The Rule Engine allows the realisation of data management through a set of rules. The Rules are set by API or using the User Interface.
Rules are of two types:
- Alert Rules that are used to generate alerts when certain conditions are met.
- Aggregation Rules that are used to generate alerts by aggregate data for specified time windows.
Rules are based on data streams that come from other parts of the IMPACT IoT system. These include:
- Response from Data Collection API - This is where a command is issued to a device and the subsequent response from the device is what makes this stream.
- Event Monitoring - This a Monitoring Event notification from a Service Capability Exposure Function or Network Exposure Function.
- Short Message Service - This is the delivery response status of SMS messages that are sent.
- Device Job Results - Device Management actions are organised into Jobs, when these jobs are completed, this provides the data for this stream.
- Notifications - Devices can have observations placed on them such that they report events at particular intervals, this spontaneous data forms the basis for this stream.
- Lifecycle - The device lifetime is organised into a set of states, such as being registered when it first connects and then re-registering to keep the connection alive. These state changes form the basis of this stream.
The data from data Streams can be joined with multiple streams using matching criteria within a particular time period. Which data to use when there is duplicates is defined by the Join criteria. The data from the streams is stored in the schema and to make it easier to use Alias names can be used for the data elements.
To "pick out" or identify the wanted events multiple conditions can be defined using boolean logic on data elements from the streams.
When an Aggregation is defined additional definitions are used. A key element is the time window that is being used. Several window types are supported.
The aggregate function used and the metric desired can be defined indicating what is being counted as well as multiple boolean conditions that the aggregated event should fulfill.
Rule Actions
The following actions are supported on the rules. These actions, if configured, are performed for each record triggered by the rule.
- Persist to AWS S3 storage
- Send to an external kafka
- Persist to Database, to enable Intelligent Data Store APIs to query over this data
- Invoke HTTP Endpoint