Compare commits
2 Commits
873f00b21b
...
4ad5eba7e0
Author | SHA1 | Date | |
---|---|---|---|
4ad5eba7e0 | |||
2646c9787e |
@ -37,13 +37,16 @@ class PacketInfluxPointFactory extends Transform{
|
|||||||
_transform(packet, encoding, next){
|
_transform(packet, encoding, next){
|
||||||
// Create measurements
|
// Create measurements
|
||||||
MEASUREMENT_MAP.forEach((objKey, measurement) => {
|
MEASUREMENT_MAP.forEach((objKey, measurement) => {
|
||||||
if(!Object.keys(packet).includes(objKey)) return;
|
if(packet[objKey] == null) return;
|
||||||
|
|
||||||
let point = new Point(measurement); // Create point
|
let point = new Point(measurement); // Create point
|
||||||
|
|
||||||
// Set tags
|
// Set tags
|
||||||
TAG_LIST.filter(tag => Object.keys(packet).includes(tag))
|
TAG_LIST.filter(tag => Object.keys(packet).includes(tag)) // Filter tags available on object
|
||||||
.forEach(tag => point.tag(tag, packet[tag]));
|
.filter(tag => packet[tag] != null) // Filter tags not falsy on object
|
||||||
|
.forEach(tag => {
|
||||||
|
tagObjectRecursively(point, tag, packet[tag]);
|
||||||
|
});
|
||||||
|
|
||||||
point.setField('value', packet[objKey]); // Set field
|
point.setField('value', packet[objKey]); // Set field
|
||||||
|
|
||||||
@ -54,6 +57,15 @@ class PacketInfluxPointFactory extends Transform{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function tagObjectRecursively(point, tag, field, suffix = ""){
|
||||||
|
if(typeof(field) == "object"){
|
||||||
|
// TODO: Convert boolean-arrays like "packet.flags" to key: value
|
||||||
|
Object.entries(field).map(([key, value]) => {
|
||||||
|
tagObjectRecursively(point, tag, value, `_${key}${suffix}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else point.tag(tag+suffix, field);
|
||||||
|
}
|
||||||
|
|
||||||
/** Mapping for type -> field-method */
|
/** Mapping for type -> field-method */
|
||||||
const POINT_FIELD_TYPE = new Map([
|
const POINT_FIELD_TYPE = new Map([
|
||||||
|
Loading…
x
Reference in New Issue
Block a user