Supported Versions
311x or higher

Introduction

Apache Cassandra is an open-source distributed 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. Apache Cassandra is the only NoSQL solution that can accommodate the complex requirements of modern line-of-business applications and is monitored through JMX. It is architected from the ground up for real-time enterprise databases that require vast scalability, high-velocity performance, flexible schema design, and continuous availability.

The benefits Cassandra delivers to your business include:

  • Elastic scalability– Allows you to easily add capacity online to accommodate more customers and more data whenever you need. Always on architecture – Contains no single point of failure (as with traditional master/slave RDBMS’s and other NoSQL solutions) resulting in continuous availability for business-critical applications that can’t afford to go down, ever.
  • Fast linear-scale performance– Enables sub-second response times with linear scalability (double your throughput with two nodes, quadruple it with four, and so on) to deliver response time speeds your customers have come to expect.
  • Flexible data storage– Easily accommodates the full range of data formats – structured, semi-structured and unstructured – that run through today’s modern applications. Also dynamically accommodates changes to your data structures as your data needs evolve.
  • Easy data distribution– Gives you maximum flexibility to distribute data where you need by replicating data across multiple data centers, the cloud and even mixed cloud/on-premise environments. Read and write to any node with all changes being automatically synchronized across a cluster.
  • Operational simplicity– with all nodes in a cluster being the same, there is no complex configuration to manage so administration duties are greatly simplified.
  • Transaction support – Delivers the “AID” in ACID compliance through its use of a commit log to capture all writes and built-in redundancies that ensure data durability in the event of hardware failures, as well as transaction isolation, atomicity, with consistency being tunable.

In addition, Cassandra requires no new equipment and is very economical to run. It also provides data compression (up to 80% in some cases), eliminates the hassle of memory caching software (e.g., memcached), and provides a query language (CQL) that’s similar to SQL, flattening the learning curve.

Discovery using the agent

Collector Type: Agent

Category: Application Monitors

Application Name: Cassandra

Global Template Name : Linux - Cassandra2 Template

Pre-requisite : Please refer to JMX Monitoring to enable JMX in the java application.

Parameters

NamesDescriptionDefault Value
IPAddressIP Address on which the JMX listens127.0.0.1
PortJMX Listener port7199
UsernameUsername, if enabled in JMXNA
PasswordUsername, if enabled in JMXNA
Java Bin PathPath of the Java binary.java

Note: All field attributes are mandatory, use default values wherever applicable.

Collected Metrics

Metric NameDisplay Name
cassandra.load_count

The number of load.
Cassandra Load Count
cassandra.exceptions_count

The number of exceptions thrown.
Cassandra Data Exceptions
cassandra.cache.hits

The number of hits to a cache.
Cassandra Hits Count
cassandra.cache.hitrate

Cache hit rate.
Cassandra Cache Hit Rate
cassandra.cache.requests

The number of requests to a cache.
Cassandra Requests Count
cassandra.capacity

The capacity of the caches, such as the key cache and row cache.
Cassandra Capacity
cassandra.cache.size

Size of cache.
Cassandra Size
cassandra.client.request.read.latency

Read latency for all client requests.
Cassandra Read Request Latency
cassandra.client.request.Write.latency

Write latency for all client requests.
Cassandra Write Requests Latency
cassandra.read.requests

Number of read requests.
Cassandra Read Requests
cassandra.write.requests

Number of writes requests.
Cassandra Write Requests
cassandra.read.request_timeouts

Count of read requests not acknowledged within configurable timeout window.
Cassandra Read Requests Timeouts
cassandra.write.request_timeouts

Count of write requests not acknowledged within configurable timeout window.
Cassandra Write Requests Timeouts
cassandra.read.request_unavailables

Count read of requests for which the required number of nodes was unavailable.
Cassandra Read Requests Unavailables
cassandra.write.request_unavailables

