Time Series Databases are optimized for storing and serving time series through associated pairs of time(s) and values. Time Series Databases are especially helpful for infrastructure monitoring, IoT, data driven analytics, stock market etc.
#1. InfluxDB
InfluxDB has so far been my favorite. InfluxDB is a time series database designed to handle high write and query loads. InfluxDB is the essential time series toolkit — dashboards, queries, tasks and agents all in one place.
InfluxDB empowers developers to build IoT, analytics and monitoring software. It is purpose-built to handle the massive volumes and countless sources of time-stamped data produced by sensors, applications and infrastructure.
The best feature that I liked about InfluxDB are templates. InfluxDB templates are preconfigured InfluxDB resources and can contain everything from dashboards and Telegraf configurations to notifications and alerts.
Check out how you can get started with InfluxDB.
#2. Prometheus
Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Since its inception in 2012, many companies and organizations have adopted Prometheus, and the project has a very active developer and user community. It is now a standalone open source project and maintained independently of any company.
Prometheus comes with multiple features :
- Time series in Prometheus is identified by a metric name and a set of key-value pairs.
- Support native query language PromQL which allows you to generate ad-hoc graphs, tables and alerts.
- Supports detailed visualization along with Grafana integration.
- Stores time series data in memory and on local disk in an efficient custom format.
Check out how you can get started with Prometheus.
#3. Timescale
Timescale is built on PostgreSQL. It’s basically a relational database for time-series data. If you’re already familiar with SQL on relational databases, Timescale won’t have a steep learning curve as it supports “full SQL”.
With Timescale, you can write millions of datapoints per second per node. You can horizontally scale to petabytes.
Timescale is also available as a fully managed service on AWS, Azure and GCP.
#4. Graphite
Graphite is an enterprise-ready monitoring tool that runs equally well on cheap hardware or Cloud infrastructure. Teams use Graphite to track the performance of their websites, applications, business services, and networked servers. It marked the start of a new generation of monitoring tools, making it easier than ever to store, retrieve, share, and visualize time-series data.
Graphite consists of three software components:
- carbon – a high-performance service that listens for time-series data
- whisper – a simple database library for storing time-series data
- graphite-web – Graphite’s user interface & API for rendering graphs and dashboards
Metrics get fed into the stack via the Carbon service, which writes the data out to Whisper databases for long-term storage. Users interact with the Graphite web UI or API, which in turn queries Carbon and Whisper for the data needed to construct the requested graphs.
Graphite’s web platform offers a variety of output styles and formats, including raw images, CSV, XML, and JSON, allowing anyone to easily embed custom graphs in other web pages or dashboards.
So, that’s it for this post. Stay tuned for more.