Rules
Rules enable automated data analysis as Sift receives it or on historical data.
Here is an example of a rule:
The rules sidebar lists all rules that apply to the selected assets. You can filter rules by name.
Evaluating Rules
Rules are evaluated as Sift receives data from assets. Rules can be re-evaluated on historical data when a run is selected.
Click the bars icon at the top of the sidebar to open a modal to re-evaluate rules. Select which rules to evaluate and add additional tags to the annotations that will be created.
Create a Rule
Plot the channels you want to use in your rule creation.
Click the plus icon at the top of the sidebar to create a rule.
Viewing a Rule
Click on a rule in the rule list to view it.
Editing a Rule
Click on the edit icon when hovering over a rule in the rule list or at the top of a rule when viewing it.
A new tab will be opened with the configuration page for the respective Rule.
Bulk Editing Rules
Click on the edit icon at the top of the sidebar when viewing the list of rules to edit all rules. This opens a text editor with a JSON representation of the rules.
Here, you can change the name of the rules, the condition, and the tags associated with the annotation created when the condition occurs. You can add new rules by adding another entry in the JSON array or delete rules by removing an entry. Click Update rules to update the rules.
Deleting Rules
To delete a rule, click the trash can icon when hovering over it in the list or at the top when viewing it. Deleting a rule does not delete annotations that it created.
Note that you can also delete a rule from its respective configuration page.
Stateful rules
[!INFO] Stateful rules are currently in beta and may not be available in your Sift instance. Please reach out to Sift support if you have any questions!
Calculated channels in rules can also reference stateful functions which allow the rule logic to incorporate aggregations of data over time.
The persistence function in particular is designed to work well for rules on noisy data. If your condition is triggering with a lot of false positives, you can wrap it in a persistence window so that the condition needs to be true for a minimum duration before triggering.
- Example raw condition:
$1 > 10
- Condition with 5 second persistence:
persistence($1 > 10, 5)