A faster way to transform metrics into action: Graphite vs InfluxDB Benchmark
InfluxDB is an open-source time series database written in Go. At its core is a custom-built storage engine called the Time-Structured Merge (TSM) Tree, which is optimized for time series data. Controlled by a custom SQL-like query language named InfluxQL, InfluxDB provides out-of-the-box support for mathematical and statistical functions across time ranges and is perfect for custom monitoring and metrics collection, real-time analytics, plus IoT and sensor data workloads.
Graphite is an open source, numeric time-series-data-oriented database and a graph rendering engine, written in Python. It consists of a carbon daemon that listens for time series data and stores it in Whisper database on disk, and Graphite webapp written in Django framework for rendering on-demand graphs.
In this technical paper, we’ll compare the performance and features of InfluxDB v1.8.0 and Graphite v1.1.7 for common time series workloads, specifically looking at the rates of data ingestion, on-disk data compression, and query performance. This data should prove valuable to developers and architects evaluating the suitability of these technologies for their use case.
Our goal with this benchmarking test was to create a consistent, up-to-date comparison that reflects the latest developments in both InfluxDB and Graphite. Periodically, we’ll re-run these benchmarks and update this document with our findings. All of the code for these benchmarks are available on GitHub. Feel free to open up issues or pull requests on that repository or if you have any questions, comments, or suggestions.