Supported Versions |
---|
311x or higher |
Introduction
Apache Cassandra is an open-source distributed database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. Cassandra offers robust support for clusters spanning multiple datacenters, with asynchronous masterless replication allowing low latency operations for all clients. Apache Cassandra is the only NoSQL solution that can accommodate the complex requirements of modern line-of-business applications and is monitored through JMX. It is architected from the ground up for real-time enterprise databases that require vast scalability, high-velocity performance, flexible schema design, and continuous availability.
The benefits Cassandra delivers to your business include:
- Elastic scalability– Allows you to easily add capacity online to accommodate more customers and more data whenever you need. Always on architecture – Contains no single point of failure (as with traditional master/slave RDBMS’s and other NoSQL solutions) resulting in continuous availability for business-critical applications that can’t afford to go down, ever.
- Fast linear-scale performance– Enables sub-second response times with linear scalability (double your throughput with two nodes, quadruple it with four, and so on) to deliver response time speeds your customers have come to expect.
- Flexible data storage– Easily accommodates the full range of data formats – structured, semi-structured and unstructured – that run through today’s modern applications. Also dynamically accommodates changes to your data structures as your data needs evolve.
- Easy data distribution– Gives you maximum flexibility to distribute data where you need by replicating data across multiple data centers, the cloud and even mixed cloud/on-premise environments. Read and write to any node with all changes being automatically synchronized across a cluster.
- Operational simplicity– with all nodes in a cluster being the same, there is no complex configuration to manage so administration duties are greatly simplified.
- Transaction support – Delivers the “AID” in ACID compliance through its use of a commit log to capture all writes and built-in redundancies that ensure data durability in the event of hardware failures, as well as transaction isolation, atomicity, with consistency being tunable.
In addition, Cassandra requires no new equipment and is very economical to run. It also provides data compression (up to 80% in some cases), eliminates the hassle of memory caching software (e.g., memcached), and provides a query language (CQL) that’s similar to SQL, flattening the learning curve.
Discovery using the agent
Collector Type: Agent
Category: Application Monitors
Application Name: Cassandra
Global Template Name : Linux - Cassandra2 Template
Pre-requisite : Please refer to JMX Monitoring to enable JMX in the java application.
Parameters
Names | Description | Default Value |
---|---|---|
IPAddress | IP Address on which the JMX listens | 127.0.0.1 |
Port | JMX Listener port | 7199 |
Username | Username, if enabled in JMX | NA |
Password | Username, if enabled in JMX | NA |
Java Bin Path | Path of the Java binary. | java |
Note: All field attributes are mandatory, use default values wherever applicable.
Collected Metrics
Metric Name | Display Name |
---|---|
cassandra.load_count The number of load. | Cassandra Load Count |
cassandra.exceptions_count The number of exceptions thrown. | Cassandra Data Exceptions |
cassandra.cache.hits The number of hits to a cache. | Cassandra Hits Count |
cassandra.cache.hitrate Cache hit rate. | Cassandra Cache Hit Rate |
cassandra.cache.requests The number of requests to a cache. | Cassandra Requests Count |
cassandra.capacity The capacity of the caches, such as the key cache and row cache. | Cassandra Capacity |
cassandra.cache.size Size of cache. | Cassandra Size |
cassandra.client.request.read.latency Read latency for all client requests. | Cassandra Read Request Latency |
cassandra.client.request.Write.latency Write latency for all client requests. | Cassandra Write Requests Latency |
cassandra.read.requests Number of read requests. | Cassandra Read Requests |
cassandra.write.requests Number of writes requests. | Cassandra Write Requests |
cassandra.read.request_timeouts Count of read requests not acknowledged within configurable timeout window. | Cassandra Read Requests Timeouts |
cassandra.write.request_timeouts Count of write requests not acknowledged within configurable timeout window. | Cassandra Write Requests Timeouts |
cassandra.read.request_unavailables Count read of requests for which the required number of nodes was unavailable. | Cassandra Read Requests Unavailables |
cassandra.write.request_unavailables Count write of requests for which the required number of nodes was unavailable. | Cassandra Write Requests Unavailables |
cassandra.commitlog.tasks_completed Approximate number of completed task per second. | Cassandra Commitlog Completed Tasks |
cassandra.commitlog.tasks_pending Approximate number of pending task. | Cassandra Commitlog Pending Tasks |
cassandra.commitlog.total_size Current data size of all commit log segments in megabytes. | Cassandra Commitlog Size |
cassandra.compaction.tasks_completed Estimated number of completed compaction tasks per second. | Cassandra Compaction Completed Tasks |
cassandra.compaction.tasks_pending Estimated number of pending compaction tasks. | Cassandra Compaction Pending Tasks |
cassandra.compaction_completed Number of compactions completed per second. | Cassandra Compactions Completed |
cassandra.compaction.bytes_compacted Compacted bytes size. | Cassandra Compacted Bytes |
cassandra.connection.timeouts Number of timeouts occurred for this node per second. | Cassandra Cassandra Connection Timeouts |
cassandra.dropped.messages Number of dropped message for each verb per second. | Cassandra Dropped Messages |
cassandra.streaming.active_outbounds Currently active outbound streams. | Cassandra Active Outbound Streams |
cassandra.streaming.bytes_incoming Incoming data per second in megabytes. | Cassandra Data Received |
cassandra.streaming.bytes_outgoing Outgoing data per second in megabytes. | Cassandra Data Sent |
cassandra.internal.tasks_active Approximate number of tasks thread pool is actively executing on path - internal. | Cassandra Internal Active Tasks |
cassandra.tasks_active Approximate number of tasks thread pool is actively executing on path - request. | Cassandra Request Active Tasks |
cassandra.internal.tasks_completed Approximate number of tasks thread pool has completed execution per second on path - internal. | Cassandra Internal Completed Tasks |
cassandra.tasks_completed Approximate number of tasks thread pool has completed execution per second on path - request. | Cassandra Request Completed Tasks |
cassandra.internal.currently_blocked_tasks Number of currently blocked tasks on path - internal. | Cassandra Internal Current Blocked Tasks |
cassandra.tasks_currently_blocked Number of currently blocked tasks on path - request. | Cassandra Request Current Blocked Tasks |
cassandra.internal.pending_tasks Approximate number of pending tasks thread pool has on path - internal. | Cassandra Internal Pending Tasks |
cassandra.tasks_pending Approximate number of pending tasks thread pool has on path - request. | Cassandra Request Pending Tasks |
cassandra.internal.tasks_blocked Number of blocked tasks per second on path - internal. | Cassandra Internal Blocked Tasks |
cassandra.tasks_blocked Number of blocked tasks per second on path - request. | Cassandra Request Blocked Tasks |
cassandra.total_disk_space_used.count Disk space used by a column family. | Cassandra Total Disk Space Used Count |
cassandra.bloom_filter_disk_space_used Disk space used by the Bloom filters. | Cassandra Bloom Filter Disk Space Used |
cassandra.bloom_filter_false_positives The number of Bloom filter false positives. | Cassandra Cassandra Bloom Filter False Positives |
cassandra.bloom_filter_false_ratio The ratio of Bloom filter false positives to total checks. | Cassandra Bloom Filter False Ratio |
cassandra.compression_ratio The compression ratio for all SSTables in a column family. | Cassandra Compression Ratio |
cassandra.live_disk_space_used.count Disk space used by "live" SSTables (only counts non-obsolete files). | Cassandra Live Disk Space Used Count |
cassandra.live_ss_table_count Number of "live" (non-obsolete) SSTables. | Cassandra Live SS Table Count |
cassandra.max_row_size Size of the largest compacted row. | Cassandra Max Row Size |
cassandra.mean_row_size Average size of compacted rows. | Cassandra Mean Row Size |
cassandra.memtable_columns_count Number of columns in memtable. | Cassandra Memtable Columns Count |
cassandra.memtable_live_data_size Size of data stored in memtable. | Cassandra Memtable Live Data Size |
cassandra.memtable_switch_count.count Number of "live" (non-obsolete) SSTables. | Cassandra Live SS Table Count |
cassandra.live_ss_table_count Number of times a full memtable has been switched out for an empty one due to flushing. | Cassandra Memtable Switch Count |
cassandra.min_row_size Size of the smallest compacted row. | Cassandra Min Row Size |
cassandra.jvm.gc_collection_count Number of garbage objects collected. | Cassandra JVM GC collection_count |
cassandra.jvm.gc_collection_time Time taken for collection of the garbage objects. | Cassandra JVM GC collection_time |
cassandra.jvm.mem_heap_committed Heap memory committed (in MB) for the server. | Cassandra JVM Mem heap_committed |
cassandra.jvm.mem_heap_used Heap memory usage (in MB) of the server. | Cassandra JVM Mem heap_used |
cassandra.jvm.mem_non_heap_committed Non-heap memory committed (in MB) for the server. | Cassandra JVM Mem non_heap_committed |
cassandra.jvm.mem_non_heap_used Non-heap memory usage (in MB) of the server. | Cassandra JVM Mem non_heap_used |
cassandra.jvm.open_fds Number of Open file descriptors of the server. | Cassandra JVM OpenFDs |
cassandra.jvm.threads Number of threads. | Cassandra JVM Threads |
cassandra.jvm.uptime Uptime of the server. | Cassandra Uptime |
Discovery using the gateway
The administrator can deploy a gateway to support Cassandra agentless monitoring. The gateway establishes a connection to the database using the management profile, collects metrics from the templates, and starts monitoring.
To monitor Cassandra:
- Associate appropriate database credentials to the discovered database.
- Assign one or more database-specific global templates on the device.
Choose one of the following management mechanisms to discover Cassandra servers and add them to your inventory:
WMI
SSH
SNMP
(Optional)Manually add a database server to the infrastructure inventory.
- Select Infrastructure.
- Click Settings > Resource > Add.
- From the Add Device window, enter the required details such as Device Type and Management Profile.
- Click Save.
Prerequisites
- Install gateway version 5.0.0 or later.
- Map a suitable gateway management profile to a resource.
- Create credentials with type
JMX
before assigning a template to a resource. The Port, Connection Time-out, and Is Secure values are not used to create credentials. - Configure JMX in the end device.
View resource metrics
The gateway monitors the application using the assigned templates and displays the results in graphical format. To view resource metrics, click the desired Database Resource Name > Resource Details > Metrics.
Troubleshooting
Verify the following if the graphs are generated incorrectly:
- The resource is accessible and Telnet is established for the IP address and port.
- Valid credentials are used for the resource.
If you experience Cassandra monitoring issues, try the following troubleshooting steps:
- Verify server and gateway connectivity using Ping -
ping IP Address
Example -
ping 12.26.105.173
- Verify Telnet-to-server listening port connectivity -
telnet IP Address Port
Example -
telnet 172.26.105.173 9988
Supported templates
- Cassandra ClientReq Storage Threadpool Template
- Cassandra ColumnFamily Template
- Cassandra Jvm Template
- Cassandra Keyspace Template
After selecting the templates, you can:
- Assign Cassandra templates from Setup or at the device level.
- Customize default configuration parameter values while assigning the template.
Resource template configuration parameters
Configuration Parameter | Description |
---|---|
Connection Time-out | Maximum database connect time. The driver waits for the specified time before timing out due to connection failure. The default time is 15000 milliseconds(ms). |
Service Transport Type | The secure database end-point. The default type is In-secure. The connection is Secure when the data sent between the client and server is encrypted. |
Service Port | The port number where the database is running. The connection is made to the specified port if you specify the port and the database name. The default ports are 8091 and 9988. |
API URL | The URL establishes the network connection to the Cassandra cluster. Use the following format while connecting to the database: service:jmx:rmi:///jndi/rmi://${jmx.rmi.host}:${jmx.rmi.port}/jmxrmi |
Application Type | The application type value to identify the adapter. For example, APACHE_CASSANDRA. Do not change the default application type value. |
Supported metrics
Metric | Metric Display Name | Unit | Description |
---|---|---|---|
cassandra.clientrequest.latency.75th_percentile | Cassandra 75th Percentile Clientrequest Latency | microsecond | The client request latency - p75 |
cassandra.clientrequest.latency.95th_percentile | Cassandra 95th Percentile Clientrequest Latency | microsecond | The client request latency - p95 |
cassandra.clientrequest.latency.one_minute_rate | Cassandra One Minute Rate Percentile Clientrequest Latency | Requests per Sec | The number of client requests |
cassandra.columnfamily.bloomfilter.falseratio | Cassandra Columnfamily Bloomfilter False Ratio | percent | The ratio of bloom filter false positives to total checks |
cassandra.columnfamily.bytesflushed.count | Cassandra Columnfamily Bytes Flushed Count | bytes | The amount of data flushed since (re)start |
cassandra.columnfamily.compaction_bytes_written_count | Cassandra Columnfamily Compaction Bytes Written Count | bytes | Cassandra Columnfamily compaction bytes written count |
cassandra.columnfamily.compression_ratio | Cassandra Columnfamily Compression Ratio | percent | The compression ratio for all SSTables. A low value means a high compression contrary to the name./td> |
cassandra.columnfamily.live_disk_space_used | Cassandra Columnfamily Live Disk Space Used | bytes | The disk space used by "live" SSTables (only counts in use files) |
cassandra.columnfamily.max_row_size | Cassandra Columnfamily Max Row Size | bytes | The size of the largest compacted row. |
cassandra.columnfamily.mean_row_size | Cassandra Columnfamily Mean Row Size | bytes | The average size of the compacted rows |
cassandra.columnfamily.overall.range_latency.75th_percentile | Cassandra Columnfamily 75th Percentile Overall Range Latency | microsecond | Cassandra Columnfamily 75th percentile overall range latency |
cassandra.columnfamily.overall.range_latency.95th_percentile | Cassandra Columnfamily 95th Percentile Overall Range Latency | microsecond | The local range request latency - p95 |
cassandra.columnfamily.overall.range_latency.one_minute_rate | Cassandra Columnfamily One Minute Rate Overall Range Latency | count | The number of local range requests |
cassandra.columnfamily.overall.read_latency.75th_percentile | Cassandra Columnfamily 75th Percentile Overall Read Latency | microsecond | The local read latency - p75 |
cassandra.columnfamily.overall.read_latency.95th_percentile | Cassandra Columnfamily 95th Percentile Overall Read Latency | microsecond | The local read latency - p95 |
cassandra.columnfamily.overall.read_latency.99th_percentile | Cassandra Columnfamily 99th Percentile Overall Read Latency | microsecond | The local read latency - p99 |
cassandra.columnfamily.overall.read_latency.one_minute_rate | Cassandra Columnfamily One Minute Rate Overall Read Latency | count | The number of local read requests |
cassandra.columnfamily.overall.write_latency.75th_percentile | Cassandra Columnfamily 75th Percentile Overall Write Latency | microsecond | The local write latency - p75 |
cassandra.columnfamily.overall.write_latency.95th_percentile | Cassandra Columnfamily 95th Percentile Overall Write Latency | microsecond | The local write latency - p95 |
cassandra.columnfamily.overall.write_latency.99th_percentile | Cassandra Columnfamily 99th Percentile Overall Write Latency | microsecond | The local write latency - p99 |
cassandra.columnfamily.overall.write_latency.one_minute_rate | Cassandra Columnfamily One Minute Rate Overall Write Latency | count | The number of local write requests |
cassandra.columnfamily.pending_compactions | Cassandra Columnfamily Pending Compactions | count | The number of pending compactions |
cassandra.columnfamily.pending_flushes | Cassandra Columnfamily Pending Flushes | count | The number of pending flushes |
cassandra.columnfamily.row_cache_hit.count | Cassandra Columnfamily Row Cache Hit Count | count | The number of row cache hits |
cassandra.columnfamily.row_cache_hit_out_of_range_count | Cassandra Columnfamily Row Cache Hit Out Of Range Count | count | The number of row cache hits that do not satisfy the query filter and moved to disk |
cassandra.columnfamily.row_cache_miss_count | Cassandra Columnfamily Row Cache Miss Count | count | The number of table row cache misses |
cassandra.columnfamily.view_read_time.75th_percentile | Cassandra Columnfamily 75th Percentile View Read Time | microsecond | The time taken during the local read of a materialized view update - p75 |
cassandra.columnfamily.view_read_time.95th_percentile | Cassandra Columnfamily 95th Percentile View Read Time | microsecond | The time taken during the local read of a materialized view update - p95 |
cassandra.columnfamily.view_read_time.one_minute_rate | Cassandra Columnfamily One Minute Rate View Read Time | rps | The number of local reads for a materialized view update |
cassandra.db.columnfamilies.droppable_tombstone_ratio | Cassandra DB Columnfamilies Droppable Tombstone Ratio | percent | The estimate of the droppable tombstone ratio |
cassandra.keyspace.cas.commit.latency.75th_percentile | Cassandra Keyspace CAS 75th Percentile Commit Latency | microsecond | The latency of paxos commit round - p75 |
cassandra.keyspace.cas_commit_latency.one_minute_rate | Cassandra Keyspace CAS One Minute Rate Commit Latency | per second | The number of paxos commit round per second |
cassandra.keyspace.cas_prepare_latency.75th_percentile | Cassandra Keyspace CAS 75th Percentile Commit Latency | microsecond | The latency of paxos commit round - p75 |
cassandra.keyspace.cas_commit_latency.95th_percentile | Cassandra Keyspace CAS 95th Percentile Commit Latency | microsecond | The latency of paxos commit round - p95 |
cassandra.keyspace.cas_commit_latency.one_minute_rate | Cassandra Keyspace CAS One Minute Rate Commit Latency | per second | The number of paxos commit round per second |
cassandra.keyspace.cas_prepare_latency.75th_percentile | Cassandra Keyspace CAS 75th Percentile Prepare Latency | microsecond | The latency of paxos prepare round - p75 |
cassandra.keyspace.cas_prepare_latency.95th_percentile | Cassandra Keyspace CAS 95th Percentile Prepare Latency | microsecond | The latency of paxos prepare round - p95 |
cassandra.keyspace.cas_prepare_latency.one_minute_rate | Cassandra Keyspace CAS One Minute Rate Prepare Latency | per second | The number of paxos prepare round per second |
cassandra.keyspace.cas_propose_latency.75th_percentile | Cassandra Keyspace CAS 75th Percentile Propose Latency | microsecond | The latency of paxos propose round - p75 |
cassandra.keyspace.cas_propose_latency.95th_percentile | Cassandra Keyspace CAS 95th Percentile Propose Latency | microsecond | The latency of paxos propose round - p95 |
cassandra.keyspace.cas_propose_latency.one_minute_rate | Cassandra Keyspace CAS One Minute Rate Propose Latency | per second | The number of paxos propose round per second |
cassandra.keyspace.total_disk_space_used | Cassandra Keyspace Total Disk Space Used | bytes | Total disk space used by SSTables including obsolete ones waiting to be GC’d |
cassandra.storage.exceptions.count | Cassandra Storage Exceptions Count | count | The number of exceptions thrown from ‘Storage’ metrics |
cassandra.threadpools.currently_blocked_tasks_count | Cassandra Threadpools Currently Blocked Tasks | count | The number of currently blocked tasks for the thread pool |
cassandra.threadpools.interrnal.total_blocked_tasks | Cassandra Threadpools Total Internal Blocked Tasks | count | Total count of blocked tasks |
cassandra.threadpools.pending_tasks | Cassandra Threadpools Pending Tasks | count | The number of pending tasks for the thread pool |