Cassandra Integration
Collect Cassandra performance metrics via JMX and visualise them in Middleware dashboards. The Middleware Host Agent attaches a JMX receiver to your Cassandra cluster and ships metrics to Middleware.
Important: This integration currently supports clusters using the default AllowAllAuthenticator.
Prerequisites#
- Middleware Host Agent installed on the host that will collect metrics.
- Network access from the Host Agent to Cassandra’s JMX port (default 7199).
Setup#
1 Access Integrations#
Sign in to Middleware → Installations (bottom-left) → All Integrations → Cassandra.

2 Connect Cassandra Instance#
Select the host that will collect metrics from your Cassandra cluster. (Only hosts with a running Host Agent appear here.)

3 Configure Your Host#
Point the selected host at the Cassandra IP/hostname and JMX port.
- Default JMX port:
7199.Quick reachability check (from the Host Agent machine):
1nc -vz <cassandra-host> 7199 - If your deployment sets JMX explicitly, it’s typically via JVM flags like
-Dcom.sun.management.jmxremote.port=7199(Cassandra sets these throughcassandra-env.sh).
Visualise Your Data#
- Default Cassandra dashboard: Open Dashboard Builder → Cassandra – Metrics Dashboard for an immediate overview.
- Create widgets: In your target dashboard, Add New Widget → cassandra data source to chart the metrics you care about (latency percentiles, compaction tasks, storage load/hints, etc.).
Note: Learn more about creating your own widgets and dashboards in the Dashboard Builder section.
Metrics Collected#
| Metrics Name | Description |
|---|---|
cassandra.client.request.count | Total count of client requests |
cassandra.client.request.error.count | Count of errors that occurred during client requests. |
cassandra.client.request.range_slice.latency.50p | 50th percentile latency for range-slice requests. |
cassandra.client.request.range_slice.latency.99p | 99th percentile latency for range-slice requests. |
cassandra.client.request.range_slice.latency.max | Maximum latency for range-slice requests. |
cassandra.client.request.read.latency.50p | 50th percentile read latency. |
cassandra.client.request.read.latency.99p | 99th percentile read latency. |
cassandra.client.request.read.latency.max | Maximum read latency. |
cassandra.client.request.write.latency.50p | 50th percentile write latency. |
cassandra.client.request.write.latency.99p | 99th percentile write latency. |
cassandra.client.request.write.latency.max | Maximum write latency. |
cassandra.compaction.tasks.completed | Total completed compaction tasks. |
cassandra.compaction.tasks | Current compaction tasks. |
cassandra.storage.load.count | Storage load count. |
cassandra.storage.total_hints.count | Total hints stored |
cassandra.storage.total_hints.in_progress.count | Hints currently in progress. |
Troubleshooting#
The Cassandra integration menu isn’t visible
- Your account likely lacks Installation permissions. Ask an admin to grant the Installation permission to your role in Settings.
Host Agent doesn’t list my machine in Step 2
- Ensure the Middleware Host Agent is installed and running on that host. (See Installation Guide from the docs sidebar.)
No metrics arrive after Step 3
- Verify the Host Agent can reach Cassandra’s JMX port (default 7199):
nc -vz <cassandra-host> 7199. - If you customised JMX, confirm the port and interface in your JVM/Cassandra settings (commonly via
cassandra-env.shwith-Dcom.sun.management.jmxremote.port=...). - Check firewall rules to allow the Host Agent → JMX port path (7199 by default).
Multi-node cluster, but only one node shows data
- Add each node’s address and JMX port to the Host Agent’s configuration/connection so every node is scraped; JMX exposure is per instance. (JMX is node-local; ensure network path from the Agent host to each node’s 7199.)
Need assistance or want to learn more about Middleware? Get in touch with us via our Contact Us or join our Slack channel.