Improvement/TbGetTelemetryNode (#1479)
* modified relation-action-nodes * add rule node description * fix rule node description * fix typo * updated relation-action-nodes * refactoring TbGetTelemetryNode * refactoring rule-node-description * refactoring rule-node-description
This commit is contained in:
parent
a7012e261f
commit
9ab8b6ffe4
@ -57,10 +57,11 @@ import static org.thingsboard.server.common.data.kv.Aggregation.NONE;
|
||||
name = "originator telemetry",
|
||||
configClazz = TbGetTelemetryNodeConfiguration.class,
|
||||
nodeDescription = "Add Message Originator Telemetry for selected time range into Message Metadata\n",
|
||||
nodeDetails = "The node allows you to select fetch mode <b>FIRST/LAST/ALL</b> to fetch telemetry of certain time range that are added into Message metadata without any prefix. " +
|
||||
"If selected fetch mode <b>ALL</b> Telemetry will be added like array into Message Metadata where <b>key</b> is Timestamp and <b>value</b> is value of Telemetry. " +
|
||||
"<b>Note</b>: The maximum size of the fetched array is 1000 records. " +
|
||||
"If selected fetch mode <b>FIRST</b> or <b>LAST</b> Telemetry will be added like string without Timestamp",
|
||||
nodeDetails = "The node allows you to select fetch mode: <b>FIRST/LAST/ALL</b> to fetch telemetry of certain time range that are added into Message metadata without any prefix. " +
|
||||
"If selected fetch mode <b>ALL</b> Telemetry will be added like array into Message Metadata where <b>key</b> is Timestamp and <b>value</b> is value of Telemetry.</br>" +
|
||||
"If selected fetch mode <b>FIRST</b> or <b>LAST</b> Telemetry will be added like string without Timestamp.</br>" +
|
||||
"Also, the rule node allows you to select telemetry sampling order: <b>ASC</b> or <b>DESC</b>. </br>" +
|
||||
"<b>Note</b>: The maximum size of the fetched array is 1000 records.\n ",
|
||||
uiResources = {"static/rulenode/rulenode-core-config.js"},
|
||||
configDirective = "tbEnrichmentNodeGetTelemetryFromDatabase")
|
||||
public class TbGetTelemetryNode implements TbNode {
|
||||
@ -70,6 +71,7 @@ public class TbGetTelemetryNode implements TbNode {
|
||||
private int limit;
|
||||
private ObjectMapper mapper;
|
||||
private String fetchMode;
|
||||
private String orderBy;
|
||||
|
||||
@Override
|
||||
public void init(TbContext ctx, TbNodeConfiguration configuration) throws TbNodeException {
|
||||
@ -77,6 +79,7 @@ public class TbGetTelemetryNode implements TbNode {
|
||||
tsKeyNames = config.getLatestTsKeyNames();
|
||||
limit = config.getFetchMode().equals(FETCH_MODE_ALL) ? MAX_FETCH_SIZE : 1;
|
||||
fetchMode = config.getFetchMode();
|
||||
orderBy = config.getOrderBy();
|
||||
mapper = new ObjectMapper();
|
||||
mapper.configure(JsonGenerator.Feature.QUOTE_FIELD_NAMES, false);
|
||||
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
|
||||
@ -104,17 +107,9 @@ public class TbGetTelemetryNode implements TbNode {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
|
||||
}
|
||||
public void destroy() { }
|
||||
|
||||
private List<ReadTsKvQuery> buildQueries(TbMsg msg) {
|
||||
String orderBy;
|
||||
if (fetchMode.equals(FETCH_MODE_FIRST) || fetchMode.equals(FETCH_MODE_ALL)) {
|
||||
orderBy = "ASC";
|
||||
} else {
|
||||
orderBy = "DESC";
|
||||
}
|
||||
return tsKeyNames.stream()
|
||||
.map(key -> new BaseReadTsKvQuery(key, getInterval(msg).getStartTs(), getInterval(msg).getEndTs(), 1, limit, NONE, orderBy))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
@ -44,11 +44,10 @@ public class TbGetTelemetryNodeConfiguration implements NodeConfiguration<TbGetT
|
||||
private String startIntervalTimeUnit;
|
||||
private String endIntervalTimeUnit;
|
||||
private String fetchMode; //FIRST, LAST, LATEST
|
||||
private String orderBy; //ASC, DESC,
|
||||
|
||||
private List<String> latestTsKeyNames;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public TbGetTelemetryNodeConfiguration defaultConfiguration() {
|
||||
TbGetTelemetryNodeConfiguration configuration = new TbGetTelemetryNodeConfiguration();
|
||||
@ -61,6 +60,7 @@ public class TbGetTelemetryNodeConfiguration implements NodeConfiguration<TbGetT
|
||||
configuration.setUseMetadataIntervalPatterns(false);
|
||||
configuration.setStartIntervalPattern("");
|
||||
configuration.setEndIntervalPattern("");
|
||||
configuration.setOrderBy("ASC");
|
||||
return configuration;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user