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? Contact our support team at [email protected] or join our Slack channel.