Software:KairosDB

From HandWiki
KairosDB
KairosDB logo
Original author(s)Brian Hawkins, Jeff Sabin
Stable release
1.2.2[1] / November 2, 2018 (2018-11-02)
RepositoryKairosDB Repository
Written inJava
Operating systemCross-platform
Available inEnglish
TypeNoSQL Database, Time series database
LicenseApache License 2.0
Websitekairosdb.github.io

KairosDB is an open source and scalable[2] time series database designed for storing application, system, and IoT[3] metrics.

History

KairosDB [4] was built in 2013 by Brian Hawkins and Jeff Sabin while working at Proofpoint. It was a branched fork of OpenTSDB[5] and has a similar overall architecture.[6]

Technical Overview

KairosDB has a pluggable storage engine, and thus can built on top of another database such as Cassandra or Scylla[7]. It provides a telnet[8] and REST API [9] to add metrics and a REST API to query metrics. Data returned from a query can be aggregated using built-in aggregators and grouped by built-in groupers. Tags on data points allow filtering and grouping of data.

KairosDB was built based on these design principles:

  • Record all metrics
  • High-performance ingestion rates
  • Millisecond time precision
  • Simple scaling
  • Customizable

Record all Metrics

It is not possible to know whether a metric will be needed in the future. If the metric is not added or is aggregated before adding to the time series database, then important information can be lost. KairosDB was designed with the intent of adding all metrics at a millisecond precision so the data is there when needed. Aggregation can be done at the time of the query or as part of a roll-up process.

High-Performance Ingestion Rate

Recording all metrics requires a high ingestion rate. KairosDB is able to do this by using Cassandra as a back-end store. Cassandra's write path is very fast.[10]

Millisecond Time Precision

KairosDB allows metrics to be added with millisecond precision. While second-time precision is sometimes sufficient, millisecond precision is needed by various industries.

Simple Scaling

KairosDB scales horizontally by adding new KairosDB nodes and expanding the underlying pluggable storage cluster.[11] KairosDB nodes are stateless and thus a new one can easily be added.

Customizable

KairosDB provides a pluggable Java interface for adding listeners, new aggregators, and new groupers.

Use

KairosDB has been used to provide metrics for products such as VMware Cloud Director[12] and IBM's Rational Test Workbench.[13] It is also embedded within ZMON[14] where it is used in conjunction with Grafana.

References

  1. "KairosDB on Github". https://github.com/kairosdb/kairosdb/releases/tag/v1.2.2. 
  2. Goldschmidt, Thomas. "Scalability and Robustness of Time-Series Databases for Cloud-Native Monitoring of Industrial Processes". ABB Corporate Research. http://www.koziolek.de/docs/Goldschmidt2014-IEEE-CLOUD-preprint.pdf. Retrieved 10 October 2019. 
  3. Veneri, Giacomo (2018). Hands-On Industrial Internet of Things: Create a powerful Industrial IoT. Pact Publishing. pp. 236–242. ISBN 978-1-78953-722-2. 
  4. "KairosDB Github Site". Github. https://github.com/kairosdb/kairosdb. Retrieved 10 October 2019. 
  5. "OpenTSDB". http://opentsdb.net/. 
  6. "A Comprehensive Analysis of Open-Source Time Series Databases (2)". https://www.alibabacloud.com/blog/a-comprehensive-analysis-of-open-source-time-series-databases-2_594731. 
  7. "9 Steps for Building a Highly Available Time-Series Solution with Scylla and KairosDB". ScyllaDB. https://www.scylladb.com/2017/05/24/9-steps-building-highly-available-time-series-solution-scylla-kairosdb/. Retrieved 10 October 2019. 
  8. "KairosDB Tenet API". Github. https://kairosdb.github.io/docs/build/html/telnetapi/index.html. Retrieved 10 October 2019. 
  9. "KairosDB REST API". Github. https://kairosdb.github.io/docs/build/html/restapi/index.html. Retrieved 10 October 2019. 
  10. Ludwikowski, Andrzej. "Cassandra writes in depth". SoftwareMill. https://blog.softwaremill.com/cassandra-writes-in-depth-6ea8d7581eb. Retrieved 10 October 2019. 
  11. Tapadar, Shahjahan. "Cassandra – The Right Data Store for Scalability, Performance, Availability and Maintainability". RapidValue. https://www.rapidvaluesolutions.com/tech_blog/cassandra-the-right-data-store-for-scalability-performance-availability-and-maintainability/. Retrieved 10 October 2019. 
  12. "VMware vCloud Director 5.6 Documentation Center". VMware. https://pubs.vmware.com/vcd-56/index.jsp?topic=%2Fcom.vmware.vcloud.install.doc_56%2FGUID-E5B8EE30-5C99-4609-B92A-B7FAEC1035CE.html. Retrieved 10 October 2019. 
  13. "Using the KairosDB UI". IBM. https://www.ibm.com/support/knowledgecenter/en/SSBLQQ_9.5.0/com.ibm.rational.rtcp.sysadmin.doc/topics/c_rtcpadmin_kairosdb_usingui.html. Retrieved 10 October 2019. 
  14. "ZMON". https://docs.zmon.io/en/latest/user/grafana.html. 

External links