Now that their storage engine has taken a big leap forward, InfluxDb looks like it’s going to be a great general purpose time-series database. And it’s popular. Therefore, I’m keen to fully support it in data-vs-time.
DvT has a data model in which each time-series is a sequence of numeric values identified by a collection of key/value pairs. This model matches that of prometheus, OpenTSDB and a TSDB I once set out to implement myself but never finished. By comparison, the data model implemented by InfluxDb is a bit more complex (and flexible).
It will take me some time to decide how to fully support InfluxDb in DvT. On the other hand, it’s pretty easy to write a basic adapter that makes some assumptions about the way the data is stored that align with what DvT expects, so I’ve gone ahead and done this already.
The most inflexible assumption I’ve made is that each measurement only has one field, and this field has the same name for every series - typically something like “value”. This name is configurable in the adapter settings dialog.
Currently, the only function supported by the InfluxDb adapter is DERIVATIVE. The function parameter that you can specify in the UI relates to the units of the result (refer to the influxdb documentation). By comparison, when connected to prometheus, this parameter specifies the time range of the sliding window over which the function is calculated and the units of the result is always per second. I think the sliding window idea is important, but I believe that to implement this with an InfluxDb query, InfluxDb will need to support sub-queries, which as far as I can tell, it doesn’t yet (but they are on the roadmap).
Aggregation of series groups is not currently supported by the InfluxDb adapter either. InfluxDb does have the capability to aggregate multiple series together (with the restriction that they must all be the same measurement). However, in order to implement DvT’s aggregation functionality, I believe sub-queries will again be required. This is because DvT also samples values by grouping by time, so the ability to apply nested aggregation functions is required.
Anyway, this new adapter is included in v0.5 of DvT, which has just been released.