Browse Source

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

pull/12764/head
Dmytro Skarzhynets 2 years ago
parent
commit
2b7deda3d1
No known key found for this signature in database GPG Key ID: 2B51652F224037DF
  1. 4
      ui-ngx/src/app/modules/home/components/rule-node/action/advanced-processing-setting.component.html
  2. 32
      ui-ngx/src/assets/help/en_US/rulenode/save_attributes_node_advanced.md
  3. 2
      ui-ngx/src/assets/locale/locale.constant-en_US.json

4
ui-ngx/src/app/modules/home/components/rule-node/action/advanced-processing-setting.component.html

@ -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"

32
ui-ngx/src/assets/help/en_US/rulenode/save_attributes_node_advanced.md

@ -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 won’t 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 isn’t 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 hasn’t 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.

2
ui-ngx/src/assets/locale/locale.constant-en_US.json

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

Loading…
Cancel
Save