Count write of requests for which the required number of nodes was unavailable.
Cassandra Write Requests Unavailables
cassandra.commitlog.tasks_completed

Approximate number of completed task per second.
Cassandra Commitlog Completed Tasks
cassandra.commitlog.tasks_pending

Approximate number of pending task.
Cassandra Commitlog Pending Tasks
cassandra.commitlog.total_size

Current data size of all commit log segments in megabytes.
Cassandra Commitlog Size
cassandra.compaction.tasks_completed

Estimated number of completed compaction tasks per second.
Cassandra Compaction Completed Tasks
cassandra.compaction.tasks_pending

Estimated number of pending compaction tasks.
Cassandra Compaction Pending Tasks
cassandra.compaction_completed

Number of compactions completed per second.
Cassandra Compactions Completed
cassandra.compaction.bytes_compacted

Compacted bytes size.
Cassandra Compacted Bytes
cassandra.connection.timeouts

Number of timeouts occurred for this node per second.
Cassandra Cassandra Connection Timeouts
cassandra.dropped.messages

Number of dropped message for each verb per second.
Cassandra Dropped Messages
cassandra.streaming.active_outbounds

Currently active outbound streams.
Cassandra Active Outbound Streams
cassandra.streaming.bytes_incoming

Incoming data per second in megabytes.
Cassandra Data Received
cassandra.streaming.bytes_outgoing

Outgoing data per second in megabytes.
Cassandra Data Sent
cassandra.internal.tasks_active

Approximate number of tasks thread pool is actively executing on path - internal.
Cassandra Internal Active Tasks
cassandra.tasks_active

Approximate number of tasks thread pool is actively executing on path - request.
Cassandra Request Active Tasks
cassandra.internal.tasks_completed

Approximate number of tasks thread pool has completed execution per second on path - internal.
Cassandra Internal Completed Tasks
cassandra.tasks_completed

Approximate number of tasks thread pool has completed execution per second on path - request.
Cassandra Request Completed Tasks
cassandra.internal.currently_blocked_tasks

Number of currently blocked tasks on path - internal.
Cassandra Internal Current Blocked Tasks
cassandra.tasks_currently_blocked

Number of currently blocked tasks on path - request.
Cassandra Request Current Blocked Tasks
cassandra.internal.pending_tasks

Approximate number of pending tasks thread pool has on path - internal.
Cassandra Internal Pending Tasks
cassandra.tasks_pending

Approximate number of pending tasks thread pool has on path - request.
Cassandra Request Pending Tasks
cassandra.internal.tasks_blocked

Number of blocked tasks per second on path - internal.
Cassandra Internal Blocked Tasks
cassandra.tasks_blocked

Number of blocked tasks per second on path - request.
Cassandra Request Blocked Tasks
cassandra.total_disk_space_used.count

Disk space used by a column family.
Cassandra Total Disk Space Used Count
cassandra.bloom_filter_disk_space_used

Disk space used by the Bloom filters.
Cassandra Bloom Filter Disk Space Used
cassandra.bloom_filter_false_positives

The number of Bloom filter false positives.
Cassandra Cassandra Bloom Filter False Positives
cassandra.bloom_filter_false_ratio

The ratio of Bloom filter false positives to total checks.
Cassandra Bloom Filter False Ratio
cassandra.compression_ratio

The compression ratio for all SSTables in a column family.
Cassandra Compression Ratio
cassandra.live_disk_space_used.count

Disk space used by "live" SSTables (only counts non-obsolete files).
Cassandra Live Disk Space Used Count
cassandra.live_ss_table_count

Number of "live" (non-obsolete) SSTables.
Cassandra Live SS Table Count
cassandra.max_row_size

Size of the largest compacted row.
Cassandra Max Row Size
cassandra.mean_row_size

Average size of compacted rows.
Cassandra Mean Row Size
cassandra.memtable_columns_count

Number of columns in memtable.
Cassandra Memtable Columns Count
cassandra.memtable_live_data_size

