...
- Ability to send data to a local or remote InfluxDB instance via InfluxDB http(s) REST API or InfluxDB Go Client
- Authenticate the EdgeX node through Basic AuthenticationAuthentication with username/password
- Create new measurements in InfluxDB
- Export throughput up to 1,000 events/second from each EdgeX node
- Local buffering and retry mechanism with resilience to network downtime
- Local logging of error messages & events through EdgeX Log service
...
Although the best option would be to modify Core Data Service in order to rely on InfluxDB instead of MongoDB, a first step to achieve integration with influx is to modify the existing Export Service in order to enable a new delivery via InfluxDB Go Client or InfluxDB via InfluxDB http(s) REST API or InfluxDB Go Client.
Assumptions
- There is a 1-to-1 relationship between EdgeX measurements and a . A table to map the datatypes shall be defined.Whenever a new subscription is created through the EdgeX Export Client, the target InfluxDB Database name and Measurement name will be specified
- There is a 1-to-1 relationship between EdgeX events and PI Tag. A measurements and a tag-field pair. A table to map the datatypes shall be defined.
- The corresponding PI Tag will have a name that is obtained by concatenating the three following pieces (with "." in between)
- Tag Prefix as defined in the next section "Step 1 - Configuration"
- Device Name (as what is specified in EdgeX Metadata - this must be unique)
- Measurement/Event Name (as per what is specified in EdgeX Metadata - this must be unique within the same device)
- An example of PI Tag Name will be "deployment001.deviceABC.measurement005"
...