CloudWatch 贡献者对 DynamoDB 的见解:其工作原理 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

CloudWatch 贡献者对 DynamoDB 的见解:其工作原理

Amazon DynamoDB 与 A CloudWatch mazon Contributor Insights 集成,可提供有关表或全局二级索引中访问次数最多的项目和受限项目的信息。DynamoDB CloudWatch 通过 “贡献者见解” 规则报告和报告数据图表向您提供这些信息。

有关 CloudWatch 贡献者见解的更多信息,请参阅 A ma CloudWatch zon 用户指南中的使用贡献者见解分析高基数数据

以下各节介绍了 DynamoDB CloudWatch 贡献者见解的核心概念和行为。

CloudWatch 贡献者对 DynamoDB 规则的见解

当您在表或全局二级索引上启用 DynamoDB 的 “ CloudWatch 贡献者见解” 时,DynamoDB 会代表您创建以下规则:

  • 最常访问的项目(分区键) — 标识表或全局二级索引中最常访问的项目的分区键。

    CloudWatch 规则名称格式:DynamoDBContributorInsights-PKC-[resource_name]-[creationtimestamp]

  • 最受限制的项目(分区键) — 标识表或全局二级索引中最受限制的项目的分区键。

    CloudWatch 规则名称格式:DynamoDBContributorInsights-PKT-[resource_name]-[creationtimestamp]

注意

当你在 DynamoDB 表格上启用 “贡献者见解” 时,你仍然受贡献者见解规则的限制。有关更多信息,请参阅CloudWatch 服务限额

如果表或全局二级索引具有排序键,DynamoDB 还将创建特定于排序键的以下规则:

  • 最常访问的键(分区键和排序键) — 标识表或全局二级索引中最常访问的项目的分区键和排序键。

    CloudWatch 规则名称格式:DynamoDBContributorInsights-SKC-[resource_name]-[creationtimestamp]

  • 最受限制的键(分区键和排序键) — 标识表或全局二级索引中最受限制的项目的分区键和排序键。

    CloudWatch 规则名称格式:DynamoDBContributorInsights-SKT-[resource_name]-[creationtimestamp]

注意
  • 您不能使用 CloudWatch 控制台或 API 直接修改或删除 DynamoDB 的 Contributor Ins CloudWatch ights 创建的规则。在表或 CloudWatch全局二级索引上禁用 DynamoDB 的 Contributor Insights 会自动删除为该表或全局二级索引创建的规则。

  • 当您将该GetInsightRuleReport操作与 DynamoDB 创建的 “ CloudWatch贡献者见解” 规则一起使用时,MaxContributorValueMaximum返回有用的统计数据。此列表中的其他统计信息不返回有意义的值。

  • CloudWatch DynamoDB 的 “贡献者见解” 的贡献者人数上限为 25 个。请求超过 25 个贡献者将返回错误。

您可以使用 DynamoDB 的 CloudWatch 贡献者见解规则创建 CloudWatch 警报。如果任何项目超过或达到特定的 ConsumedThroughputUnitsThrottleCount 阈值,您将收到通知。有关更多信息,请参见为 Contributor Insights 指标数据设置告警

了解 DynamoDB 图表的 CloudWatch 贡献者见解

CloudWatch DynamoDB 的 “贡献者见解” 在 DynamoDB CloudWatch 和主机上均显示两种类型的图表访问量最大的项目和最受限制的项目。

最常访问的项目

使用此图可以确定表或全局二级索引中最常访问的项目。此图的 y 轴显示 ConsumedThroughputUnits,x 轴显示时间。前 N 个键中的每个键都以自己的颜色显示,图例显示在 x 轴下方。

DynamoDB 通过使用 ConsumedThroughputUnits 测量键访问频率,可以测量读写组合流量。ConsumedThroughputUnits 定义如下:

  • 预置 — (3 倍占用的写入容量单位)+ 占用的读取容量单位

  • 按需 — (3 倍写入请求单位)+ 读取请求单位

在 DynamoDB 控制台中,图中的每个数据点代表一分钟内的最大 ConsumedThroughputUnits。例如,图形值 180000 ConsumedThroughputUnits 表示:在一分钟的时间段内(3000 x 60 秒)持续访问项目,60 秒内每个项目的最大吞吐为 1000 个写入请求单位或 3000 个读取请求单位。换句话说,图表值表示每个一分钟周期内的最高流量分钟。您可以在控制台上更改ConsumedThroughputUnits指标的时间粒度(例如,查看 5 分钟而不是 1 分钟的指标)。 CloudWatch

如果看到几条紧密聚集的线条而没有明显的离群值,则表明在给定的时间范围内,各个项目的工作负载相对平衡。如果在图中看到孤立的点,而不是连接的线条,则表明短时间内频繁访问项目。

如果表或全局二级索引具有排序键,DynamoDB 将创建两个图表:一个用于访问最多的分区键,另一个用于访问最多的分区键 + 排序键对。可以在仅分区键图表中查看分区键级别的流量。可以在分区 + 排序键图表中查看项目级别的流量。

最受节流的项目

使用此图可以确定表或全局二级索引中最受限制的项目。此图的 y 轴显示 ThrottleCount,x 轴显示时间。前 N 个键中的每个键都以自己的颜色显示,图例显示在 x 轴下方。

