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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

DynamoDB 指标与维度

当您与 DynamoDB 交互时,它会向 CloudWatch 发送下列指标和维度。您可以按照以下过程查看 DynamoDB 的指标。

查看指标(控制台)

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

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

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

  3. 选择DynamoDB命名空间。

查看指标 (CLI)

  • 在命令提示符处,输入以下命令:

    aws cloudwatch list-metrics --namespace "AWS/DynamoDB"

CloudWatch 会显示的 DynamoDB 下指标:

DynamoDB 维度与指标

下面列出了 DynamoDB 发送给 Amazon CloudWatch 的指标和维度。

DynamoDB 指标

注意

Amazon CloudWatch 每隔一分钟汇总一次以下 DynamoDB 指标:

  • ConditionalCheckFailedRequests

  • ConsumedReadCapacityUnits

  • ConsumedWriteCapacityUnits

  • ReadThrottleEvents

  • ReturnedBytes

  • ReturnedItemCount

  • ReturnedRecordsCount

  • SuccessfulRequestLatency

  • SystemErrors

  • TimeToLiveDeletedItemCount

  • ThrottledRequests

  • TransactionConflict

  • UserErrors

  • WriteThrottleEvents

对于所有其他 DynamoDB 指标,聚合粒度为五分钟。

并非所有的统计数据,如Average或者总计,适用于每个指标。不过,所有这些值均可通过 Amazon DynamoDB 控制台获得,也可通过使用 CloudWatch 控制台获得。Amazon CLI,或者Amazon所有指标的 SDK。在下表中,每个度量都有一个适用于该度量的有效统计信息列表。

指标 描述
AccountMaxReads

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

单位:Count

有效统计数据:S

  • Maximum— 账户可以使用的最大读取容量单位数。

AccountMaxTableLevelReads

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

单位:Count

有效统计数据:S

  • Maximum— 账户的表或全局二级索引可以使用的最大读取容量单位数。

AccountMaxTableLevelWrites

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

单位:Count

有效统计数据:S

  • Maximum— 账户的表或全局二级索引可以使用的最大写入容量单位数。

AccountMaxWrites

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

单位:Count

有效统计数据:S

  • Maximum— 账户可以使用的最大写入容量单位数。

AccountProvisionedReadCapacityUtilization

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

单位:Percent

有效统计数据:S

  • Maximum— 账户所使用的预置读取容量单位的最大百分比。

  • Minimum— 账户所使用的预置读取容量单位的最小百分比。

  • Average— 账户所使用的预置读取容量单位的平均百分比。每隔五分钟发布一次指标。因此,如果您快速调整预配置的读取容量单位,则此统计数据可能不会反映实际平均值。

AccountProvisionedWriteCapacityUtilization

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

单位:Percent

有效统计数据:S

  • Maximum— 账户所使用的预置写入容量单位的最大百分比。

  • Minimum— 账户所使用的预置写入容量单位的最小百分比。

  • Average— 账户所使用的预置写入容量单位的平均百分比。每隔五分钟发布一次指标。因此,如果您快速调整预配置的写入容量单位,则此统计数据可能不反映实际平均值。

AgeOfOldestUnreplicatedRecord

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

单位:Milliseconds

维度: TableName, DelegatedOperation

有效统计数据:S

  • Maximum.

  • Minimum.

  • Average.

ConditionalCheckFailedRequests

执行条件写入的尝试失败次数。这些区域有:PutItemUpdateItem, 和DeleteItem操作允许您提供一个逻辑条件,该条件必须计算为 true,然后才能继续操作。如果此条件计算为 false,则ConditionalCheckFailedRequests将递增 1。ConditionalCheckFailedRequests对于提供逻辑条件并且该条件的计算结果为 false 的 ParatiPartiQL 更新和删除语句,也会递增 1。

注意

失败的条件写入将导致 HTTP 400 错误(错误请求)。这些事件反映在ConditionalCheckFailedRequests量度,但不在UserErrors指标。

单位:Count

维度: TableName

有效统计数据:S

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

ConsumedChangeDataCaptureUnits

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

单位:Count

维度: TableName, DelegatedOperation

有效统计数据:S

  • Minimum

  • Maximum

  • Average

ConsumedReadCapacityUnits

在指定时间段内使用的读取容量单位数,从而使用该数,您可以跟踪使用的预置吞吐量。您可以检索表及其所有全局二级索引或特定全局二级索引的总占用读取容量。有关更多信息,请参阅读/写容量模式

这些区域有:TableName维度将返回ConsumedReadCapacityUnits,但不适用于任何全局二级索引。查看ConsumedReadCapacityUnits对于全局二级索引,您必须指定TableNameGlobalSecondaryIndex

