DynamoDB 專用 CloudWatch Contributor Insights:運作方式 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DynamoDB 專用 CloudWatch Contributor Insights:運作方式

Amazon DynamoDB 與 CloudWatch Contributor Insights 整合,以提供資料表或全域次要索引中最常存取和限流項目的相關資訊。DynamoDB 透過 CloudWatch Contributor Insights 規則報告報告資料的圖表,將此資訊提供給您。

DynamoDB 專用 CloudWatch Contributor Insights 的設計不會影響 DynamoDB 資料表的效能。

如需 CloudWatch Contributor Insights 的詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的使用 Contributor Insights 分析高基數資料

以下章節說明 DynamoDB 專用 CloudWatch Contributor Insights 核心概念及行為。

DynamoDB 的 CloudWatch 貢獻者洞見模式

適用於 DynamoDB 的 CloudWatch Contributor Insights 提供兩種不同的模式,以滿足不同的監控需求。

調節鍵模式

此模式僅著重於限流請求,方法是在限流發生時處理事件。它提供效能問題的洞見,無需額外負荷追蹤所有存取模式。在此模式中,DynamoDB 只會追蹤:

  • 限流最多的項目 — 遇到限流最多事件的項目

此模式的理想時機如下:

  • 您的主要考量是識別和解決限流問題

  • 您想要持續啟用 Contributor Insights,以進行即時限流偵測

  • 您希望採用成本最佳化方法來監控限流問題

注意

限流金鑰模式只會在限流發生時處理事件,使其在持續監控方面具有成本效益。這種有針對性的方法可讓您將功能永久啟用,並將成本影響降至最低,同時仍能在問題發生時立即提供限流的可見性。

如果您的資料表未遇到限流,則不會在 Contributor Insights 圖形中看到任何資料,這表示效能良好。偵測到調節時,產生的圖形可協助您識別導致效能問題的特定存取模式。此資訊可協助您實作策略來解決不均勻的存取模式。

如需全方位監控策略,您可以將這些限流洞見與其他 CloudWatch 指標整合,以建立統一儀表板,將限流事件與整體資料表效能建立關聯。

存取和限流金鑰模式

此模式提供存取項目和限流項目的完整監控。在此模式中,DynamoDB 會追蹤:

  • 最常存取的項目 — 消耗最多讀取和寫入容量的項目

  • 限流最多的項目 — 遇到限流最多事件的項目

當您需要完全了解資料表的存取模式,並想要同時了解高流量項目和限流問題時,此模式是理想的選擇。

在模式之間切換

您可以隨時使用 DynamoDB 主控台 AWS CLI或 APIs 切換模式。當您切換模式時:

  • 現有的 CloudWatch 規則會更新以符合新模式

  • 調節的金鑰 CloudWatch 規則會保持不變,並維持您用於調節指標的持續歷史資料:

    • 當您從限流金鑰模式切換到存取和限流金鑰模式時,會保留現有的限流金鑰規則,並建立新的存取金鑰規則

    • 當您從存取和限流金鑰模式切換到限流金鑰模式時,只會保留限流金鑰規則,並移除存取的金鑰規則

  • 立即調整帳單以反映新模式的事件處理

DynamoDB 專用 CloudWatch Contributor Insights 規則

當您在資料表或全域次要索引上啟用 DynamoDB 的 CloudWatch Contributor Insights 時,DynamoDB 會根據選取的模式代表您建立規則

注意

當您在 DynamoDB 資料表上啟用 Contributor Insights 時,會受到 Contributor Insights 規則限制。如需詳細資訊,請參閱 CloudWatch 服務配額

存取和限流金鑰模式的規則

存取和限流金鑰模式中,DynamoDB 會建立下列規則:

  • 最常存取項目 (分割區索引鍵):在您的資料表或全域次要索引中辨識最常存取項目的分割區索引鍵。

    CloudWatch 規則名稱格式:DynamoDBContributorInsights-PKC-[resource_name]-[creationtimestamp]

  • 最常調節項目 (分割區索引鍵):在您的資料表或全域次要索引中辨識最常調節項目的分割區索引鍵。

    CloudWatch 規則名稱格式:DynamoDBContributorInsights-PKT-[resource_name]-[creationtimestamp]

