Understanding the InfluxDB Connector
How InfluxDB Data is Mapped to Seeq
Schema Recommendations
If you are still designing your InfluxDB schema, you may want some guidance about how to map equipment assets with associated sensors to measurements, tags and fields in InfluxDB.
It is recommend that you have one InfluxDB measurement per asset type. Typical asset types would be Power Generator, Pump, Heat Exchanger, Truck. Since each unique measurement in InfluxDB can have a different set of tags and fields, you can accommodate different sensors on these different types of assets but still treat them commonly in Seeq and leverage asset swapping.
Within a measurement, each unique asset should be differentiated by one or more tags. In InfluxDB, tags are indexed so that you can query for sensor data for a particular set of tags. For example, you can query for the Temperature field within the Power Generator measurement where the Unit Serial No tag is A1230FL1. Seeq will map each of these asset instances to a node in the asset hierarchy, which facilitates asset swapping and roll-ups.
Each unique sensor for an asset type should be represented as an InfluxDB field. Fields are not indexed and can contain the vast amount of sensor readings that is commonly found in industrial applications.
Units of Measure
InfluxDB does not currently have a clean mechanism for storing metadata for a series.
It is recommended that you make the units part of the field name and then use a Seeq property transform to pull it out and put it in Seeq's Value Unit Of Measure field.
Add the units in square brackets to the field name in your InfluxDB schema. Examples:
Temperature [F]
Compressor Power [kW]
Once you do this, use the following Property Transform to move the units into the Value Unit Of Measure field:
"Transforms" : [ {
"Inputs" : [ {
"Property" : "Name",
"Value" : "(?<name>.*?)\\s*\\[(?<units>.*?)\\]"
} ],
"Outputs" : [ {
"Property" : "Value Unit Of Measure",
"Value" : "${units}"
}, {
"Property" : "Name",
"Value" : "${name}"
} ],
"Enabled" : true,
"Log" : false
} ]