注意

使用Sum统计信息来计算消耗的吞吐量。例如,获取Sum值,并将值除以每分钟秒数 (60) 来计算每分钟秒数。ConsumedReadCapacityUnits(确认此平均值不会突出这一分钟内出现的任何大而短暂的读取活动峰值)。您可以将计算值与提供 DynamoDB 的预配置吞吐量值进行比较。

单位:Count

维度: TableName, GlobalSecondaryIndexName

有效统计数据:S

  • Minimum— 对表或索引的任何单个请求所使用的最小读取容量单位数。

  • Maximum— 对表或索引的任何单个请求所使用的最大读取容量单位数。

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

    注意

    这些区域有:Average值受非活动期间的影响,其中样本值将为零。

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

  • SampleCount— 对 DynamoDB 的读取请求数(即使未使用读取容量)。

    注意

    这些区域有:SampleCount值受非活动期间的影响,其中样本值将为零。

ConsumedWriteCapacityUnits

在指定时间段内使用的写入容量单位数,因此您可以跟踪使用的预置吞吐量。您可以检索表及其所有全局二级索引或特定全局二级索引的占用总写入容量。有关更多信息,请参阅读/写容量模式

这些区域有:TableName维度将返回ConsumedWriteCapacityUnits,但不适用于任何全局二级索引。查看ConsumedWriteCapacityUnits对于全局二级索引,您必须指定TableNameGlobalSecondaryIndex

注意

使用Sum统计信息来计算消耗的吞吐量。例如,获取Sum值,并将值除以每分钟秒数 (60) 来计算每分钟秒数。ConsumedWriteCapacityUnits每秒(确认此平均值不会突出这一分钟内出现的任何大而短暂的写入活动峰值)。您可以将计算值与提供 DynamoDB 的预配置吞吐量值进行比较。

单位:Count

维度: TableName, GlobalSecondaryIndexName

有效统计数据:S

  • Minimum— 对表或索引的任何单个请求所使用的最小写入容量单位数。

  • Maximum— 对表或索引的任何单个请求所使用的最大写入容量单位数。

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

    注意

    这些区域有:Average值受非活动期间的影响,其中样本值将为零。

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

  • SampleCount— 对 DynamoDB 的写入请求数(即使未使用写入容量)。

    注意

    这些区域有:SampleCount值受非活动期间的影响,其中样本值将为零。

MaxProvisionedTableReadCapacityUtilization

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

单位:Percent

有效统计数据:S

  • Maximum—:账户的最高预置读取表所使用的预置读取容量单位的最大百分比。

  • Minimum— 账户的最高预置读取表所使用的预置读取容量单位的最小百分比。

  • Average— 账户的最高预置读取表所使用的预置读取容量单位的平均百分比。每隔五分钟发布一次指标。因此,如果您快速调整预配置的读取容量单位,则此统计数据可能不会反映实际平均值。

MaxProvisionedTableWriteCapacityUtilization

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

单位:Percent

有效统计数据:S

  • Maximum— 账户的最高预置写入表或全局二级索引所使用的预置写入容量单位的最大百分比。

  • Minimum— 账户的最高预置写入表或全局二级索引所使用的预置写入容量单位的最小百分比。

  • Average— 账户的最高预置写入表或全局二级索引所使用的预置写入容量单位的平均百分比。每隔五分钟发布一次指标。因此,如果您快速调整预配置的写入容量单位,则此统计数据可能不反映实际平均值。

OnlineIndexConsumedWriteCapacity

向表添加新的全局二级索引时所使用的写入容量单位数。如果索引的写入容量太低,回填阶段的传入写入活动可能会受到限制。这会增加创建索引所需要的时间。在构建索引时,您应监视此统计信息,以确定索引的写入容量是否未充分配置。

您可以使用UpdateTable操作,即使索引仍在构建中也是如此。

这些区域有:ConsumedWriteCapacityUnits度量不包括索引创建过程中占用的写入吞吐量。

单位:Count

维度: TableName, GlobalSecondaryIndexName

有效统计数据:S

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

OnlineIndexPercentageProgress

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

单位:Count

维度: TableName, GlobalSecondaryIndexName

有效统计数据:S

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

OnlineIndexThrottleEvents

向表中添加新的全局二级索引时发生的写入限制事件数。这些事件表明索引创建需要更长的时间才能完成,因为传入的写入活动超出了索引的预配置写入吞吐量。

您可以使用UpdateTable操作,即使索引仍在构建中也是如此。

这些区域有:WriteThrottleEvents度量不包括索引创建期间发生的任何限制事件。

单位:Count

维度: TableName, GlobalSecondaryIndexName

有效统计数据:S

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

PendingReplicationCount