如果您的資料表或全域次要索引有排序索引鍵,DynamoDB 也會建立以下排序索引鍵專用的規則:

  • 最常存取項目 (分割區和排序索引鍵):在您的資料表或全域次要索引中辨識最常存取項目的分割區和排序索引鍵。

    CloudWatch 規則名稱格式:DynamoDBContributorInsights-SKC-[resource_name]-[creationtimestamp]

  • 最常調節項目 (分割區和排序索引鍵):在您的資料表或全域次要索引中辨識最常調節項目的分割區和排序索引鍵。

    CloudWatch 規則名稱格式:DynamoDBContributorInsights-SKT-[resource_name]-[creationtimestamp]

限流金鑰模式的規則

限流金鑰模式中,DynamoDB 只會建立限流相關規則:

  • 最常調節項目 (分割區索引鍵):在您的資料表或全域次要索引中辨識最常調節項目的分割區索引鍵。

    CloudWatch 規則名稱格式:DynamoDBContributorInsights-PKT-[resource_name]-[creationtimestamp]

如果您的資料表或全域次要索引具有排序索引鍵,DynamoDB 也會建立:

  • 最常調節項目 (分割區和排序索引鍵):在您的資料表或全域次要索引中辨識最常調節項目的分割區和排序索引鍵。

    CloudWatch 規則名稱格式:DynamoDBContributorInsights-SKT-[resource_name]-[creationtimestamp]

這種重點方法可減少作用中規則的數量,並減少處理的事件量,以更好地診斷限流事件。

注意
  • 當您使用 CloudWatch 主控台或 APIs 來檢視 DynamoDB 的 CloudWatch Contributor Insights 時,您只會看到與所選模式對應的規則。

  • 您無法使用 CloudWatch 主控台或 API 直接修改或刪除 DynamoDB 專用 CloudWatch Contributor Insights 所建立的規則。在資料表或全域次要索引中,停用 DynamoDB 專用 CloudWatch Contributor Insights,系統就會自動刪除針對該資料表或全域次要索引建立的規則。

  • 在搭配 DynamoDB 建立的 CloudWatch Contributor Insights 規則使用 GetInsightRuleReport 操作時,只有 MaxContributorValueMaximum 會傳回有用的統計數字。此清單中的其他統計數字不會傳回有意義的值。

  • 適用於 DynamoDB 的 CloudWatch Contributor Insights 有 25 個參與者的限制。請求超過 25 個參與者會傳回錯誤。

您可以使用 DynamoDB 專用 CloudWatch Contributor Insights 規則建立 CloudWatch 警示。這可讓您在任何項目超過或達到 ConsumedThroughputUnitsThrottleCount 的特定門檻時收到通知。如需詳細資訊,請參閱在 Contributor Insights 指標資料上設定警示

了解 DynamoDB 專用 CloudWatch Contributor Insights 圖表

DynamoDB 專用 CloudWatch Contributor Insights 會根據選取的模式,在 DynamoDB 和 CloudWatch 主控台上顯示不同類型的圖形。

依模式的圖形可用性

顯示的圖形取決於您選取的 Contributor Insights 模式。

  • 已存取和限流金鑰模式會顯示最多存取的項目最多限流的項目圖表

  • 限流索引鍵模式只會顯示限流最多的項目圖表

最常存取項目

此圖形僅適用於存取和調節的金鑰模式。使用此圖表在資料表或全域次要索引中辨識最常存取的項目。圖表的 Y 軸代表 ConsumedThroughputUnits,而 X 軸代表時間。每個主要 N 金鑰都會以其各自的顏色顯示,而且在 X 軸下方也有圖例說明。

DynamoDB 會使用 ConsumedThroughputUnits 評量金鑰的存取頻率,且此評量數值結合讀取和寫入流量。ConsumedThroughputUnits 的定義如下:

  • 佈建:(3 x 已消耗寫入容量單位) + 已消耗讀取容量單位

  • 隨需:(3 x 寫入請求單位) + 讀取請求單位

