DynamoDB 指标与维度 - Amazon DynamoDB

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

DynamoDB 指标与维度

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

要查看指标(控制台)

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

  1. 打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

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

    注意

    您还可以选择 Usage(使用率)命名空间来查看 DynamoDB 使用率指标。有关使用率指标的更多信息,请参阅 AWS 使用率指标。

  3. 选择 DynamoDB 命名空间。

查看指标 (CLI)
  • 在命令提示符处输入下面的命令:

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

查看 指标和维度

CloudWatch 显示了 DynamoDB 的以下指标:

DynamoDB 指标

注意

Amazon 每 CloudWatch 隔一分钟汇总这些指标:

  • ConditionalCheckFailedRequests

  • ConsumedReadCapacityUnits

  • ConsumedWriteCapacityUnits

  • ReadThrottleEvents

  • ReturnedBytes

  • ReturnedItemCount

  • ReturnedRecordsCount

  • SuccessfulRequestLatency

  • SystemErrors

  • TimeToLiveDeletedItemCount

  • ThrottledRequests

  • TransactionConflict

  • UserErrors

  • WriteThrottleEvents

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

并非所有统计数据,如 AverageSum,都适用于每个指标。但是,所有这些值都可通过 Amazon DynamoDB 控制台获得,或者使用 CloudWatch 控制台 AWS CLI或软件开发工具包获取所有 AWS 指标。

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

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

ConsumedReadCapacityUnits

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

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

注意

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

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

单位:Count

维度:TableName, GlobalSecondaryIndexName

有效统计数据:

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

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

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

    注意

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

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

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

    注意

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

ConsumedWriteCapacityUnits

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

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

ProvisionedReadCapacityUnits

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

单位:Count

维度:TableName, GlobalSecondaryIndexName

有效统计数据:

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

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

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

ProvisionedWriteCapacityUnits

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

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表示当前区域和当前账户的 DynamoDB 或 Amazon DynamoDB Streams 请求的 HTTP 400 错误汇总。 AWS AWS

单位:Count

有效统计数据:

  • Sum

  • SampleCount

WriteThrottleEvents

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

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

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

单位:Count

维度:TableName, GlobalSecondaryIndexName

有效统计数据:

  • Sum

  • SampleCount

使用情况指标

中的使用情况指标 CloudWatch 允许您通过以下方式主动管理使用情况:在 CloudWatch 控制台中直观显示指标、创建自定义仪表板、通过 CloudWatch 异常检测来检测活动变化,以及配置在使用量接近阈值时提醒您的警报。

DynamoDB 还将这些使用率指标与 Service Quotas 集成。您可以使用 CloudWatch 来管理账户对服务配额的使用。有关更多信息,请参阅 可视化 Service Quotas 并设置警报

AccountProvisionedWriteCapacityUnits

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

单位:Count

有效统计数据:

  • Minimum – 一段时间内预置的最小写入容量单位数。

  • Maximum – 一段时间内预置的最大写入容量单位数。

  • Average – 一段时间内预置的平均写入容量单位数。

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

AccountProvisionedReadCapacityUnits

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

单位:Count

有效统计数据:

  • Minimum – 一段时间内预置的最小读取容量单位数。

  • Maximum – 一段时间内预置的最大读取容量单位数。

  • Average – 一段时间内预置的平均读取容量单位数。

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

TableCount

账户的活动表数。

单位:Count

有效统计数据:

  • Minimum – 一段时间内的最小表数。

  • Maximum – 一段时间内的最大表数。

  • Average – 一段时间内的平均表数。

了解 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

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

StreamLabel

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

TableName

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