(此度量适用于 DynamoDB 全局表。) 写入一个副本表但尚未写入全局表中另一个复制副本的项目更新数。

单位:Count

维度: TableName, ReceivingRegion

有效统计数据:S

  • Average

  • Sample Count

  • Sum

ProvisionedReadCapacityUnits

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

这些区域有:TableName维度将返回ProvisionedReadCapacityUnits,但不适用于任何全局二级索引。查看ProvisionedReadCapacityUnits对于全局二级索引,您必须指定TableNameGlobalSecondaryIndex

单位:Count

维度: TableName, GlobalSecondaryIndexName

有效统计数据:S

  • Minimum— 预置读取容量的最低设置。如果您使用UpdateTable来增加读取容量,则此度量显示预配置的ReadCapacityUnits在此期间。

  • Maximum— 预置读取容量的最高设置。如果您使用UpdateTable来减少读取容量,则此衡量指标显示预配置的ReadCapacityUnits在此期间。

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

ProvisionedWriteCapacityUnits

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

这些区域有:TableName维度将返回ProvisionedWriteCapacityUnits,但不适用于任何全局二级索引。查看ProvisionedWriteCapacityUnits对于全局二级索引,您必须指定TableNameGlobalSecondaryIndex

单位:Count

维度: TableName, GlobalSecondaryIndexName

有效统计数据:S

  • Minimum— 预配置写入容量的最低设置。如果您使用UpdateTable来增加写入容量,则此度量显示预配置的WriteCapacityUnits在此期间。

  • Maximum— 预配置写入容量的最高设置。如果您使用UpdateTable来减少写入容量,则此度量显示预配置的WriteCapacityUnits在此期间。

  • Average— 预配置的平均写入容量。这些区域有:ProvisionedWriteCapacityUnits指标每五分钟发布一次。因此,如果您快速调整预配置的写入容量单位,则此统计数据可能不反映实际平均值。

ReadThrottleEvents

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

单个请求可能会导致多个事件。例如:BatchGetItem读取 10 个项目被处理为 10GetItem事件. 对于每个事件,ReadThrottleEvents如果该事件受到限制,则递增 1。这些区域有:ThrottledRequests整个指标BatchGetItem不会递增,除非所有 10 个GetItem事件将被阻止。

这些区域有:TableName维度将返回ReadThrottleEvents,但不适用于任何全局二级索引。查看ReadThrottleEvents对于全局二级索引,您必须指定TableNameGlobalSecondaryIndex

单位:Count

维度: TableName, GlobalSecondaryIndexName

有效统计数据:S

  • SampleCount

  • Sum

ReplicationLatency

(此度量适用于 DynamoDB 全局表。) 一个副本表的 DynamoDB 流中出现的更新项目与全局表中另一个复制副本中显示的项目之间的经过时间。

单位:Milliseconds

维度: TableName, ReceivingRegion

有效统计数据:S

  • Average

  • Minimum

  • Maximum

ReturnedBytes

返回的字节数GetRecords操作(Amazon DynamoDB 流)。

单位:Bytes

维度: Operation, StreamLabel, TableName

有效统计数据:S

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

ReturnedItemCount

返回的项目数QueryScan或者ExecuteStatement(选择)操作。

项目数返回不必与已评估的项目数相同。例如,假设您请求一个Scan的表或具有 100 个项目的索引上,但指定了FilterExpression从而缩小了结果, 仅返回了 15 件物品. 在此情况下,来自Scan将包含ScanCount的数值为 100 个,一个Count的 15 个退货商品。

单位:Count

维度: TableName, Operation

有效统计数据:S

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

ReturnedRecordsCount

返回的流记录数GetRecords操作(Amazon DynamoDB 流)。

单位:Count

维度: Operation, StreamLabel, TableName

有效统计数据:S

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

SuccessfulRequestLatency

指定时间段内向 DynamoDB 或 Amazon DynamoDB 流的成功请求。SuccessfulRequestLatency可提供两种不同类型的信息:

  • 成功请求的所用时间 (MinimumMaximumSum,或者Average)。

  • 成功的请求数 (SampleCount)。

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

单位:Milliseconds

维度: TableName, Operation

有效统计数据:S

  • Minimum

  • Maximum

  • Average

  • SampleCount

SystemErrors

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

单位:Count

维度: TableName, Operation

有效统计数据:S

  • Sum

  • SampleCount

TimeToLiveDeletedItemCount

指定时间段内按生存时间 (TTL) 删除的项目数。此衡量指标可帮助您监控表上的 TTL 删除率。

单位:Count

维度:TableName

有效统计数据:S

  • Sum

ThrottledPutRecordCount

由于 Kinesis 数据流容量不足而无法复制到 Kinesis 数据流的记录数。

