
KairosDB
A Java time-series server that stores metrics with tags in Apache Cassandra; it began in 2013 as a rewrite of OpenTSDB and is now kept going by a single maintainer.
- What it is
- Time-series databases
- Used for
- Metrics
- Type
- Open source
- Made by
- KairosDB project (started at Proofpoint)
- License
- Apache 2.0
- Facts checked
- 24 October 2026
What it is
KairosDB is a stateless Java server in front of a Cassandra cluster. It accepts data points pushed over a Telnet protocol (put <metric> <timestamp> <value> <tag>=<value>, the same line format as OpenTSDB), a REST API and the Graphite protocol, and plugins written against Google Guice can add listeners, data stores and protocol handlers. Each point has a metric name, a timestamp in milliseconds, a value and one or more tags. In Cassandra, the data_points table gets one row per metric, tag set and time window: the row key holds the metric name, the start time of the row, the data type and the sorted tags, and each column is the offset from that start time. By default a row spans exactly three weeks; the width and time unit are fixed when the schema is created. Further tables index row keys and the known metric names, tag names and tag values.
Queries go to the REST API as JSON: a time range, metrics, tag filters, a group-by and a chain of aggregators such as average, sum, min, max, percentile, rate and filter that downsample the data on the server. Roll-up tasks can write pre-aggregated series back for faster queries. A web UI for trying queries, import and export tools and a Java client come with it. The last stable release, 1.3.0, came out in August 2021. Since then Brian Hawkins has updated dependencies for security fixes, moved to Jetty 12, and tagged 1.4.0-beta.1 in January 2026; there have been no commits since, and over 140 issues and pull requests are open.
Why teams pick it
- Inherits Cassandra’s write throughput, replication and linear scaling, with no single point of failure in the KairosDB servers
- Accepts OpenTSDB-style Telnet puts, Graphite and JSON over HTTP, so existing collectors can send to it
- Server-side aggregators and roll-ups downsample long time ranges before results leave the server
- Apache 2.0 with a plugin system for new protocols and data stores
Watch out for
- Barely maintained: one maintainer, the last stable release in 2021, and a 1.4 beta from January 2026 with no follow-up
- You run and tune a Cassandra cluster as well as the KairosDB servers
- Its own JSON query format, not SQL or PromQL, so most dashboards need a plugin to query it
- Row width and time unit can’t be changed after the schema is created without losing data
Good for
- Data model
- Points of metric name, millisecond timestamp, value and tags
- Query language
- JSON queries over REST, with chains of aggregators
- Client protocol
- Telnet (OpenTSDB line format), REST and Graphite
- How it scales
- Stateless servers in front of a Cassandra cluster
- Storage engine
- Apache Cassandra: one row per metric, tag set and three-week window
- Written in
- Java
- Ways to run it
- Self-hosted, with a Helm chart
Alternatives
What all time-series databases have in common →Compare side by side →
OpenTSDBArchivedOpen sourceA time-series database built on HBase: stateless Java daemons that turn metric, timestamp, value and tags into compact HBase rows, one row per series per hour.How it fits with other technologies
Push a point over Telnet (port 4242) and over REST (port 8080) · bash
now=$(($(date +%s%N)/1000000)) # milliseconds
echo "put load_value_test $now 42 host=A" | nc -w 30 kairos-host 4242
curl -X POST http://localhost:8080/api/v1/datapoints -d '[{
"name": "archive.file.tracked",
"timestamp": 1349109376,
"type": "long",
"value": 123,
"tags": {"host": "test"}
}]'See it in a real stack
No architecture uses KairosDB yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2013–2026
OpenTSDB stored metrics with tags in HBase, so running it meant running Hadoop’s HBase and its ZooKeeper. In February 2013 engineers at the security company Proofpoint, including Brian Hawkins and Jeff Sabin, started a rewrite, first in a repository named opentsdb2, that kept OpenTSDB’s Telnet protocol but stored data in Cassandra. It became KairosDB. Version 1.0 came out in June 2015, and users listed on its site included Proofpoint, Zalando, raintank and Spinn3r.
Releases slowed after 1.2 in 2018: 1.3.0 followed in August 2021. Since then KairosDB has been kept alive largely by Hawkins alone, with dependency and security updates in 2025 and a 1.4.0 beta tag in January 2026.
Why it’s built this way
- Cassandra instead of HBase
- Running OpenTSDB meant running HBase and the Hadoop stack under it. Cassandra also offers wide rows sorted by column name, which suit time series, without that stack.
- Wide rows of three weeks
- Putting a series’ points for a fixed window in one row keyed by metric and tags makes a time-range query a single sequential read; the column name only needs the offset from the row’s start.
Timeline
- 2013
Proofpoint engineers start the rewrite as opentsdb2 in February
- 2015
KairosDB 1.0.0 in June
- 2018
1.2.0 in February
- 2021
1.3.0, the last stable release, in August
- 2026
1.4.0-beta.1 tagged in January; no commits since
- GitHub: kairosdb/kairosdb initial commit (5 February 2013)
- GitHub: kairosdb/kairosdb commit 99097b8 (Jeff Sabin, February 2013, merged from proofpoint/opentsdb2)
- GitHub: kairosdb/kairosdb releases (1.0.0 2015 to 1.3.0 August 2021)
- GitHub: kairosdb/kairosdb tags (v1.4.0-beta.1)
- OpenTSDB: Overview (each TSD stores time series in HBase or Bigtable)
- OpenTSDB docs: Writing data (the Telnet put line format)
- KairosDB home page (users: Proofpoint, Spinn3r, raintank, Zalando, Signal)
Sources6 · facts checked 24 October 2026
- KairosDB home page (Cassandra, Telnet, REST, Graphite, aggregators, plugins)
- KairosDB docs v1.3.0: contents (aggregators, roll-ups, Helm, Java client)
- KairosDB docs: Cassandra schema (row keys, column offsets, three-week rows)
- KairosDB docs: Pushing data (Telnet and REST examples)
- GitHub: kairosdb/kairosdb commits (2025 dependency and security updates, last commit January 2026)
- GitHub: kairosdb/kairosdb README (Apache 2.0)