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.

Cassandra Overview

2 Connect Cassandra Instance

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

Cassandra Host Select

3 Configure Your Host

Point the selected host at the Cassandra IP/hostname and JMX port.

  • Default JMX port: 7199.
    Cassandra Post
    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 through cassandra-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 NameDescription
cassandra.client.request.countTotal count of client requests
cassandra.client.request.error.countCount of errors that occurred during client requests.
cassandra.client.request.range_slice.latency.50p50th percentile latency for range-slice requests.
cassandra.client.request.range_slice.latency.99p99th percentile latency for range-slice requests.
cassandra.client.request.range_slice.latency.maxMaximum latency for range-slice requests.
cassandra.client.request.read.latency.50p50th percentile read latency.
cassandra.client.request.read.latency.99p99th percentile read latency.
cassandra.client.request.read.latency.maxMaximum read latency.
cassandra.client.request.write.latency.50p50th percentile write latency.
cassandra.client.request.write.latency.99p99th percentile write latency.
cassandra.client.request.write.latency.maxMaximum write latency.
cassandra.compaction.tasks.completedTotal completed compaction tasks.
cassandra.compaction.tasksCurrent compaction tasks.
cassandra.storage.load.countStorage load count.
cassandra.storage.total_hints.countTotal hints stored
cassandra.storage.total_hints.in_progress.countHints 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.sh with -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.