单位:Count

维度:TableName 称、委托分配

有效统计数据:S

  • Minimum

  • Maximum

  • Average

  • SampleCount

ThrottledRequests

超出资源(如表或索引)预配置吞吐量限制的 DynamoDB 请求。

ThrottledRequests如果请求中的任何事件超过了预置的吞吐量限制,会增加 1。例如,如果使用全局二级索引更新表中的项目,则存在多个事件 — 对表的写入和对每个索引的写入。如果这些事件中的一个或多个受到限制,则ThrottledRequests将递增 1。

注意

在批处理请求 (BatchGetItem或者BatchWriteItem),ThrottledRequests只有在每个请求将受到限制。

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

  • ReadThrottleEvents— 对于一个限制GetItem事件BatchGetItem

  • WriteThrottleEvents— 对于一个限制PutItem或者DeleteItem事件BatchWriteItem

要深入了解哪个事件正在限制请求,请比较ThrottledRequests使用ReadThrottleEventsWriteThrottleEvents作为表及其索引。

注意

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

单位:Count

维度: TableName, Operation

有效统计数据:S

  • Sum

  • SampleCount

TransactionConflict

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

单位:Count

维度: TableName

有效统计数据:S

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

    注意

    如果在调用TransactWriteItems或者TransactGetItems被拒绝,Sum为每个项目级别递增 1PutUpdateDelete,或者Get请求.

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

    注意

    如果在调用TransactWriteItems或者TransactGetItems被拒绝,SampleCount只递增 1。

  • Min— 在调用中被拒绝的项目级别请求的最小数量TransactWriteItemsTransactGetItemsPutItemUpdateItem,或者DeleteItem

  • Max— 在调用中被拒绝的项目级别请求的最大数量TransactWriteItemsTransactGetItemsPutItemUpdateItem,或者DeleteItem

  • Average— 调用中被拒绝的项目级别请求的平均数TransactWriteItemsTransactGetItemsPutItemUpdateItem,或者DeleteItem

UserErrors

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

所有这些事件都反映在UserErrors指标,但以下内容除外:

  • ProvisionedThroughputExceededException— 请参阅ThrottledRequests指标。

  • ConditionalCheckFailedException— 请参阅ConditionalCheckFailedRequests指标。

UserErrors表示 DynamoDB Amazon DynamoDB 当前Amazon地区和当前Amazonaccount.

单位:Count

有效统计数据:S

  • Sum

  • SampleCount

WriteThrottleEvents

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

单个请求可能会导致多个事件。例如:PutItem请求将导致四个事件(表写入和三个索引中的每个写入)。对于每个事件,WriteThrottleEvents度量将增加 1,如果该事件受到限制。对于单一PutItem请求,如果任何事件受到限制,ThrottledRequests也递增 1。适用于BatchWriteItemThrottledRequests整个指标BatchWriteItem不会递增,除非所有单个PutItem或者DeleteItem事件将被阻止。

这些区域有:TableName维度将返回WriteThrottleEvents,但不适用于任何全局二级索引。查看WriteThrottleEvents对于全局二级索引,您必须指定TableNameGlobalSecondaryIndex

单位:Count

维度: TableName, GlobalSecondaryIndexName

有效统计数据:S

  • Sum

  • SampleCount

DynamoDB 指标的维度

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

维度 描述
DelegatedOperation

该维度将数据限定为 DynamoDB 代表您执行的操作。捕获以下操作:

  • 更改 Kinesis Data Streams 的数据捕获。

GlobalSecondaryIndexName

该维度将数据限定为表上的全局二级索引。如果您要指定 GlobalSecondaryIndexName,还必须指定 TableName

Operation

该维度将数据限定为以下 DynamoDB 操作之一:

  • PutItem

  • DeleteItem

  • UpdateItem

  • GetItem

  • BatchGetItem

  • Scan

  • Query

  • BatchWriteItem

  • TransactWriteItems

  • TransactGetItems

  • ExecuteTransaction

  • BatchExecuteStatement

  • ExecuteStatement

此外,您还可以将数据限制为以下 Amazon DynamoDB 流操作:

  • GetRecords

OperationType

该维度将数据限定为以下操作类型之一:

  • Read

  • Write

此维度被发射为ExecuteTransactionBatchExecuteStatement请求。

Verb

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

  • 插入:PartiQLInsert

  • Select:PartiQLSelect

  • 更新:PartiQLUpdate

  • 删除:PartiQLDelete

此维度是针对ExecuteStatementoperation.

ReceivingRegion

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

StreamLabel

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

TableName

该维度将数据限定为特定表。该值可以是当前区域中的任意表名称,而当前Amazonaccount.