在 DynamoDB 主控台上,圖表中的每個資料點都代表 1 分鐘內 ConsumedThroughputUnits 的最大值。例如,圖表值 180,000 ConsumedThroughputUnits 代表該項目持續存取的頻率為在 1 分鐘內,每 60 秒的每個項目最大輸送量 1,000 個寫入要求單位或 3,000 個讀取要求單位 (3,000 x 60 秒)。也就是說,圖表中呈現的數值代表每 1 分鐘內最高的每分鐘流量。您可以在 CloudWatch 主控台上變更 ConsumedThroughputUnits 指標的時間精細程度 (例如:檢視 5 分鐘指標而不是 1 分鐘)。

如果您看到多條緊密聚集的線,沒有任何明顯的異常,就表示您於特定時期內部同項目的工作負載相對來說還算平衡。如果圖表中出現孤立點而不是相連的線,就表示有一個項目僅於短時間內經常存取。

如果您的資料表或全域次要索引排序索引鍵,DynamoDB 就會建立兩個圖表:一個是最常存取的分割區索引鍵,另一個則是最常存取的分割區 + 排序索引鍵配對。您可以在分割區索引鍵 (僅限圖) 中檢視分割區索引鍵層級的流量。您可以在分割區 + 排序索引鍵圖表中檢視項目層級的流量。

最常調節項目

此圖形在兩種模式中都可用。使用此圖表在資料表或全域次要索引中辨識最常調節的項目。圖表的 Y 軸代表 ThrottleCount,而 X 軸代表時間。每個前 N 個鍵會以自己的顏色顯示,並在 x 軸下方顯示圖例。

DynamoDB 會使用 ThrottleCount 來評估調節頻率,也就是 ProvisionedThroughputExceededExceptionThrottlingExceptionRequestLimitExceeded 錯誤計數。

不會測量因全域次要索引的寫入容量不足而造成的寫入調節。您可以使用全域次要索引的最常存取項目圖形,識別可能會造成寫入調節的不平衡存取模式。如需詳細資訊,請參閱全域次要索引的佈建輸送量考量

在 DynamoDB 主控台上,圖形中的每個資料點代表 1 分鐘內的調節事件計數。

如果此圖表沒有顯示任何資料,就表示您的要求沒有受到調節。如果圖表中出現孤立點而不是相連的線,表示有一個項目僅於短時間內經常調節。

如果您的資料表或全域次要索引有排序索引鍵,DynamoDB 就會建立兩個圖表:一個是最常調節的分割區索引鍵,另一個則是最常調節的分割區 + 排序索引鍵配對。您可以查看分割區索引區中的分割區索引區層級調節計數 (僅圖表),以及分割區 + 排序索引鍵圖表中的項目層級調節計數。

注意

限流索引鍵模式中,這是您將看到的唯一圖形類型。這些圖表中缺少資料表示資料表效能良好,不會發生調節。

報告範例

下列範例顯示在存取和調節金鑰模式中,同時具有分割區索引鍵和排序索引鍵的資料表所產生的報告。在限流金鑰模式中,您只會看到此報告的限流相關部分。

4 種不同的 Contributor Insights 報告,顯示最常存取項目和最常調節項目。

與其他 DynamoDB 功能互動

下列各節說明 DynamoDB 專用 CloudWatch Contributor Insights 如何運作,以及如何與 DynamoDB 中的數種其他功能互動。除非另有說明,否則這些行為適用於這兩種模式。

全域資料表

DynamoDB 專用 CloudWatch Contributor Insights 監控全域資料表複本作為不同的資料表。一個 AWS 區域中複本的 Contributor Insights 圖形可能不會顯示與另一個區域相同的模式。這是因為寫入資料於所有全域資料表中的複本複製,但每個複本都可做為區域性讀取流量。

每個複本都可以獨立設定不同的 Contributor Insights 模式。例如,您可以在主要區域中使用存取和限流金鑰模式進行全面監控,同時在次要區域中使用限流金鑰模式來維持效能問題的可見性。

DynamoDB Accelerator (DAX)

DynamoDB 專用 CloudWatch Contributor Insights 不會顯示 DAX 快取回應。它只會顯示存取資料表或全域次要索引的回應。

注意

DynamoDB CloudWatch Contributor Insights 不支援 PartiQL 請求。

靜態加密

DynamoDB 專用 CloudWatch Contributor Insights 不會影響 DynamoDB 中的加密運作方式。CloudWatch 中發佈的主索引鍵資料會用 AWS 擁有的金鑰加密。不過,DynamoDB 也支援 AWS 受管金鑰 和客戶受管金鑰。

