Apache Cassandra extension

  • Latest Dynatrace
  • Extension
  • Published Oct 27, 2025

Improve Apache Cassandra observability

Get started

Overview

The Apache Cassandra JMX server monitoring extension in Dynatrace provides information about database exceptions, failed requests, performance, and more.

Dynatrace automatically detects all applications and microservices deployed in your system and allows you to track how they use your database. It provides automatic end-to-end tracing down to a single database statement, database server metrics and log insights. Dynatrace visualizes application to database dependencies for SQL and noSQL databases as well as for cloud databases and self-hosted databases. It also diagnoses anomalies in real-time using AI and pinpoints the root cause down to the slow performing or erroneous SQL statements. Deep code-level insights combined with cloud-native database server monitoring will help you maintain a robust production environment.

If Cassandra is underperforming or a problem occurs, Dynatrace lets you know immediately and shows you which nodes are affected.

This is a JMX (Java Management Extension) Dynatrace extension. JMX is ideal for monitoring applications built using Java. Make sure you are monitoring your Cassandra process as the extension does not support gathering metrics from the client-side.

Use cases

  • Understand all dependencies of your applications to the database, which database statements are executed and their performance.
  • Improve the performance of your application by reducing or optimizing typical database patterns like the 1+N query problem
  • Understand the resource impact that your applications have on your database.
  • Understand the impact of resource shortages, locks or other database issues have on your application by observing the database server itself.

Requirements

  • Cassandra 2+
  • Windows or Linux

Activation and setup

For Apache Cassandra database clients:

If your client application runs on a virtual machine or bare-metal, install OneAgent on it to get started.

If your client application runs as a workload in Kubernetes or OpenShift, set up Dynatrace on Kubernetes or OpenShift.

Activate the following OneAgent features to get tracing insight:

  • Java CQL
  • Java Datastax Cql
  • Go CQL (gocql/gocql)

Activate log monitoring to get log insight.

For Apache Cassandra database servers:

If your database server runs on a virtual machine or bare-metal, install OneAgent on it to get started.

Activate the Cassandra JMX extension to get insight into database server's health and performance combined with metrics and events. Select Add to envrionment.

Activate log monitoring to get full log insight.

Details

The dashboard Cassandra JMX Overview will be included in the extension, where you can see an overview of your Cassandra JXM metrics.

Additionally, all metrics captured by the extension will be appended to the process group instance Unified Analysis screen in three new sections: Exceptions, Usage and Thread Pool. Make sure to be on the new screen for process group instances to see them.

All metrics can also be viewed with the data explorer.

Licensing and costs

The extension consumes DDU Units. However, they are elgible for the free tier included with every host. The amount of DDUs units depends on the number of instances monitored.

Feature sets

When activating your extension using monitoring configuration, you can limit monitoring to one of the feature sets. To work properly, the extension has to collect at least one metric after the activation.

In highly segmented networks, feature sets can reflect the segments of your environment. Then, when you create a monitoring configuration, you can select a feature set and a corresponding ActiveGate group that can connect to this particular segment.

All metrics that aren't categorized into any feature set are considered to be the default and are always reported.

A metric inherits the feature set of a subgroup, which in turn inherits the feature set of a group. Also, the feature set defined on the metric level overrides the feature set defined on the subgroup level, which in turn overrides the feature set defined on the group level.

