Apache Cassandra is an open source distributed NoSQL database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. Cassandra offers robust support for clusters spanning multiple datacenters, with asynchronous masterless replication allowing low latency operations for all clients. Cassandra originated at Facebook as a project based on Amazon’s Dynamo and Google’s BigTable, and has since matured into a widely adopted open source system.
Apache Cassandra is a NoSQL database, sometimes also referred to as a Not Only SQL database. These are designed to offer users a way to both store and retrieve data OTHER than the types of tabular revisions that are commonly used in relational databases. They're schema-free, support effortless replication, and can handle huge amounts of data at the same time.
Apache Cassandra is scalable, fault-tolerant, and consistent, along with being a column-oriented database. Its distribution design is based on Amazon Dynamo, with a data model based on Google's Bigtable. It was built to implement a Dynamo-style replication model while adding a more powerful "column family" data model, which is again a big part of the reason why Cassandra monitoring is so important. Cassandra has also become notable over the years thanks to some of its impressive technical features. One of the biggest of these is its fast write speed. In addition to running very well on cheaper hardware, Cassandra writes data very quickly and can literally store hundreds of terabytes of data WITHOUT sacrificing the read efficiency your organization has come to depend on.
Why use a Telegraf plugin for Cassandra?
Apache Cassandra databases are used to store large amounts of data, and this is one of the reasons why these databases are fault-tolerant and highly scalable. Because the data is important to your applications, monitoring your Cassandra cluster for availability, health, and performance can be done with the Cassandra Telegraf Plugin.
Under this type of configuration, Cassandra monitoring allows organizations to finally rid themselves of the "break/fix" model of looking after their applications and clusters. If you always have real-time visibility into what is going on with your assets, you're in a better position to identify and correct small issues today before they have a chance to become much bigger ones later on. At the very least, you're able to make sure that everything in the environment is operating exactly as it should be, eliminating the types of disruptions that hamper productivity (and stifle innovation) across the board.
Please note: This Cassandra Telegraf Plugin was deprecated in version 1.7, and we recommend using the jolokia2 Telegraf Plugin with the cassandra.conf example configuration.
How to monitor Cassandra using the Telegraf plugin
Configuring the Cassandra Telegraf plugin is simple. Configure it with the context root used for jolokia url, the list of servers with the format "user:[email protected]:port", and the list of Jmx paths that identify mbeans attributes. The Cassandra plugin collects Cassandra 3 / JVM metrics exposed as MBean's attributes through jolokia REST endpoint. All metrics are collected for each server configured.
Key Cassandra metrics to use for monitoring
Some of the important Cassandra metrics that you should proactively monitor include:
javaGarbageCollector(collection time, collection count)
cassandraCache(cache hits, requests, entries, size, capacity)
cassandraClientRequest(Total latency, latency, timeouts, unavailable, failures)
cassandraCommitLog(pending tasks, total commit log size)
cassandraCompaction(Completed tasks, pending tasks, total compaction completed, bytes compacted)
cassandraTable(Live Disk Space Used, Total Disk Space Used, Read Latency, Coordinator Read Latency, Write Latency, Read Total Latency, Write Total Latency)
cassandraThreadPools(Active tasks, pending tasks, currently blocked tasks)