Size of data stored in memtable.
Cassandra Memtable Live Data Size
cassandra.memtable_switch_count.count

Number of "live" (non-obsolete) SSTables.
Cassandra Live SS Table Count
cassandra.live_ss_table_count

Number of times a full memtable has been switched out for an empty one due to flushing.
Cassandra Memtable Switch Count
cassandra.min_row_size

Size of the smallest compacted row.
Cassandra Min Row Size
cassandra.jvm.gc_collection_count

Number of garbage objects collected.
Cassandra JVM GC collection_count
cassandra.jvm.gc_collection_time

Time taken for collection of the garbage objects.
Cassandra JVM GC collection_time
cassandra.jvm.mem_heap_committed

Heap memory committed (in MB) for the server.
Cassandra JVM Mem heap_committed
cassandra.jvm.mem_heap_used

Heap memory usage (in MB) of the server.
Cassandra JVM Mem heap_used
cassandra.jvm.mem_non_heap_committed

Non-heap memory committed (in MB) for the server.
Cassandra JVM Mem non_heap_committed
cassandra.jvm.mem_non_heap_used

Non-heap memory usage (in MB) of the server.
Cassandra JVM Mem non_heap_used
cassandra.jvm.open_fds

Number of Open file descriptors of the server.
Cassandra JVM OpenFDs
cassandra.jvm.threads

Number of threads.
Cassandra JVM Threads
cassandra.jvm.uptime

Uptime of the server.
Cassandra Uptime

Discovery using the gateway

The administrator can deploy a gateway to support Cassandra agentless monitoring. The gateway establishes a connection to the database using the management profile, collects metrics from the templates, and starts monitoring.

To monitor Cassandra:

  • Associate appropriate database credentials to the discovered database.
  • Assign one or more database-specific global templates on the device.

Choose one of the following management mechanisms to discover Cassandra servers and add them to your inventory:

  • WMI

  • SSH

  • SNMP

  • (Optional)Manually add a database server to the infrastructure inventory.

    1. Select Infrastructure.
    2. Click Settings > Resource > Add.
    3. From the Add Device window, enter the required details such as Device Type and Management Profile.
    4. Click Save.

Prerequisites

  • Install gateway version 5.0.0 or later.
  • Map a suitable gateway management profile to a resource.
  • Create credentials with type JMX before assigning a template to a resource. The Port, Connection Time-out, and Is Secure values are not used to create credentials.
  • Configure JMX in the end device.

View resource metrics

The gateway monitors the application using the assigned templates and displays the results in graphical format. To view resource metrics, click the desired Database Resource Name > Resource Details > Metrics.

Troubleshooting

Verify the following if the graphs are generated incorrectly:

  • The resource is accessible and Telnet is established for the IP address and port.
  • Valid credentials are used for the resource.

If you experience Cassandra monitoring issues, try the following troubleshooting steps:

  1. Verify server and gateway connectivity using Ping - ping IP Address

Example - ping 12.26.105.173

  1. Verify Telnet-to-server listening port connectivity - telnet IP Address Port

Example - telnet 172.26.105.173 9988

Supported templates

  • Cassandra ClientReq Storage Threadpool Template
  • Cassandra ColumnFamily Template
  • Cassandra Jvm Template
  • Cassandra Keyspace Template

After selecting the templates, you can:

  • Assign Cassandra templates from Setup or at the device level.
  • Customize default configuration parameter values while assigning the template.

Resource template configuration parameters

Configuration ParameterDescription
Connection Time-outMaximum database connect time. The driver waits for the specified time before timing out due to connection failure. The default time is 15000 milliseconds(ms).
Service Transport TypeThe secure database end-point. The default type is In-secure. The connection is Secure when the data sent between the client and server is encrypted.
Service PortThe port number where the database is running. The connection is made to the specified port if you specify the port and the database name. The default ports are 8091 and 9988.
API URLThe URL establishes the network connection to the Cassandra cluster. Use the following format while connecting to the database: service:jmx:rmi:///jndi/rmi://${jmx.rmi.host}:${jmx.rmi.port}/jmxrmi
Application TypeThe application type value to identify the adapter. For example, APACHE_CASSANDRA. Do not change the default application type value.

