

# 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.<br />Units: `Count`<br />Valid Statistics:+  `Maximum` – The maximum number of read capacity units that can be used by a table of the account.  | 
| 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.<br />Units: `Count`<br />Valid Statistics:+  `Maximum` – The maximum number of write capacity units that can be used by a table of the account.  | 
| AccountProvisionedReadCapacityUtilization | The percentage of provisioned read capacity units utilized by an account.<br />Units: `Percent`<br />Valid Statistics:+  `Maximum` – The maximum percentage of provisioned read capacity units utilized by the account. <br />+  `Minimum` – The minimum percentage of provisioned read capacity units utilized by the account. <br />+  `Average` – The average percentage of provisioned read capacity units utilized by the account. The metric is published for five-minute intervals. Therefore, if you rapidly adjust the provisioned read capacity units, this statistic might not reflect the true average.  | 
| AccountProvisionedWriteCapacityUtilization | The percentage of provisioned write capacity units utilized by an account.<br />Units: `Percent`<br />Valid Statistics:+  `Maximum` – The maximum percentage of provisioned write capacity units utilized by the account. <br />+  `Minimum` – The minimum percentage of provisioned write capacity units utilized by the account. <br />+  `Average` – The average percentage of provisioned write capacity units utilized by the account. The metric is published for five-minute intervals. Therefore, if you rapidly adjust the provisioned write capacity units, this statistic might not reflect the true average.  | 
| 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.<br />Units: `Bytes`<br />Dimensions: `Keyspace, TableName`<br />Valid Statistics:+  `Maximum` – The maximum storage size of the table. <br />+  `Minimum` – The minimum storage size of the table. <br />+  `Average` – The average storage size of the table. This metric is calculated over 4 - 6 hour intervals.  | 
| 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).<br />Units: `Count`<br />Dimensions: `Keyspace, TableName`<br />Valid Statistics:+  `Minimum` <br />+  `Maximum` <br />+  `Average` <br />+  `SampleCount` <br />+  `Sum`  | 
| 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) <br />Units: `Count`<br />Dimensions: `Keyspace, TableName`<br />Valid Statistics:+  `Minimum` – The minimum number of read capacity units consumed by any individual request to the table. <br />+  `Maximum` – The maximum number of read capacity units consumed by any individual request to the table. <br />+  `Average` – The average per-request read capacity consumed.  The `Average` value is influenced by periods of inactivity where the sample value will be zero.   <br />+  `Sum` – The total read capacity units consumed. This is the most useful statistic for the `ConsumedReadCapacityUnits` metric. <br />+  `SampleCount` – The number of requests to Amazon Keyspaces, even if no read capacity was consumed.  The `SampleCount` value is influenced by periods of inactivity where the sample value will be zero.    | 
| 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) <br />Units: `Count`<br />Dimensions: `Keyspace, TableName`<br />Valid Statistics: +  `Minimum` – The minimum number of write capacity units consumed by any individual request to the table. <br />+  `Maximum` – The maximum number of write capacity units consumed by any individual request to the table. <br />+  `Average` – The average per-request write capacity consumed.  The `Average` value is influenced by periods of inactivity where the sample value will be zero.   <br />+  `Sum` – The total write capacity units consumed. This is the most useful statistic for the `ConsumedWriteCapacityUnits` metric. <br />+  `SampleCount` – The number of requests to Amazon Keyspaces, even if no write capacity was consumed.  The `SampleCount` value is influenced by periods of inactivity where the sample value will be zero.    | 
| MaxProvisionedTableReadCapacityUtilization | The percentage of provisioned read capacity units utilized by the highest provisioned read table of an account.<br />Units: `Percent`<br />Valid Statistics:+  `Maximum` – : The maximum percentage of provisioned read capacity units utilized by the highest provisioned read table of the account. <br />+  `Minimum` – The minimum percentage of provisioned read capacity units utilized by the highest provisioned read table of the account. <br />+  `Average` – The average percentage of provisioned read capacity units utilized by the highest provisioned read table of the account. The metric is published for five-minute intervals. Therefore, if you rapidly adjust the provisioned read capacity units, this statistic might not reflect the true average.  | 
| MaxProvisionedTableWriteCapacityUtilization | The percentage of provisioned write capacity utilized by the highest provisioned write table of an account.<br />Units: `Percent`<br />Valid Statistics:+  `Maximum` – The maximum percentage of provisioned write capacity units utilized by the highest provisioned write table of the account.  <br />+  `Minimum` – The minimum percentage of provisioned write capacity units utilized by the highest provisioned write table of the account. <br />+  `Average` – The average percentage of provisioned write capacity units utilized by the highest provisioned write table of the account. The metric is published for five-minute intervals. Therefore, if you rapidly adjust the provisioned write capacity units, this statistic might not reflect the true average.  | 
| 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.<br />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.<br />Units: `Count`<br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `SampleCount`  <br />+  `Sum`   | 
| ProvisionedReadCapacityUnits | The number of provisioned read capacity units for a table.<br />The `TableName` dimension returns the `ProvisionedReadCapacityUnits` for the table.<br />Units: `Count`<br />Dimensions: `Keyspace, TableName`<br />Valid Statistics:+  `Minimum` – The lowest setting for provisioned read capacity. If you use `ALTER TABLE` to increase read capacity, this metric shows the lowest value of provisioned `ReadCapacityUnits` during this time period. <br />+  `Maximum` – The highest setting for provisioned read capacity. If you use `ALTER TABLE` to decrease read capacity, this metric shows the highest value of provisioned `ReadCapacityUnits` during this time period. <br />+  `Average` – The average provisioned read capacity. The `ProvisionedReadCapacityUnits` metric is published at five-minute intervals. Therefore, if you rapidly adjust the provisioned read capacity units, this statistic might not reflect the true average.  | 
| ProvisionedWriteCapacityUnits | The number of provisioned write capacity units for a table.<br />The `TableName` dimension returns the `ProvisionedWriteCapacityUnits` for the table.<br />Units: `Count`<br />Dimensions: `Keyspace, TableName`<br />Valid Statistics:+  `Minimum` – The lowest setting for provisioned write capacity. If you use `ALTER TABLE` to increase write capacity, this metric shows the lowest value of provisioned `WriteCapacityUnits` during this time period. <br />+  `Maximum` – The highest setting for provisioned write capacity. If you use `ALTER TABLE` to decrease write capacity, this metric shows the highest value of provisioned `WriteCapacityUnits` during this time period. <br />+  `Average` – The average provisioned write capacity. The `ProvisionedWriteCapacityUnits` metric is published at five-minute intervals. Therefore, if you rapidly adjust the provisioned write capacity units, this statistic might not reflect the true average.  | 
| 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.<br />Units: `Count`<br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `SampleCount` <br />+  `Sum`  | 
| 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.<br />Units: `Millisecond`<br />Dimensions: `TableName, ReceivingRegion`<br />Valid Statistics:+  `Average` <br />+  `Maximum` <br />+  `Minimum`  | 
| 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.<br />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.<br />Units: `Count`<br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `Minimum` <br />+  `Maximum` <br />+  `Average` <br />+  `SampleCount` <br />+  `Sum`  | 
| 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. <br />Units: `Count`<br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `SampleCount`  <br />+  `Sum`   | 
| SuccessfulRequestCount | The number of successful requests processed over the specified time period. <br />Units: `Count` <br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `SampleCount`  | 
| SuccessfulRequestLatency | The successful requests to Amazon Keyspaces during the specified time period. `SuccessfulRequestLatency` can provide two different kinds of information:+  The elapsed time for successful requests (`Minimum`, `Maximum`, `Sum`, or `Average`). <br />+  The number of successful requests (`SampleCount`). <br />`SuccessfulRequestLatency` reflects activity only within Amazon Keyspaces and doesn’t take network latency or client-side activity into account. <br />Units: `Milliseconds` <br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `Minimum` <br />+  `Maximum` <br />+  `Average` <br />+  `SampleCount`  | 
| SystemErrors | The requests to Amazon Keyspaces that generate a `ServerError` during the specified time period. A `ServerError` usually indicates an internal service error.<br />Units: `Count`<br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `Sum` <br />+  `SampleCount`  | 
| 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`. <br />Units: `Count`<br />Dimensions: `Keyspace, TableName`<br />Valid Statistics:+  `Sum` – The total number of `SystemReconciliationDeletes` consumed in a time period.  | 
| 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. <br />Units: `Count`<br />Dimensions: `Keyspace, TableName`<br />Valid Statistics:+  `Sum` – The total number of `TTLDeletes` consumed in a time period.  | 
| UserErrors | Requests to Amazon Keyspaces that generate an `InvalidRequest` error during the specified time period. <br />`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.<br />`UserErrors` represent the aggregate of invalid requests for the current AWS Region and the current AWS account.<br />Units: `Count`<br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `Sum` <br />+  `SampleCount`  | 
| 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.<br /><br />Units: `Count`<br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `SampleCount` <br />+  `Sum`  | 