DynamoDB 專用 CloudWatch Contributor Insights 會顯示經常存取和限流項目的分割區索引鍵和排序索引鍵 (如適用)。雖然 CloudWatch Contributor Insights 可與加密的 DynamoDB 資料表搭配使用,但請務必注意,它使用自己的 Amazon 擁有的加密內容,這與資料表設定的加密不同。

如果您 DynamoDB 資料表的主金鑰包含敏感資訊,且您組織的安全政策需要完全控制加密程序,則啟用 CloudWatch Contributor Insights 可能不適合。

精細定義存取控制

DynamoDB 專用 CloudWatch Contributor Insights 與有精細定義存取控制 (FGAC) 的資料表功能相同。也就是說,任何有 CloudWatch 相關許可的使用者都可以在 CloudWatch Contributor Insights 圖表中檢視 FGAC 保護的主索引鍵。

如果資料表的主索引鍵包含您不希望發佈至 CloudWatch 的 FGAC 保護資料,則不應為該資料表啟用適用於 DynamoDB 的 CloudWatch Contributor Insights。

存取控制

您可以透過限制 DynamoDB 控制平面許可和 CloudWatch 資料平面許可,使用 AWS Identity and Access Management (IAM) 控制對 DynamoDB 的 CloudWatch Contributor Insights 的存取。如需詳細資訊,請參閱搭配 DynamoDB 專用 CloudWatch Contributor Insights 使用 IAM

DynamoDB 專用 CloudWatch Contributor Insights 帳單

DynamoDB 專用 CloudWatch Contributor Insights 費用會出現在您每月帳單的 CloudWatch 區段中。這些費用是根據已處理的 DynamoDB 事件數量,以及選取的模式來計算。

依模式計費

這兩種 Contributor Insights 模式具有不同的計費特性。

  • 存取和限流金鑰模式計費 - 在此模式中,透過資料平面操作寫入或讀取的每個項目都代表一個事件,無論請求是否成功或受到限流。如果資料表或全域次要索引包含排序索引鍵,則讀取或寫入的每個項目都代表兩個事件。這是因為 DynamoDB 識別來自不同時間序列的首位參與者:一個僅用於分割區,另一個用於分割區索引鍵和排序索引鍵對。

  • 限流金鑰模式計費 - 在此模式中,只有限流請求會產生計費事件。只有在請求導致 ProvisionedThroughputExceededException、 或 RequestLimitExceeded錯誤時ThrottlingException,才會產生事件。如果資料表或全域次要索引包含排序索引鍵,則每個限流項目代表兩個事件 (分割區索引鍵追蹤和分割區 + 排序索引鍵追蹤)。

計費範例

例如,假設您的應用程式執行下列 DynamoDB 操作:GetItemPutItemBatchWriteItem放置五個項目的 。同時假設PutItem操作受到調節,但所有其他操作都成功。

  • 存取和限流金鑰模式

    • 如果您的資料表或全域次要索引只有分割區索引鍵,則會產生 7 個事件 (1 個 GetItem、1 個 PutItem 和 5 個 BatchWriteItem)。

    • 如果您的資料表或全域次要索引有分割區索引鍵和排序索引鍵,則會產生 14 個事件 (2 個 GetItem、2 個 PutItem 和 10 個 BatchWriteItem)。

  • 調節金鑰模式

    • 如果您的資料表或全域次要索引只有分割區索引鍵,則會產生 1 個事件 (僅適用於調節的 PutItem)。

    • 如果您的資料表或全域次要索引具有分割區索引鍵和排序索引鍵,則會產生 2 個事件 (調節的 為 2PutItem)。

    成功的 GetItemBatchWriteItem操作在限流金鑰模式中不會產生任何事件。

常見計費因素

無論Query傳回的項目模式或數量為何,操作一律會產生 1 個事件。

與其他 DynamoDB 功能不同,DynamoDB 專用 CloudWatch Contributor Insights 計費不會隨下列條件變化:

  • 容量模式 (佈建與隨需)

  • 是否執行讀取或寫入請求

  • 讀取或寫入項目的大小 (KB)