

# DynamoDB 指标与维度
<a name="metrics-dimensions"></a>

与 DynamoDB 交互时，它会向 CloudWatch 发送指标和维度。

DynamoDB 输出在一分钟时段内所使用的预调配吞吐量。当所使用的容量在两个连续的一分钟时段内均超过配置的目标利用率时，就会触发[自动扩缩](AutoScaling.md)。在触发自动扩缩之前，CloudWatch 警报可能会有至多几分钟的短暂延迟。这一延迟可确保准确评估 CloudWatch 指标。如果已使用的吞吐量峰值间隔超过一分钟，则可能不会触发自动扩缩。同样，当 15 个连续的数据点低于目标利用率时，则可能发生缩减事件。无论是哪种情况，在自动扩缩触发之后，都会调用 [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html) API。然后，需要几分钟的时间才能更新表或索引的预置容量。在此期间，任何超过表的先前预置容量的请求都会被节流。

## 查看 指标和维度
<a name="dynamodb-metrics-dimensions"></a>

CloudWatch 显示 DynamoDB 的以下指标：

### DynamoDB 指标
<a name="dynamodb-metrics"></a>

**注意**  
Amazon CloudWatch 每隔一分钟汇总一次这些指标：  
`ConditionalCheckFailedRequests`
`ConsumedReadCapacityUnits`
`ConsumedWriteCapacityUnits`
`ReadAccountLimitThrottleEvents`
`ReadKeyRangeThroughputThrottleEvents`
`ReadMaxOnDemandThroughputThrottleEvents`
`ReadProvisionedThroughputThrottleEvents`
`ReadThrottleEvents`
`ReturnedBytes`
`ReturnedItemCount`
`ReturnedRecordsCount`
`SuccessfulRequestLatency`
`SystemErrors`
`TimeToLiveDeletedItemCount`
`ThrottledRequests`
`TransactionConflict`
`UserErrors`
`WriteAccountLimitThrottleEvents`
`WriteKeyRangeThroughputThrottleEvents`
`WriteMaxOnDemandThroughputThrottleEvents`
`WriteProvisionedThroughputThrottleEvents`
`WriteThrottleEvents`
`FaultInjectionServiceInducedErrors`
对于所有其他 DynamoDB 指标，汇总粒度为五分钟。

并非所有统计数据，如 *Average* 或 *Sum*，都适用于每个指标。不过，所有值均可通过 Amazon DynamoDB 控制台获得，也可通过使用适用于所有指标的 CloudWatch 控制台、AWS CLI 或 AWS SDK 获得。

在下表中，每个指标都有一个适用于该指标的有效统计数据列表。

