DynamoDB 指标与维度
与 DynamoDB 交互时,会向 CloudWatch 发送以下指标和维度。可以使用以下过程查看 DynamoDB 的指标。
要查看指标(控制台)
指标的分组首先依据服务命名空间,然后依据每个命名空间内的各种维度组合。
-
访问 https://console.aws.amazon.com/cloudwatch/
打开 CloudWatch 控制台。 -
在导航窗格中,请选择指标。
注意
-
选择 DynamoDB 命名空间。
查看指标 (CLI)
-
在命令提示符处输入下面的命令:
aws cloudwatch list-metrics --namespace "AWS/DynamoDB"
查看 指标和维度
下面列出 DynamoDB 发送到 Amazon CloudWatch 的指标和维度。
DynamoDB 指标
注意
Amazon CloudWatch 每隔一分钟汇总一次这些指标:
-
ConditionalCheckFailedRequests
-
ConsumedReadCapacityUnits
-
ConsumedWriteCapacityUnits
-
ReadThrottleEvents
-
ReturnedBytes
-
ReturnedItemCount
-
ReturnedRecordsCount
-
SuccessfulRequestLatency
-
SystemErrors
-
TimeToLiveDeletedItemCount
-
ThrottledRequests
-
TransactionConflict
-
UserErrors
-
WriteThrottleEvents
对于所有其他 DynamoDB 指标,汇总粒度为五分钟。
并非所有统计数据,如 Average 或 Sum,都适用于每个指标。不过,所有值均可通过 Amazon DynamoDB 控制台获得,也可通过使用适用于所有指标的 CloudWatch 控制台、Amazon CLI 或 Amazon SDK 获得。
在下表中,每个指标都有一个适用于该指标的有效统计数据列表。
可用指标的列表
- AccountMaxReads
- AccountMaxTableLevelReads
- AccountMaxTableLevelWrites
- AccountMaxWrites
- AccountProvisionedReadCapacityUtilization
- AccountProvisionedWriteCapacityUtilization
- AgeOfOldestUnreplicatedRecord
- ConditionalCheckFailedRequests
- ConsumedChangeDataCaptureUnits
- 已使用读取容量单位
- 已使用写入容量单位
- FailedToReplicateRecordCount
- MaxProvisionedTableReadCapacityUtilization
- MaxProvisionedTableWriteCapacityUtilization
- OnlineIndexConsumedWriteCapacity
- OnlineIndexPercentageProgress
- OnlineIndexThrottleEvents
- PendingReplicationCount
- 已配置读取容量单位
- 已配置写入容量单位
- ReadThrottleEvents
- ReplicationLatency
- ReturnedBytes
- ReturnedItemCount
- ReturnedRecordsCount
- SuccessfulRequestLatency
- SystemErrors
- TimeToLiveDeletedItemCount
- ThrottledPutRecordCount
- ThrottledRequests
- TransactionConflict
- UserErrors
- WriteThrottleEvents
AccountMaxReads
账户可以使用的最大读取容量单位数。此限制不适用于按需表或全局二级索引。
单位:Count
有效统计数据:
-
Maximum
- 账户可以使用的最大读取容量单位数。
AccountMaxTableLevelReads
账户的表或全局二级索引可以使用的最大读取容量单位数。对于按需表,此限制封顶表或全局二级索引可以使用的最大读取请求单位。
单位:Count
有效统计数据:
-
Maximum
– 账户的表或全局二级索引可以使用的最大读取容量单位数。
AccountMaxTableLevelWrites
账户的表或全局二级索引可以使用的最大写入容量单位数。对于按需表,此限制封顶表或全局二级索引可以使用的最大写入请求单位。
单位:Count
有效统计数据:
-
Maximum
– 账户的表或全局二级索引可以使用的最大写入容量单位数。
AccountMaxWrites
账户可以使用的最大写入容量单位数。此限制不适用于按需表或全局二级索引。
单位:Count
有效统计数据:
-
Maximum
- 账户可以使用的最大写入容量单位数。
AccountProvisionedReadCapacityUtilization
账户使用的预置读取容量单位百分比。
单位:Percent
有效统计数据:
-
Maximum
– 账户使用的最大预置读取容量单位百分比。 -
Minimum
– 账户使用的最小预置读取容量单位百分比。 -
Average
– 账户使用的平均预置读取容量单位百分比。该指标每五分钟发布一次。因此,如果快速调整预置读取容量单位,则此统计数据可能不会反映实际平均值。
AccountProvisionedWriteCapacityUtilization
账户使用的预置写入容量单位百分比。
单位:Percent
有效统计数据:
-
Maximum
– 账户使用的最大预置写入容量单位百分比。 -
Minimum
– 账户使用的最小预置写入容量单位百分比。 -
Average
– 账户使用的平均预置写入容量单位百分比。该指标每五分钟发布一次。因此,如果快速调整预置写入容量单位,则此统计数据可能不会反映实际平均值。
AgeOfOldestUnreplicatedRecord
尚未复制到 Kinesis 数据流的记录首次出现在 DynamoDB 表中以来所用的时间。
单位:Milliseconds
维度:TableName, DelegatedOperation
有效统计数据:
-
Maximum
. -
Minimum
. -
Average
.
ConditionalCheckFailedRequests
执行条件写入的尝试失败次数。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
已占用的更改数据捕获单位数量。
单位:Count
维度:TableName, DelegatedOperation
有效统计数据:
-
Minimum
-
Maximum
-
Average
已使用读取容量单位
指定时间段内占用的读取容量单位数,这样可以跟踪预置吞吐量的使用。可以检索表及其所有全局二级索引或特定全局二级索引占用的总读取容量。有关更多信息,请参见读/写容量模式。
TableName
维度对表返回 ConsumedReadCapacityUnits
,但不对任何全局二级索引返回。要查看全局二级索引的 ConsumedReadCapacityUnits
,必须指定 TableName
和 GlobalSecondaryIndexName
。
注意
使用 Sum
统计信息计算占用的吞吐量。然后,获得一分钟的 Sum
值,除以一分钟的秒数 (60),计算每秒平均 ConsumedReadCapacityUnits
(确认此平均值不会突出显示这一分钟内出现的读取操作的任何大而短暂的峰值)。可以比较计算值与提供 DynamoDB 的预置吞吐量值。
单位:Count
维度:TableName, GlobalSecondaryIndexName
有效统计数据:
-
Minimum
– 对表或索引的任何请求占用的最小读取容量单位数。 -
Maximum
– 对表或索引的任何请求占用的最大读取容量单位数。 -
Average
– 每个请求占用的平均读取容量。注意
Average
值受不活动时间的影响,不活动时的采样值将为零。 -
Sum
– 占用的总读取容量单位。这是对ConsumedReadCapacityUnits
指标最有用的统计数据。 -
SampleCount
– 对 DynamoDB 的读取请求数,即使未占用读取容量。注意
SampleCount
值受不活动时间的影响,不活动时的采样值将为零。
已使用写入容量单位
指定时间段内使用的写入容量单位数,这样可以跟踪预置吞吐量的使用。可以检索表及其所有全局二级索引或特定全局二级索引占用的总写入容量。有关更多信息,请参见读/写容量模式。
TableName
维度对表返回 ConsumedWriteCapacityUnits
,但不对任何全局二级索引返回。要查看全局二级索引的 ConsumedWriteCapacityUnits
,必须指定 TableName
和 GlobalSecondaryIndexName
。
注意
使用 Sum
统计信息计算占用的吞吐量。然后,获得一分钟的 Sum
值,除以一分钟的秒数 (60),计算每秒平均 ConsumedWriteCapacityUnits
(确认此平均值不会突出显示这一分钟内出现的写入操作的任何大而短暂的峰值)。可以比较计算值与提供 DynamoDB 的预置吞吐量值。
单位:Count
维度:TableName, GlobalSecondaryIndexName
有效统计数据:
-
Minimum
– 对表或索引的任何请求占用的最小写入容量单位数。 -
Maximum
– 对表或索引的任何请求占用的最大写入容量单位数。 -
Average
– 每个请求占用的平均写入容量。注意
Average
值受不活动时间的影响,不活动时的采样值将为零。 -
Sum
– 占用的总写入容量单位。这是对ConsumedWriteCapacityUnits
指标最有用的统计数据。 -
SampleCount
– 对 DynamoDB 的写入请求数,即使未占用写入容量。注意
SampleCount
值受不活动时间的影响,不活动时的采样值将为零。
FailedToReplicateRecordCount
DynamoDB 无法复制到 Kinesis 数据流的记录数。
单位:Count
维度: TableName
, DelegatedOperation
有效统计数据:
-
Minimum
-
Maximum
-
Average
-
SampleCount
MaxProvisionedTableReadCapacityUtilization
账户的最高预调配读取表或全局二级索引使用的预调配读取容量单位百分比。
单位:Percent
有效统计数据:
-
Maximum
– 账户的最高预调配读取表或全局二级索引使用的最大预调配读取容量单位百分比。 -
Minimum
– 账户的最高预调配读取表或全局二级索引使用的最小预调配读取容量单位百分比。 -
Average
– 账户的最高预调配写入表或全局二级索引使用的平均预调配写入容量单位百分比。该指标每五分钟发布一次。因此,如果快速调整预置读取容量单位,则此统计数据可能不会反映实际平均值。
MaxProvisionedTableWriteCapacityUtilization
账户的最高预置写入表或全局二级索引使用的预置写入容量百分比。
单位:Percent
有效统计数据:
-
Maximum
– 账户的最高预置写入表或全局二级索引使用的最大预置写入容量单位百分比。 -
Minimum
– 账户的最高预置写入表或全局二级索引使用的最小预置写入容量单位百分比。 -
Average
– 账户的最高预置写入表或全局二级索引使用的平均预置写入容量单位百分比。该指标每五分钟发布一次。因此,如果快速调整预置写入容量单位,则此统计数据可能不会反映实际平均值。
OnlineIndexConsumedWriteCapacity
向表添加新全局二级索引时占用的写入容量单位数。如果索引的写入容量太低,回填阶段的传入写入操作可能会受到限制。这会增加创建索引所需的时间。建立索引时应监视此统计信息,确定索引的写入容量是否配置不足。
可以使用 UpdateTable
操作调整索引写入容量,即使索引仍在建立中。
索引的 ConsumedWriteCapacityUnits
指标不包括索引创建过程中占用的写入吞吐量。
单位:Count
维度:TableName, GlobalSecondaryIndexName
有效统计数据:
-
Minimum
-
Maximum
-
Average
-
SampleCount
-
Sum
OnlineIndexPercentageProgress
将新的全局二级索引添加到表中时的完成百分比。DynamoDB 必须首先为新索引分配资源,然后将表中的属性回填到索引。对于大型表,此过程可能需要较长时间。DynamoDB 建立索引时,应监视此统计信息查看相关进度。
单位:Count
维度:TableName, GlobalSecondaryIndexName
有效统计数据:
-
Minimum
-
Maximum
-
Average
-
SampleCount
-
Sum
OnlineIndexThrottleEvents
向表添加新的全局二级索引时发生的写入限制事件数。这些事件表明索引创建需要更长的时间才能完成,因为传入的写入操作超出索引的预置写入吞吐量。
可以使用 UpdateTable
操作调整索引写入容量,即使索引仍在建立中。
索引的 WriteThrottleEvents
指标不包括索引创建期间发生的任何限制事件。
单位:Count
维度:TableName, GlobalSecondaryIndexName
有效统计数据:
-
Minimum
-
Maximum
-
Average
-
SampleCount
-
Sum
PendingReplicationCount
版本 2017.11.29(旧版) 的指标(仅限全局表)。写入一个副本表但尚未写入全局表中另一个副本的项目更新数。
单位:Count
维度:TableName, ReceivingRegion
有效统计数据:
-
Average
-
Sample Count
-
Sum
已配置读取容量单位
表或全局二级索引的预置读取容量单位数。TableName
维度对表返回 ProvisionedReadCapacityUnits
,但不对任何全局二级索引返回。要查看全局二级索引的 ProvisionedReadCapacityUnits
,必须指定 TableName
和 GlobalSecondaryIndexName
。
单位:Count
维度:TableName, GlobalSecondaryIndexName
有效统计数据:
-
Minimum
– 预置读取容量的最低设置。如果使用UpdateTable
增加读取容量,则此指标显示此时间段的预置ReadCapacityUnits
最低值。 -
Maximum
– 预置读取容量的最高设置。如果使用UpdateTable
减少读取容量,则此指标显示此时间段的预置ReadCapacityUnits
最高值。 -
Average
– 平均预置读取容量。ProvisionedReadCapacityUnits
指标每五分钟发布一次。因此,如果快速调整预置读取容量单位,则此统计数据可能不会反映实际平均值。
已配置写入容量单位
表或全局二级索引的预置写入容量单位数。
TableName
维度对表返回 ProvisionedWriteCapacityUnits
,但不对任何全局二级索引返回。要查看全局二级索引的 ProvisionedWriteCapacityUnits
,必须指定 TableName
和 GlobalSecondaryIndexName
。
单位:Count
维度:TableName, GlobalSecondaryIndexName
有效统计数据:
-
Minimum
– 预置写入容量的最低设置。如果使用UpdateTable
增加写入容量,则此指标显示此时间段的预置WriteCapacityUnits
最低值。 -
Maximum
– 预置写入容量的最高设置。如果使用UpdateTable
减少写入容量,则此指标显示此时间段的预置WriteCapacityUnits
最高值。 -
Average
– 平均预置写入容量。ProvisionedWriteCapacityUnits
指标每五分钟发布一次。因此,如果快速调整预置写入容量单位,则此统计数据可能不会反映实际平均值。
ReadThrottleEvents
对 DynamoDB 的请求超出表或全局二级索引的预置读取容量单位数。
单个请求可能导致多个事件。例如,BatchGetItem
读取 10 个项目,按照 10 个 GetItem
事件处理。对于每个事件,如果事件受到限制,则 ReadThrottleEvents
递增 1。除非所有 10 个 GetItem
事件都受限制,否则整个 BatchGetItem
的 ThrottledRequests
指标不会递增。
TableName
维度对表返回 ReadThrottleEvents
,但不对任何全局二级索引返回。要查看全局二级索引的 ReadThrottleEvents
,必须指定 TableName
和 GlobalSecondaryIndexName
。
单位:Count
维度:TableName, GlobalSecondaryIndexName
有效统计数据:
-
SampleCount
-
Sum
ReplicationLatency
(此指标适用于 DynamoDB 全局表。) DynamoDB 流中出现一个副本表的更新项目,与全局表中另一个副本显示该项目之间的时间。
单位:Milliseconds
维度:TableName, ReceivingRegion
有效统计数据:
-
Average
-
Minimum
-
Maximum
ReturnedBytes
GetRecords
操作 (Amazon DynamoDB Streams) 在指定时段内返回的字节数。
单位:Bytes
维度:Operation, StreamLabel, TableName
有效统计数据:
-
Minimum
-
Maximum
-
Average
-
SampleCount
-
Sum
ReturnedItemCount
Query
、Scan
或 ExecuteStatement
(可选择)操作在指定时段内返回的项目数。
返回的项目数并不一定与已计算的项目数相同。例如,假设对一个具有 100 个项目的表或索引请求 Scan
,但指定 FilterExpression
,缩小结果范围,仅返回 15 个项目。在此情况下,来自 Scan
的响应包含 100 个 ScanCount
返回项目和 15 个 Count
返回项目。
单位:Count
维度:TableName, Operation
有效统计数据:
-
Minimum
-
Maximum
-
Average
-
SampleCount
-
Sum
ReturnedRecordsCount
GetRecords
操作 (Amazon DynamoDB Streams) 在指定时段内返回的流记录数。
单位:Count
维度:Operation, StreamLabel, TableName
有效统计数据:
-
Minimum
-
Maximum
-
Average
-
SampleCount
-
Sum
SuccessfulRequestLatency
指定时间段内对于 DynamoDB 或 Amazon DynamoDB Streams 的成功请求的延迟。SuccessfulRequestLatency
可提供两种不同的信息:
-
成功请求的所用时间(
Minimum
、Maximum
、Sum
或Average
)。 -
成功的请求数 (
SampleCount
)。
SuccessfulRequestLatency
仅反映 DynamoDB 或 Amazon DynamoDB Streams 中的活动,不考虑网络延迟或客户端活动。
单位:Milliseconds
维度:TableName, Operation
有效统计数据:
-
Minimum
-
Maximum
-
Average
-
SampleCount
SystemErrors
在指定的时间段内生成 HTTP 500 状态代码的对 DynamoDB 或 Amazon DynamoDB Streams 的请求。HTTP 500 通常指示内部服务错误。
单位:Count
维度:TableName, Operation
有效统计数据:
-
Sum
-
SampleCount
TimeToLiveDeletedItemCount
指定时间段内按存活时间 (TTL) 删除的项目数。此指标有助于监控表上的 TTL 删除率。
单位:Count
维度:TableName
有效统计数据:
-
Sum
ThrottledPutRecordCount
由于 Kinesis Data Streams 容量不足而受 Kinesis 数据流限制的记录数。
单位:Count
维度:TableName、DelegatedOperation
有效统计数据:
-
Minimum
-
Maximum
-
Average
-
SampleCount
ThrottledRequests
超出资源(如表或索引)预置吞吐量限制的 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
由于同一项目的并发请求之间的事务性冲突而被拒绝的项目级请求。有关更多信息,请参见 DynamoDB 中的事务冲突处理。
单位: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
在指定时间段内生成 HTTP 400 状态代码的对 DynamoDB 或 Amazon DynamoDB Streams 的请求。HTTP 400 通常表示客户端错误,如参数组合无效,尝试更新不存在的表或请求签名错误。
所有这些事件反映在 UserErrors
指标中,但以下情况除外:
-
ProvisionedThroughputExceededException – 参见本节的
ThrottledRequests
指标。 -
ConditionalCheckFailedException – 参见本节的
ConditionalCheckFailedRequests
指标。
UserErrors
显示当前 Amazon 区域和当前 Amazon 帐户的 DynamoDB 或 Amazon DynamoDB Streams 请求的 HTTP 400 错误汇总。
单位:Count
有效统计数据:
-
Sum
-
SampleCount
WriteThrottleEvents
对 DynamoDB 的请求超出表或全局二级索引的预置写入容量单位数。
单个请求可能导致多个事件。例如,具有三个全局二级索引的表的 PutItem
请求将导致四个事件—表写入和三个索引写入。对于每个事件,如果事件受到限制,WriteThrottleEvents
指标将递增 1。对于单个 PutItem
请求,如果任何事件受到限制,ThrottledRequests
也递增 1。对于 BatchWriteItem
,除非所有 PutItem
或 DeleteItem
事件受到限制,否则整个 BatchWriteItem
的 ThrottledRequests
指标不递增。
TableName
维度对表返回 WriteThrottleEvents
,但不对任何全局二级索引返回。要查看全局二级索引的 WriteThrottleEvents
,必须指定 TableName
和 GlobalSecondaryIndexName
。
单位:Count
维度:TableName, GlobalSecondaryIndexName
有效统计数据:
-
Sum
-
SampleCount
了解 DynamoDB 的指标和维度
DynamoDB 的指标由账户、表名、全局二级索引名称或操作的值进行限定。可以使用 CloudWatch 控制台,按照下表的任意维度检索 DynamoDB 数据。
可用维度的列表
DelegatedOperation
此维度将数据限制为 DynamoDB 代您执行的操作。捕获以下操作:
-
更改 Kinesis Data Streams 的数据捕获。
GlobalSecondaryIndexName
此维度将数据限制为表的全局二级索引。如果指定 GlobalSecondaryIndexName
,还必须指定 TableName
。
运算
此维度将数据限制为以下 DynamoDB 操作之一:
-
PutItem
-
DeleteItem
-
UpdateItem
-
GetItem
-
BatchGetItem
-
Scan
-
Query
-
BatchWriteItem
-
TransactWriteItems
-
TransactGetItems
-
ExecuteTransaction
-
BatchExecuteStatement
-
ExecuteStatement
此外还可以将数据限制为以下 Amazon DynamoDB Streams 操作:
-
GetRecords
OperationType
此维度将数据限制为以下操作类型之一:
-
Read
-
Write
为 ExecuteTransaction
和 BatchExecuteStatement
请求发出此维度。
谓词
此维度将数据限定为以下 DynamoDB PartiQL 动词之一:
-
插入:
PartiQLInsert
-
选择:
PartiQLSelect
-
更新:
PartiQLUpdate
-
删除:
PartiQLDelete
为 ExecuteStatement
操作发出此维度。
ReceivingRegion
此维度将数据限制为特定 Amazon 区域。它与源自 DynamoDB 全局表中副本表的指标一起使用。
StreamLabel
此维度将数据限制为特定流标签。它与源自 Amazon DynamoDB Streams GetRecords
操作的指标一起使用。
TableName
此维度将数据限制为特定表。值可以是当前区域和当前 Amazon 账户中的任意表名称。