Monitor Apache Cassandra for Performance and Availability

Are you using Apache Cassandra in your application? You can use IDERA Uptime Cloud Monitor to monitor your Apache Cassandra for availability and performance. As an illustration, you can configure and receive alerts for the following scenarios:

  • Performance: alert if the Apache Cassandra performance is poor.
    • If the load value is significantly above its normal range, that would imply that the Apache Cassandra cluster is under heavy load. 
    • If the pending_tasks value is significantly above its normal range, that would imply that the Apache Cassandra cluster is under heavy load.

Prerequisites

Uptime Cloud Monitor from IDERA(UCM) offers a SAAS based out-of-the-box solution for monitoring Apache Cassandra for performance and availability. If you are not familiar with the concept of custom metrics as used in Uptime Cloud Monitor, please go through Custom Metrics information once before continuing with this document.

  1. Uptime Cloud Monitor account. If you don’t already have an account, you can sign up for a 14 day FREE TRIAL of Uptime Cloud Monitor here (no Credit Card required). 
  2. Apache Cassandra up and running in your environment. 
  3. Root access to the server to install the Apache Cassandra agent.

Monitor Apache Cassandra using out-of-the-box custom metrics installer from Uptime Cloud Monitor

There are three steps that you need to do to start monitoring a Apache Cassandra service:

  1. Apache Cassandra Agent Installation
  2. Verify that your Apache Cassandra Dashboard is up and running
  3. Configure alerts to be notified about Apache Cassandra performance issues

1.Apache Cassandra Agent Installation

Figure 1: In your Uptime Cloud Monitor Account, navigate to Custom>Getting Started

Login to your Uptime Cloud Monitor account and navigate to Custom tab -> Getting Started. Click on Apache Cassandra icon. 

Figure 2: The Apache Cassandra agent installation script

Click on   icon to copy the installer script to your clipboard. Paste the command into the terminal window on the server where you want to install the agent.  Script can be run on the server running Apache Cassandra, or it can be a different server, but this server will need to be continually running in order to monitor Apache Cassandra.

As soon as the script is run on a terminal with root access, it starts downloading the required Apache Cassandra monitoring agent on your server. You will need to configure the following items in the agent installation process. Item specified in square brackets ( [ ] ) are the default.

 

Figure 3: Executing the Apache Cassandra agent installation script with user as copperegg, Group as copperegg and monitoring frequency as 60 seconds

1. User and Group for running service as default values: [copperegg][copperegg]

2. Monitoring frequency: 15, [60], 300, 900, 3600 seconds

Figure 4: Executing the Apache Cassandra agent installation script with group name as  “Apache Cassandra”, group label as “Apache Cassandra metrics” and  Dashboard  as “Apache Cassandra”

3. Group label, group name and dashboard name for custom metrics [Apache Cassandra][Apache Cassandra Metrics][Apache Cassandra]

Figure 5: Executing the Apache Cassandra agent installation script with unique id , server URL and port. Only one Apache Cassandra cluster is added for monitoring.

4. Unique name for this db server. [<user>-Apache Cassandra]

5. Server details : URL and Port for service. [localhost][7199]

6. Username and Password are optional.

7. After configuring one node, you’ll get an option to add more Apache Cassandra clusters and servers

 

Figure 6: Executing the Apache Cassandra agent installation script with an upstart init file and the default value for log file name. The installation completes successfully!

8. Configure log file name and upstart job name (defaults present) [/usr/local/copperegg/log/Apache Cassandra_metrics.log][/etc/init/revealmetrics_Apache Cassandra.conf]

2.Verify that your Apache Cassandra Dashboard is up and running

Navigate to Dashboard and you will see a new Apache Cassandra Dashboards have been added automatically by the installer.

Figure 7: A new Dashboard for Apache Cassandra and Apache Cassandra has been added

As the installed script executes, you will notice data samples appearing on the widgets for this Dashboard.

Figure 8: Widget inside Apache Cassandra Dashboard displaying Load.

 

 

Figure 9: Widget inside Apache Cassandra Dashboard displaying count of pending tasks.

 

Figure 10: Widget inside Apache Cassandra Dashboard displaying read latency.

Monitored metrics

Uptime Cloud Monitor currently monitors 39 metrics which cover most of the important metrics for Apache Cassandra from a performance and stability perspective. You can see these 39 metrics by navigating to the Custom Tab > Custom Objects and selecting Details on the Custom Metrics Group Label [Apache Cassandra Metrics] that was given as installation input. For some of these metrics, alerts have been automatically created (see section 3 below). To create new alerts see section below on "Configuring your own Alerts for Apache Cassandra."