## 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.<br />Units: `Count`<br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `Minimum` <br />+  `Maximum` <br />+  `Average` <br />+  `SampleCount` <br />+  `Sum`  | 
| SuccessfulRequestLatency | The successful requests to Amazon Keyspaces during the specified time period. `SuccessfulRequestLatency` can provide two different kinds of information:+  The elapsed time for successful requests (`Minimum`, `Maximum`, `Sum`, or `Average`). <br />+  The number of successful requests (`SampleCount`). <br />`SuccessfulRequestLatency` reflects activity only within Amazon Keyspaces CDC APIs and doesn’t take network latency or client-side activity into account. <br />Units: `Milliseconds` <br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `Minimum` <br />+  `Maximum` <br />+  `Average` <br />+  `SampleCount`  | 
| 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.<br />Units: `Count`<br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `Sum` <br />+  `SampleCount`  | 
| UserErrors | Requests to Amazon Keyspaces CDC that generate an `HTTP 400` status code during the specified time period. <br />`UserErrors` represents the aggregate of `HTTP 400` errors for Amazon Keyspaces CDC in the current AWS Region and the current AWS account.<br />Units: `Count`<br />Dimensions: `Keyspace, TableName, Operation`<br />Valid Statistics:+  `Sum` <br />+  `SampleCount`  | 

## 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`.  | 