DynamoDB 指标与维度 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

DynamoDB 指标与维度

与 DynamoDB 交互时,会向 CloudWatch 发送以下指标和维度。可以使用以下过程查看 DynamoDB 的指标。

要查看指标(控制台)

指标的分组首先依据服务命名空间,然后依据每个命名空间内的各种维度组合。

  1. 访问 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在导航窗格中,选择指标

    注意
  3. 选择 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 指标,汇总粒度为五分钟。

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

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

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

执行条件写入的尝试失败次数。PutItemUpdateItemDeleteItem 操作允许提供一个逻辑条件,该条件计算结果必须为 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,必须指定 TableNameGlobalSecondaryIndexName

注意

在 Amazon DynamoDB 中,消耗容量指标每隔一分钟作为平均值报告给 CloudWatch。这意味着,持续仅一秒的短暂、剧烈的容量消耗峰值可能无法准确地反映在 CloudWatch 图中,这可能导致该分钟的表观消耗率较低。

使用 Sum 统计信息计算占用的吞吐量。例如,获取一分钟内的 Sum 值,并将其除以一分钟内的秒数(60),以计算每秒平均 ConsumedReadCapacityUnits。可以比较计算值与提供 DynamoDB 的预置吞吐量值。

单位:Count

维度:TableName, GlobalSecondaryIndexName

有效统计数据:

  • Minimum – 对表或索引的任何请求占用的最小读取容量单位数。

  • Maximum – 对表或索引的任何请求占用的最大读取容量单位数。

  • Average – 每个请求占用的平均读取容量。

    注意

    Average 值受不活动时间的影响,不活动时的采样值将为零。

  • Sum – 占用的总读取容量单位。这是对 ConsumedReadCapacityUnits 指标最有用的统计数据。

  • SampleCount – 对 DynamoDB 的读取请求数。如果未消耗读取容量,则返回 0。

    注意

    SampleCount 值受不活动时间的影响,不活动时的采样值将为零。

已使用写入容量单位

在指定时间段内,预调配容量和按需容量占用的写入容量单位数,这样您可以跟踪使用了多少吞吐量。可以检索表及其所有全局二级索引或特定全局二级索引占用的总写入容量。有关更多信息,请参见读/写容量模式

TableName 维度对表返回 ConsumedWriteCapacityUnits,但不对任何全局二级索引返回。要查看全局二级索引的 ConsumedWriteCapacityUnits,必须指定 TableNameGlobalSecondaryIndexName

注意

使用 Sum 统计信息计算占用的吞吐量。然后,获得一分钟的 Sum 值,除以一分钟的秒数 (60),计算每秒平均 ConsumedWriteCapacityUnits(确认此平均值不会突出显示这一分钟内出现的写入操作的任何大而短暂的峰值)。可以比较计算值与提供 DynamoDB 的预置吞吐量值。

单位:Count

维度:TableName, GlobalSecondaryIndexName

有效统计数据:

  • Minimum – 对表或索引的任何请求占用的最小写入容量单位数。

  • Maximum – 对表或索引的任何请求占用的最大写入容量单位数。

  • Average – 每个请求占用的平均写入容量。

    注意

    Average 值受不活动时间的影响,不活动时的采样值将为零。

  • Sum – 占用的总写入容量单位。这是对 ConsumedWriteCapacityUnits 指标最有用的统计数据。

  • SampleCount – 对 DynamoDB 的写入请求数,即使未占用写入容量。

    注意

    SampleCount 值受不活动时间的影响,不活动时的采样值将为零。

FailedToReplicateRecordCount

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

单位:Count

维度: TableName, DelegatedOperation

有效统计数据:

  • Sum

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,必须指定 TableNameGlobalSecondaryIndexName

单位:Count

维度:TableName, GlobalSecondaryIndexName