The metrics are:

  • exceptions : Exceptions (alert automatically created)
  • load : Load (alert automatically created)
  • key_cache_size : Key cache size
  • key_cache_capacity : Key cache capacity
  • key_cache_hits : Key cache hits
  • key_cache_requests : Key cache requests
  • key_cache_recent_hit_rate : Key cache recent hit rate
  • row_cache_size : Row cache size
  • row_cache_capacity : Row cache capacity
  • row_cache_hits : Row cache hits
  • row_cache_requests : Row cache requests
  • row_cache_recent_hit_rate : Row cache recent hit rate
  • counter_cache_size : Counter cache size
  • counter_cache_capacity : Counter cache capacity
  • counter_cache_hits : Counter cache hits  
  • counter_cache_requests : Counter cache requests  
  • counter_cache_recent_hit_rate : Counter cache recent hit rate  
  • active_tasks : Active tasks  
  • pending_tasks : Pending tasks
  • completed_tasks : Completed tasks  
  • currently_blocked_tasks : Currently blocked tasks  
  • total_blocked_tasks : Total blocked tasks  
  • read_count : Read count
  • write_count : Write count
  • write_latency : Write latency
  • read_latency : Read latency
  • bloom_filter_disk_space_used : Bloom filter disk space used
  • bloom_filter_false_positive : Bloom filter false positive
  • live_disk_space_used : Live disk space used
  • total_disk_space_used : Total disk space used
  • sstable_count : Sstable count
  • memtable_column_count : Memtable column count
  • memtable_data_size : Memtable data size
  • memtable_switch_count : Memtable switch count
  • bloom_filter_false_ratio : Bloom filter false ratio
  • compression_ratio : Compression ratio
  • min_row_size : Min row size
  • max_row_size : Max row size
  • mean_row_size : Mean row size

3.Configure Alerts to be notified about Apache Cassandra performance issues

Default Pre-Configured Alerts for Apache Cassandra Database

As soon as your Apache Cassandra Database Monitoring Dashboard comes up, you will notice that some alert configurations have been automatically created by our Installation Script (under Alerts > Configure Alerts). These pre-configured alerts for Apache Cassandra Database include:

Sr. No. Metric Name Definition Alert Definitions Duration
1 Exceptions The number of exceptions thrown This alert will trigger for all exceptions 3 Mins
2 Load Disk space used on a node

1. Warning alert if the load exceeds 60% disk usage

2. Alert will be triggered if the load average exceeds 70% disk usage

3 Mins

If the alerting condition is met for these pre-configured alerts, some alert notifications may also be triggered.

Configuring your own Alerts for Apache Cassandra Database

Figure 11: A new alert being added that will be triggered when Load metric exceeds a threshold of 1 within a time period of 1 min

Alerts can also be configured against any of these 39 monitored metrics for Apache Cassandra.

You can configure new alerts that will be triggered when performance issues with Apache Cassandra arise. You can also configure the notification mechanisms for a triggered alert.

  1. Go to Alerts Tab > Configure alerts and click on “New Alerts” button
  2. Provide values for these fields in the New Alert page:
    • Description: A description of the alert that will be easily recognized by you and your team if the alert is triggered
    • Alert me when: Select the metric of interest and the condition upon which the alert is triggered. In the Alert me whendropdown, you can prefill “Custom: <your Apache Cassandra Metric Group>” to get only the list of monitored metrics for your specific Apache Cassandra cluster. From this list, you can then select the specific metric for which you want to configure an alert. As an illustration, in Figure 11, the chosen metric of interest in ‘Alert me when’ is ‘Custom: Cassandra Metrics: Load’ from the Apache Cassandra Metrics group and the condition for triggering the alert is if the average value is more than 1.
    • For at least: The duration for which the alert condition must be valid for the alert to be triggered
    • Matching tags: By default, (match everything) is chosen. If needed, you can attach tags to a particular metric object and select those tags here, which would cause only alerts on that metric object to be triggered.
    • Excluding tags: By default, (exclude nothing) is chosen. If needed, you can attach tags to a particular metric object and select those tags here, which would cause alerts on that metric object to be skipped.
    • Annotate: When enabled, an annotation is automatically created when the alert is triggered. Annotations will be visible in the custom metrics dashboard where the data stream is displayed.
    • Automatic Clear: When enabled, the alert issue is automatically cleared if the triggering condition is no longer true
    • Notify on clear: When enabled, notifications are also sent when the alert issue is cleared. Please do note that notifications are always sent when the alert issue is triggered.
    • Send Notifications To: Here you can configure the notification mechanisms by which the alert is communicated to you and others in your team.

Uptime Cloud Monitor supports notifying different sets of users with differing notification mechanisms for each alert type.

Notification mechanisms include:

  • Email
  • SMS
  • PagerDuty
  • Twitter
  • HipChat
  • Campfire
  • Slack
  • OpsGenie

Webhooks are also exposed for clients to configure custom notification mechanisms.

More about setting up website probe alerts can be found here.

Uptime Cloud Monitor Free Trial! Sign up today!

Sign up for a 14 day FREE TRIAL of Uptime Cloud Monitor (no Credit Card required).

You can find more information about Uptime Cloud Monitor pricing options here.

We charge only $0.08 per month per metric!

Sign up today!