cloudparts

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.

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 →

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.
Keep OpenTSDB’s Telnet protocol
Collectors already spoke put lines to OpenTSDB, so KairosDB could replace it without changing agents.

Timeline

  1. 2013

    Proofpoint engineers start the rewrite as opentsdb2 in February

  2. 2015

    KairosDB 1.0.0 in June

  3. 2018

    1.2.0 in February

  4. 2021

    1.3.0, the last stable release, in August

  5. 2026

    1.4.0-beta.1 tagged in January; no commits since

Sources6 · facts checked 24 October 2026

Improve this page on GitHub