有效统计数据:

  • Minimum – 预置读取容量的最低设置。如果使用 UpdateTable 增加读取容量,则此指标显示此时间段的预置 ReadCapacityUnits 最低值。

  • Maximum – 预置读取容量的最高设置。如果使用 UpdateTable 减少读取容量,则此指标显示此时间段的预置 ReadCapacityUnits 最高值。

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

已配置写入容量单位

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

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

单位:Count

维度:TableName, GlobalSecondaryIndexName

有效统计数据:

  • Minimum – 预置写入容量的最低设置。如果使用 UpdateTable 增加写入容量,则此指标显示此时间段的预置 WriteCapacityUnits 最低值。

  • Maximum – 预置写入容量的最高设置。如果使用 UpdateTable 减少写入容量,则此指标显示此时间段的预置 WriteCapacityUnits 最高值。

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

ReadThrottleEvents

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

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

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

单位: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

QueryScanExecuteStatement(可选择)操作在指定时段内返回的项目数。

返回的项目数并不一定与已计算的项目数相同。例如,假设对一个具有 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 可提供两种不同的信息:

  • 成功请求的所用时间(MinimumMaximumSumAverage)。

  • 成功的请求数 (SampleCount)。

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

单位:Milliseconds

维度:TableName, Operation, StreamLabel

有效统计数据:

  • 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。

注意

在批处理请求(BatchGetItemBatchWriteItem),仅当批处理的每个请求受到限制时,ThrottledRequests 递增。

如果批处理中的任何单个请求受到限制,则以下指标之一将递增:

  • ReadThrottleEvents – 对于 BatchGetItem 中受到限制的 GetItem 事件。

  • WriteThrottleEvents – 对于 BatchWriteItem 中受到限制的 PutItemDeleteItem 事件。

要深入了解限制请求的事件,请为表及其索引比较 ThrottledRequestsReadThrottleEventsWriteThrottleEvents

注意

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

单位:Count

维度:TableName, Operation

有效统计数据:

  • Sum

  • SampleCount

TransactionConflict

由于同一项目的并发请求之间的事务性冲突而被拒绝的项目级请求。有关更多信息,请参见 DynamoDB 中的事务冲突处理

单位:Count

维度:TableName

有效统计数据:

  • Sum – 由于交易冲突而被拒绝的项目级别请求数量。

    注意

    如果对 TransactWriteItemsTransactGetItems 的调用中的多个项目级请求被拒绝,Sum 将为每个项目级 PutUpdateDeleteGet 请求递增。

  • SampleCount – 由于事务冲突而被拒绝的请求数。

    注意

    如果对 TransactWriteItemsTransactGetItems 的调用中的多个项目级请求被拒绝,SampleCount 仅递增 1。

  • Min – 对 TransactWriteItemsTransactGetItemsPutItemUpdateItemDeleteItem 的调用中被拒绝的项目级请求最小数量。

  • Max – 对 TransactWriteItemsTransactGetItemsPutItemUpdateItemDeleteItem 的调用中被拒绝的项目级请求最大数量。

  • Average – 对 TransactWriteItemsTransactGetItemsPutItemUpdateItemDeleteItem 的调用中被拒绝的项目级请求平均数量。

UserErrors

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

将记录与 UserErrors 相关的指标的一些异常示例为:

  • ResourceNotFoundException

  • ValidationException

  • TransactionConflict

所有这些事件反映在 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,除非所有 PutItemDeleteItem 事件受到限制,否则整个 BatchWriteItemThrottledRequests 指标不递增。

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

单位: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

ExecuteTransactionBatchExecuteStatement 请求发出此维度。

谓词

此维度将数据限定为以下 DynamoDB PartiQL 动词之一:

  • 插入:PartiQLInsert

  • 选择:PartiQLSelect

  • 更新:PartiQLUpdate

  • 删除:PartiQLDelete

ExecuteStatement 操作发出此维度。

ReceivingRegion

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

StreamLabel

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

TableName

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