**Topics**<a name="available-metrics.title"></a>
+ [DynamoDB 指标](#dynamodb-metrics)
+ [AccountMaxReads](#AccountMaxReads)
+ [AccountMaxTableLevelReads](#AccountMaxTableLevelReads)
+ [AccountMaxTableLevelWrites](#AccountMaxTableLevelWrites)
+ [AccountMaxWrites](#AccountMaxWrites)
+ [AccountProvisionedReadCapacityUtilization](#AccountProvisionedReadCapacityUtilization)
+ [AccountProvisionedWriteCapacityUtilization](#AccountProvisionedWriteCapacityUtilization)
+ [AgeOfOldestUnreplicatedRecord](#AgeOfOldestUnreplicatedRecord)
+ [ConditionalCheckFailedRequests](#ConditionalCheckFailedRequests)
+ [ConsumedChangeDataCaptureUnits](#ConsumedChangeDataCaptureUnits)
+ [已使用读取容量单位](#ConsumedReadCapacityUnits)
+ [已使用写入容量单位](#ConsumedWriteCapacityUnits)
+ [FailedToReplicateRecordCount](#FailedToReplicateRecordCount)
+ [MaxProvisionedTableReadCapacityUtilization](#MaxProvisionedTableReadCapacityUtilization)
+ [MaxProvisionedTableWriteCapacityUtilization](#MaxProvisionedTableWriteCapacityUtilization)
+ [OnDemandMaxReadRequestUnits](#OnDemandMaxReadRequestUnits)
+ [OnDemandMaxWriteRequestUnits](#OnDemandMaxWriteRequestUnits)
+ [OnlineIndexConsumedWriteCapacity](#OnlineIndexConsumedWriteCapacity)
+ [OnlineIndexPercentageProgress](#OnlineIndexPercentageProgress)
+ [OnlineIndexThrottleEvents](#OnlineIndexThrottleEvents)
+ [PendingReplicationCount](#PendingReplicationCount)
+ [已配置读取容量单位](#ProvisionedReadCapacityUnits)
+ [已配置写入容量单位](#ProvisionedWriteCapacityUnits)
+ [ReadAccountLimitThrottleEvents](#ReadAccountLimitThrottleEvents)
+ [ReadKeyRangeThroughputThrottleEvents](#ReadKeyRangeThroughputThrottleEvents)
+ [ReadMaxOnDemandThroughputThrottleEvents](#ReadMaxOnDemandThroughputThrottleEvents)
+ [ReadProvisionedThroughputThrottleEvents](#ReadProvisionedThroughputThrottleEvents)
+ [ReadThrottleEvents](#ReadThrottleEvents)
+ [ReplicationLatency](#ReplicationLatency)
+ [ReturnedBytes](#ReturnedBytes)
+ [ReturnedItemCount](#ReturnedItemCount)
+ [ReturnedRecordsCount](#ReturnedRecordsCount)
+ [SuccessfulRequestLatency](#SuccessfulRequestLatency)
+ [SystemErrors](#SystemErrors)
+ [TimeToLiveDeletedItemCount](#TimeToLiveDeletedItemCount)
+ [ThrottledPutRecordCount](#ThrottledPutRecordCount)
+ [ThrottledRequests](#ThrottledRequests)
+ [TransactionConflict](#TransactionConflict)
+ [UserErrors](#UserErrors)
+ [WriteAccountLimitThrottleEvents](#WriteAccountLimitThrottleEvents)
+ [WriteKeyRangeThroughputThrottleEvents](#WriteKeyRangeThroughputThrottleEvents)
+ [WriteMaxOnDemandThroughputThrottleEvents](#WriteMaxOnDemandThroughputThrottleEvents)
+ [WriteProvisionedThroughputThrottleEvents](#WriteProvisionedThroughputThrottleEvents)
+ [WriteThrottleEvents](#WriteThrottleEvents)
+ [使用情况指标](#w2aac41c15c13b7c11)
+ [FaultInjectionServiceInducedErrors](#FaultInjectionServiceInducedErrors)

### AccountMaxReads
<a name="AccountMaxReads"></a>

账户可以使用的最大读取容量单位数。此限制不适用于按需表或全局二级索引。

单位：`Count`

有效统计数据：
+ `Maximum` - 账户可以使用的最大读取容量单位数。

### AccountMaxTableLevelReads
<a name="AccountMaxTableLevelReads"></a>

账户的表或全局二级索引可以使用的最大读取容量单位数。对于按需表，此限制封顶表或全局二级索引可以使用的最大读取请求单位。

单位：`Count`

有效统计数据：
+ `Maximum` – 账户的表或全局二级索引可以使用的最大读取容量单位数。

### AccountMaxTableLevelWrites
<a name="AccountMaxTableLevelWrites"></a>

账户的表或全局二级索引可以使用的最大写入容量单位数。对于按需表，此限制封顶表或全局二级索引可以使用的最大写入请求单位。

单位：`Count`

有效统计数据：
+ `Maximum` – 账户的表或全局二级索引可以使用的最大写入容量单位数。

### AccountMaxWrites
<a name="AccountMaxWrites"></a>

账户可以使用的最大写入容量单位数。此限制不适用于按需表或全局二级索引。

单位：`Count`

有效统计数据：
+ `Maximum` - 账户可以使用的最大写入容量单位数。

### AccountProvisionedReadCapacityUtilization
<a name="AccountProvisionedReadCapacityUtilization"></a>

账户使用的预置读取容量单位百分比。

单位：`Percent`

有效统计数据：
+ `Maximum` – 账户使用的最大预置读取容量单位百分比。
+ `Minimum` – 账户使用的最小预置读取容量单位百分比。
+ `Average` – 账户使用的平均预置读取容量单位百分比。该指标每五分钟发布一次。因此，如果快速调整预置读取容量单位，则此统计数据可能不会反映实际平均值。

### AccountProvisionedWriteCapacityUtilization
<a name="AccountProvisionedWriteCapacityUtilization"></a>

账户使用的预置写入容量单位百分比。

单位：`Percent`

有效统计数据：
+ `Maximum` – 账户使用的最大预置写入容量单位百分比。
+ `Minimum` – 账户使用的最小预置写入容量单位百分比。
+ `Average` – 账户使用的平均预置写入容量单位百分比。该指标每五分钟发布一次。因此，如果快速调整预置写入容量单位，则此统计数据可能不会反映实际平均值。

### AgeOfOldestUnreplicatedRecord
<a name="AgeOfOldestUnreplicatedRecord"></a>

尚未复制到 Kinesis 数据流的记录首次出现在 DynamoDB 表中以来所用的时间。

单位：`Milliseconds`

维度：`TableName, DelegatedOperation`

有效统计数据：
+ `Maximum`.
+ `Minimum`.
+ `Average`.

### ConditionalCheckFailedRequests
<a name="ConditionalCheckFailedRequests"></a>

执行条件写入的尝试失败次数。`PutItem`、`UpdateItem` 和 `DeleteItem` 操作允许提供一个逻辑条件，该条件计算结果必须为 true，才能继续操作。如果此条件计算结果为 false，`ConditionalCheckFailedRequests` 将递增 1。对于 PartiQL Update 和 Delete 语句，如果提供逻辑条件，并且该条件计算结果为 false，`ConditionalCheckFailedRequests` 也递增 1。

**注意**  
条件写入失败将导致 HTTP 400 错误（错误请求）。这些事件反映在 `ConditionalCheckFailedRequests` 指标而不是 `UserErrors` 指标中。

单位：`Count`

维度：`TableName`

有效统计数据：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### ConsumedChangeDataCaptureUnits
<a name="ConsumedChangeDataCaptureUnits"></a>

已占用的更改数据捕获单位数量。

单位：`Count`

维度：`TableName, DelegatedOperation`

有效统计数据：
+ `Minimum`
+ `Maximum`
+ `Average`

### 已使用读取容量单位
<a name="ConsumedReadCapacityUnits"></a>

在指定时间段内，预调配容量和按需容量占用的读取容量单位数，这样您可以跟踪使用了多少吞吐量。可以检索表及其所有全局二级索引或特定全局二级索引占用的总读取容量。有关更多信息，请参见[读/写容量模式](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)。

`TableName` 维度对表返回 `ConsumedReadCapacityUnits`，但不对任何全局二级索引返回。要查看全局二级索引的 `ConsumedReadCapacityUnits`，必须指定 `TableName` 和 `GlobalSecondaryIndexName`。

**注意**  
 这意味着，持续仅一秒的短暂、剧烈的容量消耗峰值可能无法准确地反映在 CloudWatch 图中，这可能导致该分钟的表观消耗率较低。  
 使用 `Sum` 统计信息计算占用的吞吐量。例如，获取一分钟内的 `Sum` 值，并将其除以一分钟内的秒数（60），以计算每秒平均 `ConsumedReadCapacityUnits`。可以比较计算值与提供 DynamoDB 的预调配吞吐量值。

单位：`Count`

维度：`TableName, GlobalSecondaryIndexName`

有效统计数据：
+ `Minimum` – 对表或索引的任何请求占用的最小读取容量单位数。
+ `Maximum` – 对表或索引的任何请求占用的最大读取容量单位数。
+ `Average` – 每个请求占用的平均读取容量。
**注意**  
`Average` 值受不活动时间的影响，不活动时的采样值将为零。
+ `Sum` – 占用的总读取容量单位。这是对 `ConsumedReadCapacityUnits` 指标最有用的统计数据。
+ `SampleCount` – 表示发出指标的频率。即使表的流量为零，也会定期发出 `SampleCount`，但样本值将始终为零。
**注意**  
`SampleCount` 值受不活动时间的影响，不活动时的采样值将为零。

### 已使用写入容量单位
<a name="ConsumedWriteCapacityUnits"></a>

在指定时间段内，预调配容量和按需容量占用的写入容量单位数，这样您可以跟踪使用了多少吞吐量。可以检索表及其所有全局二级索引或特定全局二级索引占用的总写入容量。有关更多信息，请参见[读/写容量模式](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)。

`TableName` 维度对表返回 `ConsumedWriteCapacityUnits`，但不对任何全局二级索引返回。要查看全局二级索引的 `ConsumedWriteCapacityUnits`，必须指定 `TableName` 和 `GlobalSecondaryIndexName`。`Source` 维度可以返回两个值中的任何一个：`Customer` 和 `GlobalTable`。复制的写入将对源 `GlobalTable` 具有 `ConsumedWriteCapacityUnits`，但区域表写入将对于源 `Customer` 具有 `ConsumedWriteCapacityUnits`。

**注意**  
使用 `Sum` 统计信息计算占用的吞吐量。然后，获得跨度为一分钟的 `Sum` 值，除以一分钟的秒数（60），来计算每秒平均 `ConsumedWriteCapacityUnits`（确认此平均值不会突出显示这一分钟内出现的写入操作的任何大而短暂的峰值）。可以比较计算值与提供 DynamoDB 的预调配吞吐量值。

单位：`Count`

维度：`TableName, GlobalSecondaryIndexName, Source`

有效统计数据：
+ `Minimum` – 对表或索引的任何请求占用的最小写入容量单位数。
+ `Maximum` – 对表或索引的任何请求占用的最大写入容量单位数。
+ `Average` – 每个请求占用的平均写入容量。
**注意**  
`Average` 值受不活动时间的影响，不活动时的采样值将为零。
+ `Sum` – 占用的总写入容量单位。这是对 `ConsumedWriteCapacityUnits` 指标最有用的统计数据。
+ `SampleCount` – 表示发出指标的频率。即使表的流量为零，也会定期发出 `SampleCount`，但样本值将始终为零。
**注意**  
`SampleCount` 值受不活动时间的影响，不活动时的采样值将为零。

### FailedToReplicateRecordCount
<a name="FailedToReplicateRecordCount"></a>

DynamoDB 无法复制到 Kinesis 数据流的记录数。

单位：`Count`

维度: `TableName`, `DelegatedOperation` 

有效统计数据：
+ `Sum`

### MaxProvisionedTableReadCapacityUtilization
<a name="MaxProvisionedTableReadCapacityUtilization"></a>

账户的最高预调配读取表或全局二级索引使用的预调配读取容量单位百分比。

单位：`Percent`

有效统计数据：
+ `Maximum` – 账户的最高预调配读取表或全局二级索引使用的最大预调配读取容量单位百分比。
+ `Minimum` – 账户的最高预调配读取表或全局二级索引使用的最小预调配读取容量单位百分比。
+ `Average` – 账户的最高预调配写入表或全局二级索引使用的平均预调配写入容量单位百分比。该指标每五分钟发布一次。因此，如果快速调整预置读取容量单位，则此统计数据可能不会反映实际平均值。

### MaxProvisionedTableWriteCapacityUtilization
<a name="MaxProvisionedTableWriteCapacityUtilization"></a>

账户的最高预置写入表或全局二级索引使用的预置写入容量百分比。

单位：`Percent`

有效统计数据：
+ `Maximum` – 账户的最高预置写入表或全局二级索引使用的最大预置写入容量单位百分比。
+ `Minimum` – 账户的最高预置写入表或全局二级索引使用的最小预置写入容量单位百分比。
+ `Average` – 账户的最高预置写入表或全局二级索引使用的平均预置写入容量单位百分比。该指标每五分钟发布一次。因此，如果快速调整预置写入容量单位，则此统计数据可能不会反映实际平均值。

### OnDemandMaxReadRequestUnits
<a name="OnDemandMaxReadRequestUnits"></a>

表或全局二级索引的指定按需读取请求单位数。

要查看表的 `OnDemandMaxReadRequestUnits`，必须指定 `TableName`。要查看全局二级索引的 `OnDemandMaxReadRequestUnits`，必须指定 `TableName` 和 `GlobalSecondaryIndexName`。

单位：计数

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `Minimum` – 按需读取请求单位的最低设置。如果使用 `UpdateTable` 增加读取容量单位，则此指标显示此时间段的按需 `ReadRequestUnits` 的最低值。
+ `Maximum` – 按需读取请求单位的最高设置。如果使用 `UpdateTable` 减少读取容量单位，则此指标显示此时间段的按需 `ReadRequestUnits` 的最高值。
+ `Average` – 按需读取请求单位的平均数。`OnDemandMaxReadRequestUnits` 指标每五分钟发布一次。因此，如果快速调整按需读取请求单位，则此统计数据可能不会反映实际平均值。

### OnDemandMaxWriteRequestUnits
<a name="OnDemandMaxWriteRequestUnits"></a>

表或全局二级索引的指定按需写入请求单位数。

要查看表的 `OnDemandMaxWriteRequestUnits`，必须指定 `TableName`。要查看全局二级索引的 `OnDemandMaxWriteRequestUnits`，必须指定 `TableName` 和 `GlobalSecondaryIndexName`。

单位：`Count`

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `Minimum` – 按需写入请求单位的最低设置。如果使用 `UpdateTable` 增加写入容量单位，则此指标显示此时间段的按需 `WriteRequestUnits` 的最低值。
+ `Maximum` – 按需写入请求单位的最高设置。如果使用 `UpdateTable` 减少写入容量单位，则此指标显示此时间段的按需 `WriteRequestUnits` 的最高值。
+ `Average` – 按需写入请求单位的平均数。`OnDemandMaxWriteRequestUnits` 指标每五分钟发布一次。因此，如果快速调整按需写入请求单位，则此统计数据可能不会反映实际平均值。

### OnlineIndexConsumedWriteCapacity
<a name="OnlineIndexConsumedWriteCapacity"></a>

在索引构建期间，该指标应显示为 0。此指标以前显示向表添加新全局二级索引时消耗的写入容量单位数。

单位：`Count`

维度：`TableName, GlobalSecondaryIndexName`

有效统计数据：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### OnlineIndexPercentageProgress
<a name="OnlineIndexPercentageProgress"></a>

将新的全局二级索引添加到表中时的完成百分比。DynamoDB 必须首先为新索引分配资源，然后将表中的属性回填到索引。对于大型表，此过程可能需要较长时间。DynamoDB 建立索引时，应监视此统计信息查看相关进度。

单位：`Count`

维度：`TableName, GlobalSecondaryIndexName`

有效统计数据：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### OnlineIndexThrottleEvents
<a name="OnlineIndexThrottleEvents"></a>

在索引构建期间，该指标应显示为 0。此指标以前显示向表添加新的全局二级索引时发生的写入节流事件数。

单位：`Count`

维度：`TableName, GlobalSecondaryIndexName`

有效统计数据：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### PendingReplicationCount
<a name="PendingReplicationCount"></a>

[全局表版本 2017.11.29（旧版）](globaltables.V1.md) 的指标（仅限全局表）。写入一个副本表但尚未写入全局表中另一个副本的项目更新数。

单位：`Count`

维度：`TableName, ReceivingRegion`

有效统计数据：
+ `Average`
+ `Sample Count`
+ `Sum`

### 已配置读取容量单位
<a name="ProvisionedReadCapacityUnits"></a>

表或全局二级索引的预置读取容量单位数。`TableName` 维度对表返回 `ProvisionedReadCapacityUnits`，但不对任何全局二级索引返回。要查看全局二级索引的 `ProvisionedReadCapacityUnits`，必须指定 `TableName` 和 `GlobalSecondaryIndexName`。

单位：`Count`

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `Minimum` – 预置读取容量的最低设置。如果使用 `UpdateTable` 增加读取容量，则此指标显示此时间段的预置 `ReadCapacityUnits` 最低值。
+ `Maximum` – 预置读取容量的最高设置。如果使用 `UpdateTable` 减少读取容量，则此指标显示此时间段的预置 `ReadCapacityUnits` 最高值。
+ `Average` – 平均预置读取容量。`ProvisionedReadCapacityUnits` 指标每五分钟发布一次。因此，如果快速调整预置读取容量单位，则此统计数据可能不会反映实际平均值。

### 已配置写入容量单位
<a name="ProvisionedWriteCapacityUnits"></a>

表或全局二级索引的预置写入容量单位数。

`TableName` 维度对表返回 `ProvisionedWriteCapacityUnits`，但不对任何全局二级索引返回。要查看全局二级索引的 `ProvisionedWriteCapacityUnits`，必须指定 `TableName` 和 `GlobalSecondaryIndexName`。

单位：`Count`

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `Minimum` – 预置写入容量的最低设置。如果使用 `UpdateTable` 增加写入容量，则此指标显示此时间段的预置 `WriteCapacityUnits` 最低值。
+ `Maximum` – 预置写入容量的最高设置。如果使用 `UpdateTable` 减少写入容量，则此指标显示此时间段的预置 `WriteCapacityUnits` 最高值。
+ `Average` – 平均预置写入容量。`ProvisionedWriteCapacityUnits` 指标每五分钟发布一次。因此，如果快速调整预置写入容量单位，则此统计数据可能不会反映实际平均值。

### ReadAccountLimitThrottleEvents
<a name="ReadAccountLimitThrottleEvents"></a>

由于超过账户限额而受限制的读取请求数。

单位：`Count`

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `Sum`：受限事件的数量。
+ `SampleCount`：发生节流的次数。
+ `Minimum`：任意给定样本中受限制事件的最小数量。
+ `Maximum`：任意给定样本中受限制事件的最大数量。

### ReadKeyRangeThroughputThrottleEvents
<a name="ReadKeyRangeThroughputThrottleEvents"></a>

由于超过分区限额而受限制的读取请求数。

单位：`Count`

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `Sum`：受限事件的数量。
+ `SampleCount`：发生节流的次数。
+ `Minimum`：任意给定样本中受限制事件的最小数量。
+ `Maximum`：任意给定样本中受限制事件的最大数量。

### ReadMaxOnDemandThroughputThrottleEvents
<a name="ReadMaxOnDemandThroughputThrottleEvents"></a>

由于超过按需最大吞吐量而受限制的读取请求数。

单位：`Count`

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `Sum`：受限事件的数量。
+ `SampleCount`：发生节流的次数。
+ `Minimum`：任意给定样本中受限制事件的最小数量。
+ `Maximum`：任意给定样本中受限制事件的最大数量。

### ReadProvisionedThroughputThrottleEvents
<a name="ReadProvisionedThroughputThrottleEvents"></a>

由于超过预置吞吐量限额而受限制的读取请求数。

单位：`Count`

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `Sum`：受限事件的数量。
+ `SampleCount`：发生节流的次数。
+ `Minimum`：任意给定样本中受限制事件的最小数量。
+ `Maximum`：任意给定样本中受限制事件的最大数量。

### ReadThrottleEvents
<a name="ReadThrottleEvents"></a>

对 DynamoDB 的请求超出表或全局二级索引的预置读取容量单位数。

单个请求可能导致多个事件。例如，`BatchGetItem` 读取 10 个项目，按照 10 个 `GetItem` 事件处理。对于每个事件，如果事件受到限制，则 `ReadThrottleEvents` 递增 1。除非*所有 10* 个 `GetItem` 事件都受限制，否则整个 `BatchGetItem` 的 `ThrottledRequests` 指标不会递增。

`TableName` 维度对表返回 `ReadThrottleEvents`，但不对任何全局二级索引返回。要查看全局二级索引的 `ReadThrottleEvents`，必须指定 `TableName` 和 `GlobalSecondaryIndexName`。

单位：`Count`

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `SampleCount`
+ `Sum`

### ReplicationLatency
<a name="ReplicationLatency"></a>

（此指标适用于 DynamoDB 全局表。） DynamoDB 流中出现一个副本表的更新项目，与全局表中另一个副本显示该项目之间的时间。

单位：`Milliseconds`

维度：`TableName, ReceivingRegion`

有效统计数据：
+ `Average`
+ `Minimum`
+ `Maximum`

### ReturnedBytes
<a name="ReturnedBytes"></a>

`GetRecords` 操作 (Amazon DynamoDB Streams) 在指定时段内返回的字节数。

单位：`Bytes`

维度：`Operation, StreamLabel, TableName`

有效统计数据：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### ReturnedItemCount
<a name="ReturnedItemCount"></a>

`Query`、`Scan` 或 `ExecuteStatement`（可选择）操作在指定时段内返回的项目数。

*返回的*项目数并不一定与已计算的项目数相同。例如，假设对一个具有 100 个项目的表或索引请求 `Scan`，但指定 `FilterExpression`，缩小结果范围，仅返回 15 个项目。在此情况下，来自 `Scan` 的响应包含 100 个 `ScanCount` 返回项目和 15 个 `Count` 返回项目。

单位：`Count`

维度：`TableName, Operation`

有效统计数据：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### ReturnedRecordsCount
<a name="ReturnedRecordsCount"></a>

`GetRecords` 操作 (Amazon DynamoDB Streams) 在指定时段内返回的流记录数。

单位：`Count`

维度：`Operation, StreamLabel, TableName`

有效统计数据：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### SuccessfulRequestLatency
<a name="SuccessfulRequestLatency"></a>

指定时间段内对于 DynamoDB 或 Amazon DynamoDB Streams 的成功请求的延迟。`SuccessfulRequestLatency` 可提供两种不同的信息：
+ 成功请求所用的时间（`Minimum`、`Maximum`、`Sum`、`Average` 或 `Percentile`）。
+ 成功的请求数 (`SampleCount`)。

`SuccessfulRequestLatency` 仅反映 DynamoDB 或 Amazon DynamoDB Streams 中的活动，而不考虑网络延迟或客户端活动。

**注意**  
要分析自定义百分位数值（例如 p99.9），可以在 CloudWatch 指标统计数据字段中手动输入所需的百分位数（例如 p99.9）。这样，您就可以评估超出下拉列表中所列默认百分位数的延迟分布。

单位：`Milliseconds`

维度：`TableName, Operation, StreamLabel`

有效统计数据：
+ `Minimum`
+ `Maximum`
+ `Sum`
+ `Average`
+ `Percentile`
+ `SampleCount`

### SystemErrors
<a name="SystemErrors"></a>

在指定的时间段内生成 HTTP 500 状态代码的对 DynamoDB 或 Amazon DynamoDB Streams 的请求。HTTP 500 通常指示内部服务错误。

**注意**  
当 DynamoDB 返回系统错误（HTTP 500）时，大多数 AWS SDK 会自动执行可配置的重试次数。如果问题在重试期间得到解决，则应用程序将继续运行而不会出现错误，并且您可能会注意到客户端感知到的延迟有所增加。如果在所有重试后错误仍然存在，该错误会传播到应用程序代码中。

单位：`Count`

维度：`TableName, Operation`

有效统计数据：
+ `Sum`
+ `SampleCount`

### TimeToLiveDeletedItemCount
<a name="TimeToLiveDeletedItemCount"></a>

指定时间段内按生存时间（TTL）删除的项目数。此指标有助于监控表上的 TTL 删除率。

单位：`Count`

维度：TableName

有效统计数据：
+ `Sum`

### ThrottledPutRecordCount
<a name="ThrottledPutRecordCount"></a>

由于 Kinesis Data Streams 容量不足而受 Kinesis 数据流限制的记录数。

单位：`Count`

维度：TableName、DelegatedOperation

有效统计数据：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`

### ThrottledRequests
<a name="ThrottledRequests"></a>

超出资源（如表或索引）预调配吞吐量限制的 DynamoDB 请求。

如果请求中的任何事件超过预调配吞吐量配额，`ThrottledRequests` 将递增 1。例如，如果使用全局二级索引更新表中的项目，则存在多个事件 — 对表的写入和对每个索引的写入。如果一个或多个此类事件受到限制，则 `ThrottledRequests` 将递增 1。

**注意**  
在批处理请求（`BatchGetItem` 或 `BatchWriteItem`）,仅当批处理的*每个*请求受到限制时，`ThrottledRequests` 递增。  
如果批处理中的任何单个请求受到限制，则以下指标之一将递增：  
`ReadThrottleEvents` – 对于 `BatchGetItem` 中受到限制的 `GetItem` 事件。
`WriteThrottleEvents` – 对于 `BatchWriteItem` 中受到限制的 `PutItem` 或 `DeleteItem` 事件。

要深入了解限制请求的事件，请为表及其索引比较 `ThrottledRequests` 与 `ReadThrottleEvents` 和 `WriteThrottleEvents`。

**注意**  
受限制的请求将生成 HTTP 400 状态代码。所有这些事件都反映在 `ThrottledRequests` 指标中，而不是 `UserErrors` 指标。

单位：`Count`

维度：`TableName, Operation`

有效统计数据：
+ `Sum`
+ `SampleCount`

### TransactionConflict
<a name="TransactionConflict"></a>

由于同一项目的并发请求之间的事务性冲突而被拒绝的项目级请求。有关更多信息，请参见 [DynamoDB 中的事务冲突处理](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html#transaction-conflict-handling)。

单位：`Count`

维度：`TableName`

有效统计数据：
+ `Sum` – 由于交易冲突而被拒绝的项目级别请求数量。
**注意**  
如果对 `TransactWriteItems` 或 `TransactGetItems` 的调用中的多个项目级请求被拒绝，`Sum` 将为每个项目级 `Put`、`Update`、`Delete` 或 `Get` 请求递增。
+ `SampleCount` – 由于事务冲突而被拒绝的请求数。
**注意**  
如果对 `TransactWriteItems` 或 `TransactGetItems` 的调用中的多个项目级请求被拒绝，`SampleCount` 仅递增 1。
+ `Min` – 对 `TransactWriteItems`、`TransactGetItems`、`PutItem`、`UpdateItem` 或 `DeleteItem` 的调用中被拒绝的项目级请求最小数量。
+ `Max` – 对 `TransactWriteItems`、`TransactGetItems`、`PutItem`、`UpdateItem` 或 `DeleteItem` 的调用中被拒绝的项目级请求最大数量。
+ `Average` – 对 `TransactWriteItems`、`TransactGetItems`、`PutItem`、`UpdateItem` 或 `DeleteItem` 的调用中被拒绝的项目级请求平均数量。

### UserErrors
<a name="UserErrors"></a>

在指定时间段内生成 HTTP 400 状态代码的对 DynamoDB 或 Amazon DynamoDB Streams 的请求。HTTP 400 通常表示客户端错误，如参数组合无效，尝试更新不存在的表或请求签名错误。

 将记录与 `UserErrors` 相关的指标的一些异常示例为：
+ `ResourceNotFoundException`
+ `ValidationException`
+ `TransactionConflict`

所有这些事件反映在 `UserErrors` 指标中，但以下情况除外：
+ *ProvisionedThroughputExceededException* – 参见本节的 `ThrottledRequests` 指标。
+ *ConditionalCheckFailedException* – 参见本节的 `ConditionalCheckFailedRequests` 指标。

`UserErrors` 显示当前 AWS 区域和当前 AWS 帐户的 DynamoDB 或 Amazon DynamoDB Streams 请求的 HTTP 400 错误汇总。

单位：`Count`

有效统计数据：
+ `Sum`
+ `SampleCount`

### WriteAccountLimitThrottleEvents
<a name="WriteAccountLimitThrottleEvents"></a>

由于超过账户限额而受限制的写入请求数。

单位：`Count`

维度：`TableName`

有效统计数据：
+ `Sum`：受限事件的数量。
+ `SampleCount`：发生节流的次数。
+ `Minimum`：任意给定样本中受限制事件的最小数量。
+ `Maximum`：任意给定样本中受限制事件的最大数量。

### WriteKeyRangeThroughputThrottleEvents
<a name="WriteKeyRangeThroughputThrottleEvents"></a>

由于超过分区限额而受限制的写入请求数。

单位：`Count`

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `Sum`：受限事件的数量。
+ `SampleCount`：发生节流的次数。
+ `Minimum`：任意给定样本中受限制事件的最小数量。
+ `Maximum`：任意给定样本中受限制事件的最大数量。

### WriteMaxOnDemandThroughputThrottleEvents
<a name="WriteMaxOnDemandThroughputThrottleEvents"></a>

由于超过按需最大吞吐量而受限制的写入请求数。

单位：`Count`

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `Sum`：受限事件的数量。
+ `SampleCount`：发生节流的次数。
+ `Minimum`：任意给定样本中受限制事件的最小数量。
+ `Maximum`：任意给定样本中受限制事件的最大数量。

### WriteProvisionedThroughputThrottleEvents
<a name="WriteProvisionedThroughputThrottleEvents"></a>

由于超过预置吞吐量限额而受限制的写入请求数。

单位：`Count`

维度: `TableName`, `GlobalSecondaryIndexName` 

有效统计数据：
+ `Sum`：受限事件的数量。
+ `SampleCount`：发生节流的次数。
+ `Minimum`：任意给定样本中受限制事件的最小数量。
+ `Maximum`：任意给定样本中受限制事件的最大数量。

### WriteThrottleEvents
<a name="WriteThrottleEvents"></a>

对 DynamoDB 的请求超出表或全局二级索引的预置写入容量单位数。

单个请求可能导致多个事件。例如，具有三个全局二级索引的表的 `PutItem` 请求将导致四个事件—表写入和三个索引写入。对于每个事件，如果事件受到限制，`WriteThrottleEvents` 指标将递增 1。对于单个 `PutItem` 请求，如果任何事件受到限制，`ThrottledRequests` 也递增 1。对于 `BatchWriteItem`，除非所有 `PutItem` 或 `DeleteItem` 事件受到限制，否则整个 `BatchWriteItem` 的 `ThrottledRequests` 指标不递增。

`TableName` 维度对表返回 `WriteThrottleEvents`，但不对任何全局二级索引返回。要查看全局二级索引的 `WriteThrottleEvents`，必须指定 `TableName` 和 `GlobalSecondaryIndexName`。

单位：`Count`

维度：`TableName, GlobalSecondaryIndexName`

有效统计数据：
+ `Sum`
+ `SampleCount`

### 使用情况指标
<a name="w2aac41c15c13b7c11"></a>

CloudWatch 中的使用情况指标允许您通过在 CloudWatch 控制台中直观呈现指标、创建自定义控制面板、使用 CloudWatch 异常检测功能检测活动变化以及配置在使用量接近阈值时提示您的告警，主动管理使用情况。

DynamoDB 还将这些使用率指标与 Service Quotas 集成。您可以使用 CloudWatch 管理您的账户对 Service Quotas 的使用情况。有关更多信息，请参阅 [可视化 Service Quotas 并设置警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Quotas-Visualize-Alarms.html)

**Topics**<a name="ddb-usage-metrics.title"></a>
+ [AccountProvisionedWriteCapacityUnits](#w2aac41c15c13b7c11b9)
+ [AccountProvisionedReadCapacityUnits](#w2aac41c15c13b7c11c11)
+ [TableCount](#w2aac41c15c13b7c11c13)

#### AccountProvisionedWriteCapacityUnits
<a name="w2aac41c15c13b7c11b9"></a>

为账户的所有表或全局二级索引预置的写入容量单位总数。

单位：`Count`

有效统计数据：
+ `Minimum` – 一段时间内预置的最小写入容量单位数。
+ `Maximum` – 一段时间内预置的最大写入容量单位数。
+ `Average` – 一段时间内预置的平均写入容量单位数。

此指标每五分钟发布一次。因此，如果快速调整预置写入容量单位，则此统计数据可能不会反映实际平均值。

#### AccountProvisionedReadCapacityUnits
<a name="w2aac41c15c13b7c11c11"></a>

为账户的所有表或全局二级索引预置的读取容量单位总数。

单位：`Count`

有效统计数据：
+ `Minimum` – 一段时间内预置的最小读取容量单位数。
+ `Maximum` – 一段时间内预置的最大读取容量单位数。
+ `Average` – 一段时间内预置的平均读取容量单位数。

此指标每五分钟发布一次。因此，如果快速调整预置读取容量单位，则此统计数据可能不会反映实际平均值。

#### TableCount
<a name="w2aac41c15c13b7c11c13"></a>

账户的活动表数。

单位：`Count`

有效统计数据：
+ `Minimum` – 一段时间内的最小表数。
+ `Maximum` – 一段时间内的最大表数。
+ `Average` – 一段时间内的平均表数。

### FaultInjectionServiceInducedErrors
<a name="FaultInjectionServiceInducedErrors"></a>

对于 DynamoDB 的请求，这些请求在指定的时间段内和作为 AWS FIS 实验结果的追赶期间生成模拟的 HTTP 500 状态代码。

单位：`Count`

维度: `TableName`, `Operation` 

有效统计数据：
+ `Sum` 
+ `SampleCount` 

## 了解 DynamoDB 的指标和维度
<a name="ddb-understanding-metric-dimensions"></a>

DynamoDB 的指标由账户、表名、全局二级索引名称或操作的值进行限定。可以使用 CloudWatch 控制台，按照下表的任意维度检索 DynamoDB 数据。

**Topics**<a name="available-metrics.title"></a>
+ [DelegatedOperation](#w2aac41c15c13b9b7)
+ [GlobalSecondaryIndexName](#w2aac41c15c13b9b9)
+ [操作](#w2aac41c15c13b9c11)
+ [OperationType](#w2aac41c15c13b9c13)
+ [谓词](#w2aac41c15c13b9c15)
+ [ReceivingRegion](#w2aac41c15c13b9c17)
+ [StreamLabel](#w2aac41c15c13b9c19)
+ [TableName](#w2aac41c15c13b9c21)

### DelegatedOperation
<a name="w2aac41c15c13b9b7"></a>

此维度将数据限制为 DynamoDB 代您执行的操作。捕获以下操作：
+ 更改 Kinesis Data Streams 的数据捕获。

### GlobalSecondaryIndexName
<a name="w2aac41c15c13b9b9"></a>

此维度将数据限制为表的全局二级索引。如果指定 `GlobalSecondaryIndexName`，还必须指定 `TableName`。

### 操作
<a name="w2aac41c15c13b9c11"></a>

此维度将数据限制为以下 DynamoDB 操作之一：
+ `PutItem`
+ `DeleteItem`
+ `UpdateItem`
+ `GetItem`
+ `BatchGetItem`
+ `Scan`
+ `Query`
+ `BatchWriteItem`
+ `TransactWriteItems`
+ `TransactGetItems`
+ `ExecuteTransaction`
+ `BatchExecuteStatement`
+ `ExecuteStatement`

此外还可以将数据限制为以下 Amazon DynamoDB Streams 操作：
+ `GetRecords`

### OperationType
<a name="w2aac41c15c13b9c13"></a>

此维度将数据限制为以下操作类型之一：
+ `Read`
+ `Write`

为 `ExecuteTransaction` 和 `BatchExecuteStatement` 请求发出此维度。

### 谓词
<a name="w2aac41c15c13b9c15"></a>

此维度将数据限定为以下 DynamoDB PartiQL 动词之一：
+ 插入：`PartiQLInsert`
+ 选择：`PartiQLSelect`
+ 更新：`PartiQLUpdate`
+ 删除：`PartiQLDelete`

为 `ExecuteStatement` 操作发出此维度。

### ReceivingRegion
<a name="w2aac41c15c13b9c17"></a>

此维度将数据限制为特定 AWS 区域。它与源自 DynamoDB 全局表中副本表的指标一起使用。

### StreamLabel
<a name="w2aac41c15c13b9c19"></a>

此维度将数据限制为特定流标签。它与源自 Amazon DynamoDB Streams `GetRecords` 操作的指标一起使用。

### TableName
<a name="w2aac41c15c13b9c21"></a>

此维度将数据限制为特定表。值可以是当前区域和当前 AWS 账户中的任意表名称。