Export Service to InfluxDB

Description

Due to the massive amount of time series managed at the edge and the disconnected nature of operations, a native time series database is necessary as part of EdgeX. MongoDB is not an optimal fit for huge amount of time series data.

The TSDB is useful for local storage and shall be easily interfaced with open source visualization tools (e.g. Grafana) and open source analytics platforms (e.g. Kapacitor). 

InfluxDB is an open source TSDB distributed under MIT License which can be integrated as part of the solution.


Requirements

  • Ability to send data to a local or remote InfluxDB instance via InfluxDB Go Client
  • Basic Authentication with username/password
  • 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

Design

Assumptions

    • Whenever a new subscription is created through the EdgeX Export Client, the target InfluxDB Database name will be specified
    • There is a 1-to-1 relationship between EdgeX device and InfluxDB Measurement
    • There is a 1-to-1 relationship between EdgeX measurements and a InfluxDB tag. A table to map the datatypes shall be defined

Code

To be updated.

Current status

Waiting for 0.6 release to start collaborating with the Applications Working Group for the integration