DynamoDB 使用 ThrottleCount(这是 ProvisionedThroughputExceededExceptionThrottlingExceptionRequestLimitExceeded 错误的计数)测量限制频率。

不测量全局二级索引的写入容量不足导致的写入限制。可以使用全局二级索引的最常访问的项目图表,识别导致写入限制的不平衡访问模式。有关更多信息,请参见全局二级索引的预置吞吐量注意事项

在 DynamoDB 控制台中,图中的每个数据点代表一分钟内的限制事件计数。

如果在此图中看不到任何数据,说明请求没有受到限制。如果在图表中看到孤立的点,而不是连接的线条,说明短时间内频繁限制项目。

如果表或全局二级索引具有排序键,则 DynamoDB 将创建两个图表:一个用于限制最多的分区键,另一个用于限制最多的分区键 + 排序键对。可以在仅分区键图表中看到分区键级别的限制计数,在分区键 + 排序键图表中看到项目级别的限制计数。

报告示例

以下是为同时具有分区键和排序键的表生成的报告示例。


                    4 个不同的 Contributor Insights 报告,显示最常访问的项目和最受限制的项目。

与其他 DynamoDB 功能的交互

以下各节介绍了 DynamoDB 的 “ CloudWatch 贡献者见解” 的行为方式以及如何与 DynamoDB 中的其他几个功能交互。

全局表

CloudWatch DynamoDB 的《贡献者见解》将全局表副本作为不同的表进行监控。一个 Amazon 区域中副本的 “贡献者见解” 图表可能不会显示与另一个区域相同的模式。这是因为写数据在全局表的所有副本之间复制,但每个副本都可以提供区域绑定的读取流量。

DynamoDB Accelerator (DAX)

CloudWatch DynamoDB 的 “贡献者见解” 不显示 DAX 缓存响应。只显示对访问表或全局二级索引的响应。

注意

DynamoDB CCI 不支持 PartiQL 请求。

静态加密

CloudWatch DynamoDB 的贡献者见解不会影响 DynamoDB 中加密的工作方式。中发布的主密钥数据 CloudWatch 使用加密 Amazon 拥有的密钥。但是,DynamoDB 也支持 Amazon 托管式密钥 和客户托管密钥。

CloudWatch DynamoDB 的 Contributor Insights 图表以纯文本形式显示经常访问的项目和经常被限制的项目的分区键和排序键(如果适用)。如果您需要使用 Amazon 密钥管理服务 (KMS) 来加密此表的分区密钥并使用 Amazon 托管式密钥 或客户托管密钥对密钥数据进行排序,则不应为此表启用 CloudWatch DynamoDB 的 Contributor Insights for DynamoDB。

如果您需要使用 Amazon 托管式密钥 或客户托管密钥对主密钥数据进行加密,则不应为该表启用 DynamoDB 的 “ CloudWatch 贡献者见解”。

精细访问控制

CloudWatch 对于具有精细访问控制 (FGAC) 的表,DynamoDB 的 “贡献者见解” 的功能没有什么不同。换句话说,任何拥有适当 CloudWatch 权限的用户都可以在 “贡献者见解” 图表中 CloudWatch 查看受 FGAC 保护的主键。

如果表的主键包含您不想发布到 CloudWatch的受 FGAC 保护的数据,则不应为该表启用 DynamoDB 的 “贡献者 CloudWatch 见解”。

访问控制

您可以 Amazon Identity and Access Management 使用 (IAM) 通过限制 DynamoDB 控制平面权限和数据平面权限来控制对 DynamoDB CloudWatch 贡献者见解的访问权限。 CloudWatch 有关更多信息,请参阅使用 IAM 和 DynamoDB CloudWatch 贡献者见解

CloudWatch 贡献者对 DynamoDB 账单的见解

DynamoDB CloudWatch 贡献者见解的费用显示在您的月度CloudWatch账单部分。这些费用根据处理的 DynamoDB 事件数计算。对于启用了 DynamoDB 的 Cont CloudWatch ributor Insights 的表和全局二级索引,通过数据平面操作写入或读取的每个项目都代表一个事件。

如果表或全局二级索引包含排序键,则读取或写入的每个项目代表两个事件。这是因为 DynamoDB 从不同时间序列识别最大的贡献因素:一个仅用于分区键,另一个用于分区和排序键对。

例如,假设应用程序执行以下 DynamoDB 操作:放入 5 个项目的 GetItemPutItemBatchWriteItem

  • 如果表或全局二级索引只有一个分区键,则将导致 7 个事件(对于 GetItem 为 1 个事件,对于 PutItem 为 1 个事件,对于 BatchWriteItem 为 5 个事件)。

  • 如果表或全局二级索引有一个分区和一个排序键,则将导致 14 个事件(对于 GetItem 为 2 个事件,对于 PutItem 为 2 个事件,对于 BatchWriteItem 为 10 个事件)。

  • 无论返回的项目数量多少,Query 操作始终导致 1 个事件。

与其他 DynamoDB 功能不同 CloudWatch ,DynamoDB 账单的 “贡献者见解” 不会因以下因素而有所不同:

  • 容量模式(预置与按需)

  • 执行读取请求还是写入请求

  • 读取或写入的项目大小 (KB)