Save attributes strategies: add advanced mode warning text; minor title correction

This commit is contained in:
Dmytro Skarzhynets 2025-03-03 12:26:20 +02:00
parent ed6262ba9f
commit 2b7deda3d1
No known key found for this signature in database
GPG Key ID: 2B51652F224037DF
3 changed files with 35 additions and 3 deletions

View File

@ -18,7 +18,7 @@
<section [formGroup]="processingForm" class="tb-form-panel no-border no-padding">
<tb-example-hint
[hintText]="'rule-node-config.save-time-series.advanced-settings-hint'"
[popupHelpLink]="timeseries ? 'rulenode/save_timeseries_node_advanced' : null"
[popupHelpLink]="timeseries ? 'rulenode/save_timeseries_node_advanced' : 'rulenode/save_attributes_node_advanced'"
>
</tb-example-hint>
<tb-advanced-processing-setting-row *ngIf="timeseries"
@ -27,7 +27,7 @@
></tb-advanced-processing-setting-row>
<tb-advanced-processing-setting-row *ngIf="attributes"
formControlName="attributes"
title="{{ 'rule-node-config.save-attribute.attribute' | translate }}"
title="{{ 'rule-node-config.save-attribute.attributes' | translate }}"
></tb-advanced-processing-setting-row>
<tb-advanced-processing-setting-row *ngIf="latest"
formControlName="latest"

View File

@ -0,0 +1,32 @@
#### Potential unexpected behavior with mixed processing strategies
When configuring the processing strategies, certain combinations can lead to unexpected behavior. Consider the following scenarios:
- **Skipping database storage**
Choosing to disable attribute persistence introduces the risk of having only partial data available.
For example, if a message is processed solely for real-time notifications via WebSockets and not stored in the database, then attribute queries might not reflect the data visible on the dashboard.
- **Disabling WebSocket (WS) updates**
If WS updates are disabled, any changes to the attribute data wont be pushed to dashboards (or other WS subscriptions).
This means that even if a database is updated, dashboards may not display the updated data until browser page is reloaded.
- **Skipping calculated field recalculation**
If attribute data is saved to the database while bypassing calculated field recalculation, the aggregated value may not update to reflect the saved data.
Conversely, if the calculated field is recalculated with new data but the corresponding attribute value is not persisted in the database, the calculated field's value might include data that isnt stored.
- **Different deduplication intervals across actions**
When you configure different deduplication intervals for actions, the same incoming message might be processed differently for each action.
For example, a message might be stored immediately in the Attributes table (if set to *On every message*) while not being present on a dashboard because its deduplication interval hasnt elapsed.
- **Deduplication cache clearing**
The deduplication mechanism uses a cache to track processed messages within each interval.
For performance and system stability reasons, this cache is periodically cleared.
As a result, if a cache entry is removed during the deduplication period, messages from the same originator may be processed more than once within that interval.
This means deduplication should be used as a performance optimization rather than an absolute guarantee of single processing per interval.
We recommend using deduplication only when the occasional repeated processing is acceptable and won't cause system correctness issue or data inconsistencies.

View File

@ -5275,7 +5275,7 @@
"deduplicate": "Deduplicate",
"web-sockets-only": "WebSockets only"
},
"attribute": "Attribute"
"attributes": "Attributes"
},
"key-val": {
"key": "Key",