Hey, I thought I wrote back to this!! Weird.
Yes, @nram : Graphite, of course. What a classic. I’ve heard it more tightly integrates with Grafana, but I have yet to play with it. Pairing Grafana with InfluxDB seems to satisfy most of my needs. I wonder what “extra special stuff” you could get / expose. Someone deeply knowledgeable on all 3 would have to answer that.
@marc : I’ve heard of people using Elastic for time-series metric data. Not its primary purpose though, but it seems it can do it. Found this article that was looking at specifically that use case: https://medium.com/kudos-engineering/choosing-the-elastic-stack-as-a-time-series-database-9fac202c53ba. As you said, Kibana seems to show/visualize aggregate data, primary logging data “how many GETs per minute per host” or “how many WARNs” per minute, I don’t think (aka I don’t know how) to make Kibana display time-series metrics.
Some of the big things I really like about InfluxDB:
- Natively supports “pushing” into the database (like a normal database), accepts data whenever it arrives. Leaves the “polling” of the source data to you. Or to Telegraf or whatever.
- No hard / constrained / required intervals defined for time-series. I think most of the other ones I listed you have to specify what your interval is that you want the data stored at (e.g. every 10 seconds). Influx, in the “raw” data (e.g. before the “continuous query” downsampling") allows you to push data in at ANY interval you want, any rate, or with any gap between successive inserts. Super useful for non-regular-interval data
- Supports Strings and Booleans!! Not just numeric. How great it that? I can push all that data in there (e.g. operational state, redundancy state, status messages, etc.) and it will track when things change.
- It’s schema-less! Just start pushing data in, and Influx will figure it out. No need to predefine measurements (aka tables) or keys or anything. Note that you can add an
ito integer numeric data to give Influx a hint that it’s not a float.
One disadvantage (and I don’t know if other time-series DBs can do this?) is that it can’t store nested objects… you have to “flatten” any nested entries.