Improve Apache Cassandra observability
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.
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:
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.
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.
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.
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.
| Metric name | Metric key | Description |
|---|---|---|
| — | cassandra.compaction.pendingTasks | — |
| — | cassandra.compaction.completedTasks | — |
| Compaction rate | cassandra.compaction.bytesCompacted | — |
| Metric name | Metric key | Description |
|---|---|---|
| Write failure rate | cassandra.clientRequest.write.failures | — |
| Write timeout rate | cassandra.clientRequest.write.timeout | — |
| Write unavailable rate | cassandra.clientRequest.write.unavailables | — |
| Write latency rate | cassandra.clientRequest.write.latency.rate | — |
| Write latency 95th percentile | cassandra.clientRequest.write.latency.95thPercentile | — |
| Metric name | Metric key | Description |
|---|---|---|
| Exception count | cassandra.storage.exceptions | — |
| Storage load | cassandra.storage.load | — |
| Storage total hints | cassandra.storage.totalHints | — |
| Metric name | Metric key | Description |
|---|---|---|
| Live SSTable count | cassandra.columnFamily.liveSSTableCount | — |
| Metric name | Metric key | Description |
|---|---|---|
| Read failure rate | cassandra.clientRequest.read.failures | — |
| Read timeout rate | cassandra.clientRequest.read.timeout | — |
| Read unavailable rate | cassandra.clientRequest.read.unavailables | — |
| Read latency rate | cassandra.clientRequest.read.latency.rate | — |
| Read latency 95th percentile | cassandra.clientRequest.read.latency.95thPercentile | — |
| Metric name | Metric key | Description |
|---|---|---|
| RangeSlice timeout rate | cassandra.clientRequest.rangeSlice.timeout | — |
| RangeSlice failure rate | cassandra.clientRequest.rangeSlice.failures | — |
| RangeSlice unavailable rate | cassandra.clientRequest.rangeSlice.unavailables | — |
| RangeSlice latency rate | cassandra.clientRequest.rangeSlice.latency.rate | — |
| RangeSlice latency 95th percentile | cassandra.clientRequest.rangeSlice.latency.95thPercentile | — |
| Metric name | Metric key | Description |
|---|---|---|
| — | cassandra.threadPool.request.read.pending.fix | — |
| — | cassandra.threadPool.request.read.active.fix | — |
| Read stage blocked tasks total | cassandra.threadPool.request.read.totalBlocked.fix | — |
| Read stage currently blocked tasks | cassandra.threadPool.request.read.currentlyBlocked.fix | — |
| — | cassandra.threadPool.request.readRepair.pending.fix | — |
| — | cassandra.threadPool.request.readRepair.active.fix | — |
| ReadRepair stage blocked tasks total | cassandra.threadPool.request.readRepair.totalBlocked.fix | — |
| ReadRepair stage currently blocked tasks | cassandra.threadPool.request.readRepair.currentlyBlocked.fix | — |
| — | cassandra.threadPool.request.mutation.pending.fix | — |
| — | cassandra.threadPool.request.mutation.active.fix | — |
| Mutation stage blocked tasks total | cassandra.threadPool.request.mutation.totalBlocked.fix | — |
| Mutation stage currently blocked tasks | cassandra.threadPool.request.mutation.currentlyBlocked.fix | — |
| Metric name | Metric key | Description |
|---|---|---|
| KeyCache hit rate | cassandra.cache.keyCache.hits | — |
| RowCache hit rate | cassandra.cache.rowCache.hits | — |