

# Monitoring Amazon Keyspaces with Amazon CloudWatch
<a name="monitoring-cloudwatch"></a>

You can monitor Amazon Keyspaces using Amazon CloudWatch, which collects raw data and processes it into readable, near real-time metrics. These statistics are kept for 15 months, so that you can access historical information and gain a better perspective on how your web application or service is performing. 

You can also set alarms that watch for certain thresholds, and send notifications or take actions when those thresholds are met. For more information, see the [Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

**Note**  
To get started quickly with a preconfigured CloudWatch dashboard showing common metrics for Amazon Keyspaces, you can use an CloudFormation template available from [https://github.com/aws-samples/amazon-keyspaces-cloudwatch-cloudformation-templates](https://github.com/aws-samples/amazon-keyspaces-cloudwatch-cloudformation-templates).

**Topics**
+ [

## How do I use Amazon Keyspaces metrics?
](#how-to-use-metrics)
+ [

# Amazon Keyspaces metrics and dimensions
](metrics-dimensions.md)
+ [

# Viewing Amazon Keyspaces metrics in CloudWatch
](view-metrics.md)
+ [

# Creating CloudWatch alarms to monitor Amazon Keyspaces
](creating-alarms.md)

## How do I use Amazon Keyspaces metrics?
<a name="how-to-use-metrics"></a>

The metrics reported by Amazon Keyspaces provide information that you can analyze in different ways. The following list shows some common uses for the metrics. These are suggestions to get you started, not a comprehensive list. For more information about metrics and retention, see [Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric). 


****  

|  How can I?  |  Relevant metrics  | 
| --- | --- | 
|  How can I determine if any system errors occurred?  |  You can monitor `SystemErrors` to determine whether any requests resulted in a server error code. Typically, this metric should be equal to zero. If it isn't, you might want to investigate.  | 
|  How can I compare average provisioned read to consumed read capacity?  |  To monitor average provisioned read capacity and consumed read capacity [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring-cloudwatch.html) You can now compare your average consumed read capacity to your provisioned capacity. For more information on basic arithmetic functions and how to create a time series see [Using metric math](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html).  | 
|  How can I compare average provisioned write to consumed write capacity?  |  To monitor average provisioned write capacity and consumed write capacity [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring-cloudwatch.html) You can now compare your average consumed write capacity to your provisioned capacity. For more information on basic arithmetic functions and how to create a time series see [Using metric math](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html).   | 

# Amazon Keyspaces metrics and dimensions
<a name="metrics-dimensions"></a>

When you interact with Amazon Keyspaces, it sends metrics and dimensions to Amazon CloudWatch. All metrics are aggregated and reported every minute. The following sections are an overview of all available metrics for Amazon Keyspaces.

**Topics**
+ [

## Amazon Keyspaces metrics
](#keyspaces-metrics-dimensions)
+ [

## Dimensions for Amazon Keyspaces metrics
](#keyspaces-metric-dimensions)
+ [

## Metrics for Amazon Keyspaces change data capture (CDC)
](#keyspaces-cdc-metrics)
+ [

## Dimensions for Amazon Keyspaces change data capture (CDC) metrics
](#keyspaces-metric-dimensions-cdc)

## Amazon Keyspaces metrics
<a name="keyspaces-metrics-dimensions"></a>

Amazon CloudWatch aggregates Amazon Keyspaces metrics at one-minute intervals.

Not all statistics, such as `Average` or `Sum`, are applicable for every metric. However, all of these values are available through the Amazon Keyspaces console, or by using the CloudWatch console, AWS CLI, or AWS SDKs for all metrics. In the following table, each metric has a list of valid statistics that are applicable to that metric.


| Metric | Description | 
| --- | --- | 
| AccountMaxTableLevelReads |  The maximum number of read capacity units that can be used by a table of an account. For on-demand tables this limit caps the maximum read request units a table can use. Units: `Count` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| AccountMaxTableLevelWrites |  The maximum number of write capacity units that can be used by a table of an account. For on-demand tables this limit caps the maximum write request units a table can use. Units: `Count` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| AccountProvisionedReadCapacityUtilization |  The percentage of provisioned read capacity units utilized by an account. Units: `Percent` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| AccountProvisionedWriteCapacityUtilization |  The percentage of provisioned write capacity units utilized by an account. Units: `Percent` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| BillableTableSizeInBytes |  The billable size of the table in bytes. It is the sum of the encoded size of all rows in the table. This metric helps you track your table storage costs over time. Units: `Bytes` Dimensions: `Keyspace, TableName` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| ConditionalCheckFailedRequests |  The number of failed lightweight transaction (LWT) write requests. The `INSERT`, `UPDATE`, and `DELETE` operations let you provide a logical condition that must evaluate to true before the operation can proceed. If this condition evaluates to false, `ConditionalCheckFailedRequests` is incremented by one. Condition checks that evaluate to false consume write capacity units based on the size of the row. For more information, see [Estimate capacity consumption of lightweight transactions in Amazon Keyspaces](lightweight_transactions.md). Units: `Count` Dimensions: `Keyspace, TableName` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| ConsumedReadCapacityUnits |  The number of read capacity units consumed over the specified time period. For more information, see [Read/Write capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html).  To understand your average throughput utilization per second, use the `Sum` statistic to calculate the consumed throughput for the one minute period. Then divide the sum by the number of seconds in a minute (60) to calculate the average `ConsumedReadCapacityUnits` per second (recognizing that this average does not highlight any large but brief spikes in read activity that occurred during that minute). For more information on comparing average consumed read capacity to provisioned read capacity, see [How do I use Amazon Keyspaces metrics?](monitoring-cloudwatch.md#how-to-use-metrics)  Units: `Count` Dimensions: `Keyspace, TableName` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| ConsumedWriteCapacityUnits |  The number of write capacity units consumed over the specified time period. You can retrieve the total consumed write capacity for a table. For more information, see [Read/Write capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html).  To understand your average throughput utilization per second, use the `Sum` statistic to calculate the consumed throughput for the one minute period. Then divide the sum by the number of seconds in a minute (60) to calculate the average `ConsumedWriteCapacityUnits` per second (recognizing that this average does not highlight any large but brief spikes in write activity that occurred during that minute). For more information on comparing average consumed write capacity to provisioned write capacity, see [How do I use Amazon Keyspaces metrics?](monitoring-cloudwatch.md#how-to-use-metrics)  Units: `Count` Dimensions: `Keyspace, TableName` Valid Statistics:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| MaxProvisionedTableReadCapacityUtilization |  The percentage of provisioned read capacity units utilized by the highest provisioned read table of an account. Units: `Percent` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| MaxProvisionedTableWriteCapacityUtilization |  The percentage of provisioned write capacity utilized by the highest provisioned write table of an account. Units: `Percent` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| PerConnectionRequestRateExceeded |  Requests to Amazon Keyspaces that exceed the per-connection request rate quota. Each client connection to Amazon Keyspaces can support up to 3000 CQL requests per second. Clients can create multiple connections to increase throughput. When you're using multi-Region replication, each replicated write also contributes to this quota. As a best practice, we recommend to increase the number of connections to your tables to avoid `PerConnectionRequestRateExceeded` errors. There is no limit to the number of connections you can have in Amazon Keyspaces. Units: `Count` Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| ProvisionedReadCapacityUnits |  The number of provisioned read capacity units for a table. The `TableName` dimension returns the `ProvisionedReadCapacityUnits` for the table. Units: `Count` Dimensions: `Keyspace, TableName` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| ProvisionedWriteCapacityUnits |  The number of provisioned write capacity units for a table. The `TableName` dimension returns the `ProvisionedWriteCapacityUnits` for the table. Units: `Count` Dimensions: `Keyspace, TableName` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| ReadThrottleEvents |  Requests to Amazon Keyspaces that exceed the provisioned read capacity for a table, or account level quotas, request per connection quotas, or partition level quotas. Units: `Count` Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| ReplicationLatency |  This metric only applies to multi-Region keyspaces and measures the time it took to replicate `updates`, `inserts`, or `deletes` from one replica table to another replica table in a multi-Region keyspace. Units: `Millisecond` Dimensions: `TableName, ReceivingRegion` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| ReturnedItemCountBySelect |  The number of rows returned by multi-row `SELECT` queries during the specified time period. Multi-row `SELECT` queries are queries which do not contain the fully qualified primary key, such as full table scans and range queries. The number of rows *returned* is not necessarily the same as the number of rows that were evaluated. For example, suppose that you requested a `SELECT *` with `ALLOW FILTERING` on a table that had 100 rows, but specified a `WHERE` clause that narrowed the results so that only 15 rows were returned. In this case, the response from `SELECT` would contain a `ScanCount` of 100 and a `Count` of 15 returned rows. Units: `Count` Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| StoragePartitionThroughputCapacityExceeded |  Requests to an Amazon Keyspaces storage partition that exceed the throughput capacity of the partition. Amazon Keyspaces storage partitions can support up to 1000 WCU/WRU per second and 3000 RCU/RRU per second. We recommend reviewing your data model to distribute read/write traffic across more partitions to mitigate these exceptions.   Logical Amazon Keyspaces partitions can span multiple storage partitions and are virtually unbounded in size.  Units: `Count` Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| SuccessfulRequestCount |  The number of successful requests processed over the specified time period.  Units: `Count`  Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| SuccessfulRequestLatency |  The successful requests to Amazon Keyspaces during the specified time period. `SuccessfulRequestLatency` can provide two different kinds of information: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html) `SuccessfulRequestLatency` reflects activity only within Amazon Keyspaces and doesn’t take network latency or client-side activity into account.  Units: `Milliseconds`  Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| SystemErrors |  The requests to Amazon Keyspaces that generate a `ServerError` during the specified time period. A `ServerError` usually indicates an internal service error. Units: `Count` Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| SystemReconciliationDeletes |  The units consumed to delete tombstoned data when client-side timestamps are enabled. Each `SystemReconciliationDelete` provides enough capacity to delete or update up to 1KB of data per row. For example, to update a row that stores 2.5 KB of data and to delete one or more columns within the row at the same time requires 3 `SystemReconciliationDeletes`. Or, to delete an entire row that contains 3.5 KB of data requires 4 `SystemReconciliationDeletes`.  Units: `Count` Dimensions: `Keyspace, TableName` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| TTLDeletes |  The units consumed to delete or update data in a row by using Time to Live (TTL). Each `TTLDelete` provides enough capacity to delete or update up to 1KB of data per row. For example, to update a row that stores 2.5 KB of data and to delete one or more columns within the row at the same time requires 3 TTL deletes. Or, to delete an entire row that contains 3.5 KB of data requires 4 TTL deletes.  Units: `Count` Dimensions: `Keyspace, TableName` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| UserErrors |  Requests to Amazon Keyspaces that generate an `InvalidRequest` error during the specified time period.  `InvalidRequest` errors usually represent a client-side error, for example an invalid combination of parameters, an attempt to update a non-existent table, or an incorrect request signature. `UserErrors` represent the aggregate of invalid requests for the current AWS Region and the current AWS account. Units: `Count` Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| WriteThrottleEvents |  Requests to Amazon Keyspaces that exceed the provisioned write capacity for a table, or account level quotas, request per connection quotas, or partition level quotas.  Units: `Count` Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 

## Dimensions for Amazon Keyspaces metrics
<a name="keyspaces-metric-dimensions"></a>

The metrics for Amazon Keyspaces are qualified by the values for the account, table name, or operation. You can use the CloudWatch console to retrieve Amazon Keyspaces data along any of the dimensions in the following table.


|  Dimension  |  Description  | 
| --- | --- | 
|  Keyspace  |  This dimension limits the data to a specific keyspace. This value can be any keyspace in the current Region and the current AWS account.   | 
|  Operation  |  This dimension limits the data to one of the Amazon Keyspaces CQL operations, such as `INSERT` or `SELECT` operations.   | 
|  TableName  |  This dimension limits the data to a specific table. This value can be any table name in the current Region and the current AWS account. If the table name is not unique within the account, you must also specify `Keyspace`.  | 

## Metrics for Amazon Keyspaces change data capture (CDC)
<a name="keyspaces-cdc-metrics"></a>

The following metrics are available in your CloudWatch account that monitor API calls to the Amazon Keyspaces change data capture (CDC) endpoint.


| Metric | Description | 
| --- | --- | 
| ReturnedRecordsCount |  The number of stream records returned by `GetRecords` operations during the specified time period. Units: `Count` Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| SuccessfulRequestLatency |  The successful requests to Amazon Keyspaces during the specified time period. `SuccessfulRequestLatency` can provide two different kinds of information: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html) `SuccessfulRequestLatency` reflects activity only within Amazon Keyspaces CDC APIs and doesn’t take network latency or client-side activity into account.  Units: `Milliseconds`  Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| SystemErrors |  The requests to Amazon Keyspaces CDC that generate a `HTTP 500` status code during the specified time period. A `HTTP 500` status code usually indicates an internal service error. Units: `Count` Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 
| UserErrors |  Requests to Amazon Keyspaces CDC that generate an `HTTP 400` status code during the specified time period.  `UserErrors` represents the aggregate of `HTTP 400` errors for Amazon Keyspaces CDC in the current AWS Region and the current AWS account. Units: `Count` Dimensions: `Keyspace, TableName, Operation` Valid Statistics: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/keyspaces/latest/devguide/metrics-dimensions.html)  | 

## Dimensions for Amazon Keyspaces change data capture (CDC) metrics
<a name="keyspaces-metric-dimensions-cdc"></a>

The metrics for Amazon Keyspaces are qualified by the values for the account, table name, or operation. You can use the CloudWatch console to retrieve Amazon Keyspaces data along any of the dimensions in the following table.


|  Dimension  |  Description  | 
| --- | --- | 
|  StreamLabel  |  This dimension limits the data to a specific change data capture (CDC) stream when `KeyspaceName` and `TableName` are specified.   | 
|  Keyspace  |  This dimension limits the data to a specific keyspace. This value can be any keyspace in the current Region and the current AWS account.   | 
|  TableName  |  This dimension limits the data to a specific table. This value can be any table name in the current Region and the current AWS account. If the table name is not unique within the account, you must also specify `Keyspace`.  | 
|  Operation  |  This dimension limits the data to one of the following Amazon Keyspaces Streams API operations: `GetRecords`, `GetStream` `GetShardIterator`, and `ListStreams`.   | 

# Viewing Amazon Keyspaces metrics in CloudWatch
<a name="view-metrics"></a>

When you interact with Amazon Keyspaces, it sends the following metrics and dimensions to Amazon CloudWatch. All metrics are aggregated and reported every minute. You can use the following procedures to view the metrics for Amazon Keyspaces.

**To view metrics using the CloudWatch console**

Metrics are grouped first by the service namespace, and then by the various dimension combinations within each namespace.

1. Open the CloudWatch console at [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. If necessary, change the AWS Region. On the navigation bar, choose the Region where your AWS resources reside. For more information, see [AWS service endpoints](http://docs.aws.amazon.com/general/latest/gr/rande.html).

1. In the navigation pane, choose **Metrics**.

1. Under the **All metrics** tab, choose `AWS/Cassandra.`

**To view metrics using the AWS CLI**
+ At a command prompt, use the following command.

  ```
  1. aws cloudwatch list-metrics --namespace "AWS/Cassandra"                        
  ```

# Creating CloudWatch alarms to monitor Amazon Keyspaces
<a name="creating-alarms"></a>

You can create an Amazon CloudWatch alarm for Amazon Keyspaces that sends an Amazon Simple Notification Service (Amazon SNS) message when the alarm changes state. An alarm watches a single metric over a time period that you specify. It performs one or more actions based on the value of the metric relative to a given threshold over a number of time periods. The action is a notification sent to an Amazon SNS topic or an Application Auto Scaling policy. 

When you use Amazon Keyspaces in provisioned mode with Application Auto Scaling, the service creates two pairs of CloudWatch alarms on your behalf. Each pair represents your upper and lower boundaries for provisioned and consumed throughput settings. These CloudWatch alarms are triggered when the table's actual utilization deviates from your target utilization for a sustained period of time. To learn more about CloudWatch alarms created by Application Auto Scaling, see [How Amazon Keyspaces automatic scaling works](autoscaling.md#autoscaling.HowItWorks).

Alarms invoke actions for sustained state changes only. CloudWatch alarms do not invoke actions simply because they are in a particular state. The state must have changed and been maintained for a specified number of periods.

For more information about creating CloudWatch alarms, see [Using Amazon CloudWatch alarms](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) in the *Amazon CloudWatch User Guide*.