Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 due to MongoDB limitations with . 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. FlinkKapacitor). 

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
  • Ability to send data to a remote InfluxDB instance
  • Ability to send data to multiple InfluxDB instances (up to 3)

Design

There are 2 options to implement this:

  • 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
  • Modify the existing Export Service in order to enable a new delivery via InfluxDB Go Client

Code

To be updated.

Current status

To be updated.Waiting for 0.6 release to start collaborating with the Applications Working Group for the integration