Supported metrics

MetricMetric Display NameUnitDescription
cassandra.clientrequest.latency.75th_percentileCassandra 75th Percentile Clientrequest LatencymicrosecondThe client request latency - p75
cassandra.clientrequest.latency.95th_percentileCassandra 95th Percentile Clientrequest LatencymicrosecondThe client request latency - p95
cassandra.clientrequest.latency.one_minute_rateCassandra One Minute Rate Percentile Clientrequest LatencyRequests per SecThe number of client requests
cassandra.columnfamily.bloomfilter.falseratioCassandra Columnfamily Bloomfilter False RatiopercentThe ratio of bloom filter false positives to total checks
cassandra.columnfamily.bytesflushed.countCassandra Columnfamily Bytes Flushed CountbytesThe amount of data flushed since (re)start
cassandra.columnfamily.compaction_bytes_written_countCassandra Columnfamily Compaction Bytes Written CountbytesCassandra Columnfamily compaction bytes written count
cassandra.columnfamily.compression_ratioCassandra Columnfamily Compression RatiopercentThe compression ratio for all SSTables. A low value means a high compression contrary to the name./td>
cassandra.columnfamily.live_disk_space_usedCassandra Columnfamily Live Disk Space UsedbytesThe disk space used by "live" SSTables (only counts in use files)
cassandra.columnfamily.max_row_sizeCassandra Columnfamily Max Row SizebytesThe size of the largest compacted row.
cassandra.columnfamily.mean_row_sizeCassandra Columnfamily Mean Row SizebytesThe average size of the compacted rows
cassandra.columnfamily.overall.range_latency.75th_percentileCassandra Columnfamily 75th Percentile Overall Range LatencymicrosecondCassandra Columnfamily 75th percentile overall range latency
cassandra.columnfamily.overall.range_latency.95th_percentileCassandra Columnfamily 95th Percentile Overall Range LatencymicrosecondThe local range request latency - p95
cassandra.columnfamily.overall.range_latency.one_minute_rateCassandra Columnfamily One Minute Rate Overall Range LatencycountThe number of local range requests
cassandra.columnfamily.overall.read_latency.75th_percentileCassandra Columnfamily 75th Percentile Overall Read LatencymicrosecondThe local read latency - p75
cassandra.columnfamily.overall.read_latency.95th_percentileCassandra Columnfamily 95th Percentile Overall Read LatencymicrosecondThe local read latency - p95
cassandra.columnfamily.overall.read_latency.99th_percentileCassandra Columnfamily 99th Percentile Overall Read LatencymicrosecondThe local read latency - p99
cassandra.columnfamily.overall.read_latency.one_minute_rateCassandra Columnfamily One Minute Rate Overall Read LatencycountThe number of local read requests
cassandra.columnfamily.overall.write_latency.75th_percentileCassandra Columnfamily 75th Percentile Overall Write LatencymicrosecondThe local write latency - p75
cassandra.columnfamily.overall.write_latency.95th_percentileCassandra Columnfamily 95th Percentile Overall Write LatencymicrosecondThe local write latency - p95
cassandra.columnfamily.overall.write_latency.99th_percentileCassandra Columnfamily 99th Percentile Overall Write LatencymicrosecondThe local write latency - p99
cassandra.columnfamily.overall.write_latency.one_minute_rateCassandra Columnfamily One Minute Rate Overall Write LatencycountThe number of local write requests
cassandra.columnfamily.pending_compactionsCassandra Columnfamily Pending CompactionscountThe number of pending compactions
cassandra.columnfamily.pending_flushesCassandra Columnfamily Pending FlushescountThe number of pending flushes
cassandra.columnfamily.row_cache_hit.countCassandra Columnfamily Row Cache Hit CountcountThe number of row cache hits
cassandra.columnfamily.row_cache_hit_out_of_range_countCassandra Columnfamily Row Cache Hit Out Of Range CountcountThe number of row cache hits that do not satisfy the query filter and moved to disk
cassandra.columnfamily.row_cache_miss_countCassandra Columnfamily Row Cache Miss CountcountThe number of table row cache misses
cassandra.columnfamily.view_read_time.75th_percentileCassandra Columnfamily 75th Percentile View Read TimemicrosecondThe time taken during the local read of a materialized view update - p75
cassandra.columnfamily.view_read_time.95th_percentileCassandra Columnfamily 95th Percentile View Read TimemicrosecondThe time taken during the local read of a materialized view update - p95
cassandra.columnfamily.view_read_time.one_minute_rateCassandra Columnfamily One Minute Rate View Read TimerpsThe number of local reads for a materialized view update
cassandra.db.columnfamilies.droppable_tombstone_ratioCassandra DB Columnfamilies Droppable Tombstone RatiopercentThe estimate of the droppable tombstone ratio
cassandra.keyspace.cas.commit.latency.75th_percentileCassandra Keyspace CAS 75th Percentile Commit LatencymicrosecondThe latency of paxos commit round - p75
cassandra.keyspace.cas_commit_latency.one_minute_rateCassandra Keyspace CAS One Minute Rate Commit Latencyper secondThe number of paxos commit round per second
cassandra.keyspace.cas_prepare_latency.75th_percentileCassandra Keyspace CAS 75th Percentile Commit LatencymicrosecondThe latency of paxos commit round - p75
cassandra.keyspace.cas_commit_latency.95th_percentileCassandra Keyspace CAS 95th Percentile Commit LatencymicrosecondThe latency of paxos commit round - p95
cassandra.keyspace.cas_commit_latency.one_minute_rateCassandra Keyspace CAS One Minute Rate Commit Latencyper secondThe number of paxos commit round per second
cassandra.keyspace.cas_prepare_latency.75th_percentileCassandra Keyspace CAS 75th Percentile Prepare LatencymicrosecondThe latency of paxos prepare round - p75
cassandra.keyspace.cas_prepare_latency.95th_percentileCassandra Keyspace CAS 95th Percentile Prepare LatencymicrosecondThe latency of paxos prepare round - p95
cassandra.keyspace.cas_prepare_latency.one_minute_rateCassandra Keyspace CAS One Minute Rate Prepare Latencyper secondThe number of paxos prepare round per second
cassandra.keyspace.cas_propose_latency.75th_percentileCassandra Keyspace CAS 75th Percentile Propose LatencymicrosecondThe latency of paxos propose round - p75
cassandra.keyspace.cas_propose_latency.95th_percentileCassandra Keyspace CAS 95th Percentile Propose LatencymicrosecondThe latency of paxos propose round - p95
cassandra.keyspace.cas_propose_latency.one_minute_rateCassandra Keyspace CAS One Minute Rate Propose Latencyper secondThe number of paxos propose round per second
cassandra.keyspace.total_disk_space_usedCassandra Keyspace Total Disk Space UsedbytesTotal disk space used by SSTables including obsolete ones waiting to be GC’d
cassandra.storage.exceptions.countCassandra Storage Exceptions CountcountThe number of exceptions thrown from ‘Storage’ metrics
cassandra.threadpools.currently_blocked_tasks_countCassandra Threadpools Currently Blocked TaskscountThe number of currently blocked tasks for the thread pool
cassandra.threadpools.interrnal.total_blocked_tasksCassandra Threadpools Total Internal Blocked TaskscountTotal count of blocked tasks
cassandra.threadpools.pending_tasksCassandra Threadpools Pending TaskscountThe number of pending tasks for the thread pool