column-family
Metric nameMetric keyDescription
Live SSTable countcassandra.columnFamily.liveSSTableCountThe number of live SSTables in the column family.
storage
Metric nameMetric keyDescription
Exception countcassandra.storage.exceptionsThe number of storage exceptions.
Storage loadcassandra.storage.loadThe current load on the storage system.
Storage total hintscassandra.storage.totalHintsThe total number of hints in the storage system.
client-requests-write
Metric nameMetric keyDescription
Write failure ratecassandra.clientRequest.write.failuresThe rate of write failures per second. A write failure occurs when a write request cannot be completed successfully. This can be due to various reasons such as timeouts, unavailable replicas, or other issues in the Cassandra cluster.
Write timeout ratecassandra.clientRequest.write.timeoutThe rate of write timeouts per second. A write timeout occurs when a write request cannot be completed within the specified time.
Write unavailable ratecassandra.clientRequest.write.unavailablesThe rate of write unavailables per second. A write unavailable occurs when a write request cannot be completed due to unavailable replicas.
Write latency ratecassandra.clientRequest.write.latency.rateThe rate of write latencies per second.
Write latency 95th percentilecassandra.clientRequest.write.latency.95thPercentileThe 95th percentile of write latencies.
compaction
Metric nameMetric keyDescription
Compaction pending taskscassandra.compaction.pendingTasksThe number of compaction tasks that are pending.
Compaction completed taskscassandra.compaction.completedTasksThe number of compaction tasks that have been completed.
Compaction ratecassandra.compaction.bytesCompactedThe rate of bytes compacted per second.
cache
Metric nameMetric keyDescription
KeyCache hit ratecassandra.cache.keyCache.hitsThe rate of key cache hits per second.
RowCache hit ratecassandra.cache.rowCache.hitsThe rate of row cache hits per second.
thread-pool
Metric nameMetric keyDescription
Read stage pending taskscassandra.threadPool.request.read.pending.fixThe number of pending tasks in the read stage.
Read stage active taskscassandra.threadPool.request.read.active.fixThe number of active tasks in the read stage.
Read stage blocked tasks totalcassandra.threadPool.request.read.totalBlocked.fixThe total number of blocked tasks in the read stage.
Read stage currently blocked taskscassandra.threadPool.request.read.currentlyBlocked.fixThe number of currently blocked tasks in the read stage.
ReadRepair stage pending taskscassandra.threadPool.request.readRepair.pending.fixThe number of pending tasks in the ReadRepair stage.
ReadRepair stage active taskscassandra.threadPool.request.readRepair.active.fixThe number of active tasks in the ReadRepair stage.
ReadRepair stage blocked tasks totalcassandra.threadPool.request.readRepair.totalBlocked.fixThe total number of blocked tasks in the ReadRepair stage.
ReadRepair stage currently blocked taskscassandra.threadPool.request.readRepair.currentlyBlocked.fixThe number of currently blocked tasks in the ReadRepair stage.
Mutation stage pending taskscassandra.threadPool.request.mutation.pending.fixThe number of pending tasks in the Mutation stage.
Mutation stage active taskscassandra.threadPool.request.mutation.active.fixThe number of active tasks in the Mutation stage.
Mutation stage blocked tasks totalcassandra.threadPool.request.mutation.totalBlocked.fixThe total number of blocked tasks in the Mutation stage.
Mutation stage currently blocked taskscassandra.threadPool.request.mutation.currentlyBlocked.fixThe number of currently blocked tasks in the Mutation stage.
client-requests-rangeslice
Metric nameMetric keyDescription
RangeSlice timeout ratecassandra.clientRequest.rangeSlice.timeoutThe rate of RangeSlice timeouts per second. A RangeSlice timeout occurs when a RangeSlice request cannot be completed within the specified time.
RangeSlice failure ratecassandra.clientRequest.rangeSlice.failuresThe rate of RangeSlice failures per second. A RangeSlice failure occurs when a RangeSlice request cannot be completed successfully.
RangeSlice unavailable ratecassandra.clientRequest.rangeSlice.unavailablesThe rate of RangeSlice unavailables per second. A RangeSlice unavailable occurs when a RangeSlice request cannot be completed due to unavailable replicas.
RangeSlice latency ratecassandra.clientRequest.rangeSlice.latency.rateThe rate of RangeSlice latencies per second.
RangeSlice latency 95th percentilecassandra.clientRequest.rangeSlice.latency.95thPercentileThe 95th percentile of RangeSlice latencies.
client-requests-read
Metric nameMetric keyDescription
Read failure ratecassandra.clientRequest.read.failuresThe rate of read failures per second. A read failure occurs when a read request cannot be completed successfully. This can be due to various reasons such as timeouts, unavailable replicas, or other issues in the Cassandra cluster.
Read timeout ratecassandra.clientRequest.read.timeoutThe rate of read timeouts per second. A read timeout occurs when a read request cannot be completed within the specified time.
Read unavailable ratecassandra.clientRequest.read.unavailablesThe rate of read unavailables per second. A read unavailable occurs when a read request cannot be completed due to unavailable replicas.
Read latency ratecassandra.clientRequest.read.latency.rateThe rate of read latencies per second.
Read latency 95th percentilecassandra.clientRequest.read.latency.95thPercentileThe 95th percentile of read latencies.
Related tags
DatabaseJMXNoSQLApacheInfrastructure Observability