

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

# 使用 Amazon CloudWatch 來監控 DynamoDB 指標
<a name="Monitoring-metrics-with-Amazon-CloudWatch"></a>

您可以使用 CloudWatch 來監控 DynamoDB；該服務會收集並處理來自 DynamoDB 的原始資料，進而將這些資料轉換為便於讀取且幾近即時的指標。這些統計數字會保留一段時間，讓您可以存取歷史資訊，以更清楚 Web 應用程式或服務的執行效能。根據預設，系統會自動將 DynamoDB 指標資料傳送至 CloudWatch。如需詳細資訊，請參閱《*Amazon CloudWatch 使用者指南*》中的[什麼是 Amazon CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)以及[指標保留](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#metrics-retention)。

**Topics**
+ [如何使用 DynamoDB 指標？](#How-do-I-use-DynamoDB-metrics)
+ [在 CloudWatch 主控台中檢視指標](#Viewing-metrics-in-CloudWatch-console)
+ [在 中檢視指標 AWS CLI](#Viewing-metrics-in-the-cli)
+ [DynamoDB 指標和維度](metrics-dimensions.md)
+ [在 DynamoDB 中建立 CloudWatch 警示](Monitoring-metrics-creating-cloudwatch-alarms.md)

## 如何使用 DynamoDB 指標？
<a name="How-do-I-use-DynamoDB-metrics"></a>

DynamoDB 回報的指標可提供能讓您以不同方式分析的資訊。下列清單顯示一些常見的指標用途。這些是協助您開始的建議，而不是完整清單。


**如何使用 DynamoDB 指標？**  

|  如何？  |  相關指標  | 
| --- | --- | 
|  如何監控資料表上的 TTL 刪除率？   |  您可以監控指定時段內的 `TimeToLiveDeletedItemCount`，以追蹤您資料表的 TTL 刪除率。如需使用 `TimeToLiveDeletedItemCount` 指標的無伺服器應用程式範例，請參閱[使用 DynamoDB 存留時間 (TTL) 搭配 AWS Lambda 和 Amazon Data Firehose 自動將項目封存至 S3](https://aws.amazon.com/blogs/database/automatically-archive-items-to-s3-using-dynamodb-time-to-live-with-aws-lambda-and-amazon-kinesis-firehose/)。  | 
|  如何判斷使用了多少佈建輸送量？  |  您可以監控指定時段內的 `ConsumedReadCapacityUnits` 或 `ConsumedWriteCapacityUnits`，以追蹤佈建輸送量的使用數量。  | 
|  如果判斷哪些請求超過資料表的佈建輸送量配額？  |  如果請求內的任何事件超過佈建輸送量的配額，則 `ThrottledRequests` 會增加 1。然後，若要深入了解哪些事件限流了請求，請將 `ThrottledRequests` 與資料表和其索引的 `ReadThrottleEvents` 與 `WriteThrottleEvents` 指標比較。  | 
|  如何判斷是否發生任何系統錯誤？  |  您可以監控 `SystemErrors`，以判斷是否有任何請求導致 HTTP 500 (伺服器錯誤) 代碼。這項指標通常應該等於零。否則建議您予以調查。  | 
|  如何監控資料表操作的延遲值？  |  您可以透過百分比指標 (p50) 追蹤平均延遲和中位數延遲來監控 `SuccessfulRequestLatency`。偶爾的延遲峰值無需擔心。不過，如果平均延遲或 p50 (中位數) 很高，則可能有您必須解決的基礎問題。如需詳細資訊，請參閱[對 Amazon DynamoDB 中的延遲問題進行疑難排解](TroubleshootingLatency.md)。  | 

## 在 CloudWatch 主控台中檢視指標
<a name="Viewing-metrics-in-CloudWatch-console"></a>

指標會先依服務命名空間分組，再依各命名空間內不同的維度組合分類。

**若要在 CloudWatch 主控台中檢視指標**

1. 在 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇**指標，所有指標**。

1. 選取 **DynamoDB** 命名空間。您也可以選擇**用途**命名空間來查看 DynamoDB 使用量指標。如需使用量指標的詳細資訊，請參閱[AWS 使用量指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html)。

1. **Browse** (瀏覽) 索引標籤會顯示命名空間中該維度的所有指標。

1. (選用) 若要將指標圖表新增至 CloudWatch 儀表板，請選擇 **Actions, Add to dashboard** (動作，新增至儀表板)。

## 在 中檢視指標 AWS CLI
<a name="Viewing-metrics-in-the-cli"></a>

若要使用 取得指標資訊 AWS CLI，請使用 CloudWatch 命令 `list-metrics`。以下範例會列出 `AWS/DynamoDB` 命名空間中的所有指標。

```
1.                 aws cloudwatch list-metrics --namespace "AWS/DynamoDB"
```

若要取得指標統計數字，請使用 `get-metric-statistics` 命令。以下命令會取得資料表 `ProductCatalog` 在指定 24 小時期間的 `ConsumedReadCapacityUnits` 統計資料，精細程度為 5 分鐘。

```
aws cloudwatch get-metric-statistics —namespace AWS/DynamoDB \
     —metric-name ConsumedReadCapacityUnits \
     —start-time 2023-11-01T00:00:00Z \
     —end-time 2023-11-02T00:00:00Z \
     —period 360 \
     —statistics Average \
     —dimensions Name=TableName,Value=ProductCatalog
```

範例輸出如下所示：

```
{
    "Datapoints": [
        {
            "Timestamp": "2023-11-01T 09:18:00+00:00", 
            "Average": 20, 
            "Unit": "Count"
        }, 
        {
            "Timestamp": "2023-11-01T 04:36:00+00:00", 
            "Average": 22.5, 
            "Unit": "Count"
        }, 
        {
            "Timestamp": "2023-11-01T 15:12:00+00:00", 
            "Average": 20, 
            "Unit": "Count"
        }, ...
        {
            "Timestamp": "2023-11-01T 17:30:00+00:00", 
            "Average": 25, 
            "Unit": "Count"
        }
    ], 
    "Label": " ConsumedReadCapacityUnits "
}
```

# DynamoDB 指標和維度
<a name="metrics-dimensions"></a>

當您與 DynamoDB 互動時，其會將指標與維度傳送至 CloudWatch。

DynamoDB 會以一分鐘為週期，輸出耗用的佈建輸送量。當耗用容量連續兩分鐘超過設定的目標使用率時，[自動擴展](AutoScaling.md)即會觸發。CloudWatch 警示在觸發自動擴展前，可能會有短暫數分鐘的延遲。此延遲可確保 CloudWatch 指標的準確評估。若耗用輸送量峰值間隔超過一分鐘，自動擴展可能不會觸發。同理，當連續 15 個資料點低於目標使用率時，會觸發縮減規模事件。無論哪種情況，自動擴展觸發後，會調用 [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html) API。接著，系統可能需要數分鐘時間來更新資料表或索引的佈建容量。在此期間，所有超出資料表先前佈建容量的請求都會受到限流。

## 檢視指標和維度
<a name="dynamodb-metrics-dimensions"></a>

CloudWatch 顯示下列 DynamoDB 指標：

### DynamoDB 指標
<a name="dynamodb-metrics"></a>

**注意**  
Amazon CloudWatch 以一分鐘為間隔彙總這些指標：  
`ConditionalCheckFailedRequests`
`ConsumedReadCapacityUnits`
`ConsumedWriteCapacityUnits`
`ReadAccountLimitThrottleEvents`
`ReadKeyRangeThroughputThrottleEvents`
`ReadMaxOnDemandThroughputThrottleEvents`
`ReadProvisionedThroughputThrottleEvents`
`ReadThrottleEvents`
`ReturnedBytes`
`ReturnedItemCount`
`ReturnedRecordsCount`
`SuccessfulRequestLatency`
`SystemErrors`
`TimeToLiveDeletedItemCount`
`ThrottledRequests`
`TransactionConflict`
`UserErrors`
`WriteAccountLimitThrottleEvents`
`WriteKeyRangeThroughputThrottleEvents`
`WriteMaxOnDemandThroughputThrottleEvents`
`WriteProvisionedThroughputThrottleEvents`
`WriteThrottleEvents`
`FaultInjectionServiceInducedErrors`
對於所有其他 DynamoDB 指標，彙總的間隔為五分鐘。

並非所有統計數字，例如 *Average* 或 *Sum*，皆適用於所有指標。不過，所有這些值都可以透過 Amazon DynamoDB 主控台，或使用 CloudWatch 主控台、 AWS CLI或 AWS SDKs來取得所有指標。

在以下列表中，每個指標皆有適用於該指標的一組有效統計數字。

**Topics**<a name="available-metrics.title"></a>
+ [DynamoDB 指標](#dynamodb-metrics)
+ [AccountMaxReads](#AccountMaxReads)
+ [AccountMaxTableLevelReads](#AccountMaxTableLevelReads)
+ [AccountMaxTableLevelWrites](#AccountMaxTableLevelWrites)
+ [AccountMaxWrites](#AccountMaxWrites)
+ [AccountProvisionedReadCapacityUtilization](#AccountProvisionedReadCapacityUtilization)
+ [AccountProvisionedWriteCapacityUtilization](#AccountProvisionedWriteCapacityUtilization)
+ [AgeOfOldestUnreplicatedRecord](#AgeOfOldestUnreplicatedRecord)
+ [ConditionalCheckFailedRequests](#ConditionalCheckFailedRequests)
+ [ConsumedChangeDataCaptureUnits](#ConsumedChangeDataCaptureUnits)
+ [ConsumedReadCapacityUnits](#ConsumedReadCapacityUnits)
+ [ConsumedWriteCapacityUnits](#ConsumedWriteCapacityUnits)
+ [FailedToReplicateRecordCount](#FailedToReplicateRecordCount)
+ [MaxProvisionedTableReadCapacityUtilization](#MaxProvisionedTableReadCapacityUtilization)
+ [MaxProvisionedTableWriteCapacityUtilization](#MaxProvisionedTableWriteCapacityUtilization)
+ [OnDemandMaxReadRequestUnits](#OnDemandMaxReadRequestUnits)
+ [OnDemandMaxWriteRequestUnits](#OnDemandMaxWriteRequestUnits)
+ [OnlineIndexConsumedWriteCapacity](#OnlineIndexConsumedWriteCapacity)
+ [OnlineIndexPercentageProgress](#OnlineIndexPercentageProgress)
+ [OnlineIndexThrottleEvents](#OnlineIndexThrottleEvents)
+ [PendingReplicationCount](#PendingReplicationCount)
+ [ProvisionedReadCapacityUnits](#ProvisionedReadCapacityUnits)
+ [ProvisionedWriteCapacityUnits](#ProvisionedWriteCapacityUnits)
+ [ReadAccountLimitThrottleEvents](#ReadAccountLimitThrottleEvents)
+ [ReadKeyRangeThroughputThrottleEvents](#ReadKeyRangeThroughputThrottleEvents)
+ [ReadMaxOnDemandThroughputThrottleEvents](#ReadMaxOnDemandThroughputThrottleEvents)
+ [ReadProvisionedThroughputThrottleEvents](#ReadProvisionedThroughputThrottleEvents)
+ [ReadThrottleEvents](#ReadThrottleEvents)
+ [ReplicationLatency](#ReplicationLatency)
+ [ReturnedBytes](#ReturnedBytes)
+ [ReturnedItemCount](#ReturnedItemCount)
+ [ReturnedRecordsCount](#ReturnedRecordsCount)
+ [SuccessfulRequestLatency](#SuccessfulRequestLatency)
+ [SystemErrors](#SystemErrors)
+ [TimeToLiveDeletedItemCount](#TimeToLiveDeletedItemCount)
+ [ThrottledPutRecordCount](#ThrottledPutRecordCount)
+ [ThrottledRequests](#ThrottledRequests)
+ [TransactionConflict](#TransactionConflict)
+ [UserErrors](#UserErrors)
+ [WriteAccountLimitThrottleEvents](#WriteAccountLimitThrottleEvents)
+ [WriteKeyRangeThroughputThrottleEvents](#WriteKeyRangeThroughputThrottleEvents)
+ [WriteMaxOnDemandThroughputThrottleEvents](#WriteMaxOnDemandThroughputThrottleEvents)
+ [WriteProvisionedThroughputThrottleEvents](#WriteProvisionedThroughputThrottleEvents)
+ [WriteThrottleEvents](#WriteThrottleEvents)
+ [用量指標](#w2aac41c15c13b7c11)
+ [FaultInjectionServiceInducedErrors](#FaultInjectionServiceInducedErrors)

### AccountMaxReads
<a name="AccountMaxReads"></a>

帳戶可以使用的讀取容量單位數目上限。此限制不適用於隨需資料表或全域次要索引。

單位：`Count`

有效的統計數字：
+ `Maximum`：帳戶可以使用的讀取容量單位數目上限。

### AccountMaxTableLevelReads
<a name="AccountMaxTableLevelReads"></a>

帳戶的資料表或全域次要索引可以使用的讀取容量單位數目上限。若是隨需資料表，此限制會限制資料表或全域次要索引可以使用的讀取請求單位上限。

單位：`Count`

有效的統計數字：
+ `Maximum`：帳戶的資料表或全域次要索引可以使用的讀取容量單位數目上限。

### AccountMaxTableLevelWrites
<a name="AccountMaxTableLevelWrites"></a>

帳戶的資料表或全域次要索引可以使用的寫入容量單位數目上限。若是隨需資料表，此限制會限制資料表或全域次要索引可以使用的寫入請求單位上限。

單位：`Count`

有效的統計數字：
+ `Maximum`：帳戶的資料表或全域次要索引可以使用的寫入容量單位數目上限。

### AccountMaxWrites
<a name="AccountMaxWrites"></a>

帳戶可以使用的寫入容量單位數目上限。此限制不適用於隨需資料表或全域次要索引。

單位：`Count`

有效的統計數字：
+ `Maximum`：帳戶可以使用的寫入容量單位數目上限。

### AccountProvisionedReadCapacityUtilization
<a name="AccountProvisionedReadCapacityUtilization"></a>

帳戶可以使用的佈建讀取容量單元百分比。

單位：`Percent`

有效的統計數字：
+ `Maximum`：帳戶使用的佈建讀取容量單元百分比上限。
+ `Minimum`：帳戶使用的佈建讀取容量單元百分比下限。
+ `Average`：帳戶使用的佈建讀取容量單元平均百分比。指標會每隔五分鐘發布一次。因此，如果您快速調整佈建的讀取容量單位，此統計數字可能無法反映真實的平均值。

### AccountProvisionedWriteCapacityUtilization
<a name="AccountProvisionedWriteCapacityUtilization"></a>

帳戶使用的佈建寫入容量單元百分比。

單位：`Percent`

有效的統計數字：
+ `Maximum`：帳戶使用的佈建寫入容量單元百分比上限。
+ `Minimum`：帳戶使用的佈建寫入容量單元百分比下限。
+ `Average`：帳戶使用的佈建寫入容量單元平均百分比。指標會每隔五分鐘發布一次。因此，如果您快速調整佈建的寫入容量單位，此統計數字可能無法反映真實的平均值。

### AgeOfOldestUnreplicatedRecord
<a name="AgeOfOldestUnreplicatedRecord"></a>

自尚未複製到 Kinesis Data Streams 的紀錄首次出現在 DynamoDB 資料表中以來經過的時間。

單位：`Milliseconds`

維度：`TableName, DelegatedOperation`

有效的統計數字：
+ `Maximum`.
+ `Minimum`.
+ `Average`.

### ConditionalCheckFailedRequests
<a name="ConditionalCheckFailedRequests"></a>

執行條件式寫入的失敗嘗試次數。`PutItem`、`UpdateItem` 以及 `DeleteItem` 操作可讓您提供邏輯條件，該條件必須評估為 true，才能繼續操作。若此條件評估為 false，`ConditionalCheckFailedRequests` 會遞增 1。對於 PartiQL Update 和 Delete 陳述式 (其中提供了一個評估為 false 的邏輯條件)，`ConditionalCheckFailedRequests` 也會遞增 1。

**注意**  
失敗的條件式寫入會導致 HTTP 400 錯誤 (錯誤的請求)。這些事件會反映在 `ConditionalCheckFailedRequests` 指標而非 `UserErrors` 指標中。

單位：`Count`

維度：`TableName`

有效的統計數字：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### ConsumedChangeDataCaptureUnits
<a name="ConsumedChangeDataCaptureUnits"></a>

已耗用的變更資料擷取單位數目。

單位：`Count`

維度：`TableName, DelegatedOperation`

有效的統計數字：
+ `Minimum`
+ `Maximum`
+ `Average`

### ConsumedReadCapacityUnits
<a name="ConsumedReadCapacityUnits"></a>

在指定時段內，使用的佈建與隨需讀取容量單位數目，可讓您追蹤已使用多少佈建的輸送量。您可以擷取資料表及其所有全域次要索引或特定全域次要索引的總消耗讀取容量。如需詳細資訊，請參閱[讀取/寫入容量模式](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)。

此 `TableName` 維度會針對資料表傳回 `ConsumedReadCapacityUnits`，但不會針對任何全域次要索引傳回。若要檢視全域次要索引的 `ConsumedReadCapacityUnits`，您必須指定 `TableName` 和 `GlobalSecondaryIndexName`。

**注意**  
 這表示，容量使用當中僅持續一秒的短暫而密集的峰值，可能不會正確反映在 CloudWatch 圖表中，進而可能導致該分鐘的使用率明顯偏低。  
 使用 `Sum` 統計數字來計算消耗的輸送量。例如，取完整一分鐘的 `Sum` 值，再將該值除以一分鐘的秒數 (60)，得出每秒平均 `ConsumedReadCapacityUnits`。您可以將計算的數值與您提供給 DynamoDB 的佈建輸送量數值進行比較。

單位：`Count`

維度：`TableName, GlobalSecondaryIndexName`

有效的統計數字：
+ `Minimum`：對資料表或索引的任何個別請求所消耗的讀取容量單位數目下限。
+ `Maximum`：對資料表或索引的任何個別請求消耗的讀取容量單位數目上限。
+ `Average`：每個請求消耗的平均讀取容量。
**注意**  
此 `Average` 數值受樣本數值會為零的閒置時段所影響。
+ `Sum`：所耗用的讀取容量單位總數。這是 `ConsumedReadCapacityUnits` 指標最實用的統計數字。
+ `SampleCount` – 代表發出指標的頻率。即使是流量為零的資料表也會定期發出 `SampleCount`，但範例值一律為零。
**注意**  
此 `SampleCount` 數值受樣本數值會為零的閒置時段所影響。

### ConsumedWriteCapacityUnits
<a name="ConsumedWriteCapacityUnits"></a>

在指定時段內，使用的佈建與隨需寫入容量單位數目，可讓您追蹤已使用多少佈建的輸送量。您可以擷取資料表及其所有全域次要索引或特定全域次要索引的消耗總計寫入容量。如需詳細資訊，請參閱[讀取/寫入容量模式](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)。

此 `TableName` 維度會針對資料表傳回 `ConsumedWriteCapacityUnits`，但不會針對任何全域次要索引傳回。若要檢視全域次要索引的 `ConsumedWriteCapacityUnits`，您必須指定 `TableName` 和 `GlobalSecondaryIndexName`。`Source` 維度可以傳回兩個值的其中之一： `Customer`和 `GlobalTable`。複寫的寫入將`ConsumedWriteCapacityUnits`具有來源 `GlobalTable`，但區域資料表寫入將`ConsumedWriteCapacityUnits`具有來源 `Customer`。

**注意**  
使用 `Sum` 統計數字來計算消耗的輸送量。例如，獲取一分鐘的 `Sum` 數值，然後除以一分鐘內的秒數 (60) 來計算每秒平均 `ConsumedWriteCapacityUnits` (請注意，這個平均值不會醒目提示該分鐘內發生的寫入活動中，任何大而短暫的峰值)。您可以將計算的數值與您提供給 DynamoDB 的佈建輸送量數值進行比較。

單位：`Count`

維度：`TableName, GlobalSecondaryIndexName, Source`

有效的統計數字：
+ `Minimum`：對資料表或索引的任何個別請求消耗的寫入容量單位數目下限。
+ `Maximum`：對資料表或索引的任何個別請求消耗的寫入容量單位數目上限。
+ `Average`：每個請求消耗的平均寫入容量。
**注意**  
此 `Average` 數值受樣本數值會為零的閒置時段所影響。
+ `Sum`：所耗用的寫入容量單位總數。這是 `ConsumedWriteCapacityUnits` 指標最實用的統計數字。
+ `SampleCount` – 代表發出指標的頻率。即使是流量為零的資料表也會定期發出 `SampleCount`，但範例值一律為零。
**注意**  
此 `SampleCount` 數值受樣本數值會為零的閒置時段所影響。

### FailedToReplicateRecordCount
<a name="FailedToReplicateRecordCount"></a>

DynamoDB 無法複製到您的 Kinesis 資料串流的記錄數目。

單位：`Count`

維度：`TableName`、`DelegatedOperation`

有效的統計數字：
+ `Sum`

### MaxProvisionedTableReadCapacityUtilization
<a name="MaxProvisionedTableReadCapacityUtilization"></a>

帳戶最高佈建讀取資料表或全域次要索引所使用的佈建讀取容量單位百分比。

單位：`Percent`

有效的統計數字：
+ `Maximum` – 帳戶最高佈建讀取資料表或全域次要索引所使用的佈建讀取容量單位最大百分比。
+ `Minimum` – 帳戶最高佈建讀取資料表或全域次要索引所使用的佈建讀取容量單位最小百分比。
+ `Average` – 帳戶最高佈建讀取資料表或全域次要索引所使用的平均佈建讀取容量單位百分比。指標會每隔五分鐘發布一次。因此，如果您快速調整佈建的讀取容量單位，此統計數字可能無法反映真實的平均值。

### MaxProvisionedTableWriteCapacityUtilization
<a name="MaxProvisionedTableWriteCapacityUtilization"></a>

帳戶最高佈建寫入資料表或全域次要索引所使用的佈建寫入容量百分比。

單位：`Percent`

有效的統計數字：
+ `Maximum`：帳戶最高佈建寫入資料表或全域次要索引所使用的佈建寫入容量單位百分比上限。
+ `Minimum`：帳戶最高佈建寫入資料表或全域次要索引所使用的佈建寫入容量單位百分比下限。
+ `Average`：帳戶最高佈建寫入資料表或全域次要索引所使用的平均佈建寫入容量單位百分比。指標會每隔五分鐘發布一次。因此，如果您快速調整佈建的寫入容量單位，此統計數字可能無法反映真實的平均值。

### OnDemandMaxReadRequestUnits
<a name="OnDemandMaxReadRequestUnits"></a>

資料表或全域次要索引的指定隨需讀取請求單位數目。

若要檢視資料表的 `OnDemandMaxReadRequestUnits`，您必須指定 `TableName`。若要檢視全域次要索引的 `OnDemandMaxReadRequestUnits`，您必須指定 `TableName` 和 `GlobalSecondaryIndexName`。

單位：Count

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `Minimum` – 隨需讀取請求單位的最低設定。如果使用 `UpdateTable` 增加讀取請求單位，此指標會顯示此時段內的隨需 `ReadRequestUnits` 最低數值。
+ `Maximum` – 隨需讀取請求單位的最高設定。如果使用 `UpdateTable` 減少讀取請求單位，此指標會顯示此時段內的隨需 `ReadRequestUnits` 最高數值。
+ `Average` – 平均隨需讀取請求單位。`OnDemandMaxReadRequestUnits` 指標會每隔五分鐘發布一次。因此，如果您快速調整隨需讀取請求單位，此統計數字可能無法反映真實的平均值。

### OnDemandMaxWriteRequestUnits
<a name="OnDemandMaxWriteRequestUnits"></a>

資料表或全域次要索引的指定隨需寫入請求單位數目。

若要檢視資料表的 `OnDemandMaxWriteRequestUnits`，您必須指定 `TableName`。若要檢視全域次要索引的 `OnDemandMaxWriteRequestUnits`，您必須指定 `TableName` 和 `GlobalSecondaryIndexName`。

單位：`Count`

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `Minimum` – 隨需寫入請求單位的最低設定。如果使用 `UpdateTable` 增加寫入請求單位，此指標會顯示此時段內的隨需 `WriteRequestUnits` 最低數值。
+ `Maximum` – 隨需寫入請求單位的最高設定。如果使用 `UpdateTable` 減少寫入請求單位，此指標會顯示此時段內的隨需 `WriteRequestUnits` 最高數值。
+ `Average` – 平均隨需寫入請求單位。`OnDemandMaxWriteRequestUnits` 指標會每隔五分鐘發布一次。因此，如果您快速調整隨需寫入請求單位，此統計數字可能無法反映真實的平均值。

### OnlineIndexConsumedWriteCapacity
<a name="OnlineIndexConsumedWriteCapacity"></a>

此指標預期在索引建置期間會顯示 0。此指標先前顯示將新的全域次要索引新增至資料表時所使用的寫入容量單位數量。

單位：`Count`

維度：`TableName, GlobalSecondaryIndexName`

有效的統計數字：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### OnlineIndexPercentageProgress
<a name="OnlineIndexPercentageProgress"></a>

新的全域次要索引新增至資料表時的完成百分比。DynamoDB 必須先為新索引分配資源，然後將資料表中的屬性回填至索引。對於大型資料表，此程序可能需要很長的時間。您應該監控此統計數字，以便在 DynamoDB 建置索引時檢視相對進度。

單位：`Count`

維度：`TableName, GlobalSecondaryIndexName`

有效的統計數字：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### OnlineIndexThrottleEvents
<a name="OnlineIndexThrottleEvents"></a>

此指標預期在索引建置期間會顯示 0。此指標先前顯示將新的全域次要索引新增至資料表時發生的寫入調節事件數。

單位：`Count`

維度：`TableName, GlobalSecondaryIndexName`

有效的統計數字：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### PendingReplicationCount
<a name="PendingReplicationCount"></a>

[全域資料表 2017.11.29 版 (舊版)](globaltables.V1.md) 指標 (僅限全域資料表)。寫入一個複本列表，但尚未寫入全域資料表中的另一個複本的項目更新數目。

單位：`Count`

維度：`TableName, ReceivingRegion`

有效的統計數字：
+ `Average`
+ `Sample Count`
+ `Sum`

### ProvisionedReadCapacityUnits
<a name="ProvisionedReadCapacityUnits"></a>

資料表或全域次要索引佈建的讀取容量單位數目。此 `TableName` 維度會針對資料表傳回 `ProvisionedReadCapacityUnits`，但不會針對任何全域次要索引傳回。若要檢視全域次要索引的 `ProvisionedReadCapacityUnits`，您必須指定 `TableName` 和 `GlobalSecondaryIndexName`。

單位：`Count`

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `Minimum`：佈建讀取容量的最低設定。如果使用 `UpdateTable` 增加讀取容量，此指標會顯示在此時段內佈建的 `ReadCapacityUnits` 最低數值。
+ `Maximum`：佈建讀取容量的最高設定。如果使用 `UpdateTable` 減少讀取容量，此指標會顯示在此時段內佈建的 `ReadCapacityUnits` 最高數值。
+ `Average`：平均佈建讀取容量。`ProvisionedReadCapacityUnits` 指標會每隔五分鐘發布一次。因此，如果您快速調整佈建的讀取容量單位，此統計數字可能無法反映真實的平均值。

### ProvisionedWriteCapacityUnits
<a name="ProvisionedWriteCapacityUnits"></a>

資料表或全域次要索引佈建的寫入容量單位數目。

此 `TableName` 維度會針對資料表傳回 `ProvisionedWriteCapacityUnits`，但不會針對任何全域次要索引傳回。若要檢視全域次要索引的 `ProvisionedWriteCapacityUnits`，您必須指定 `TableName` 和 `GlobalSecondaryIndexName`。

單位：`Count`

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `Minimum`：佈建寫入容量的最低設定。如果使用 `UpdateTable` 增加寫入容量，此指標會顯示在此時段內佈建的 `WriteCapacityUnits` 最低數值。
+ `Maximum`：佈建寫入容量的最高設定。如果使用 `UpdateTable` 減少寫入容量，此指標會顯示在此時段內佈建的 `WriteCapacityUnits` 最高數值。
+ `Average`：佈建平均的寫入容量。`ProvisionedWriteCapacityUnits` 指標會每隔五分鐘發布一次。因此，如果您快速調整佈建的寫入容量單位，此統計數字可能無法反映真實的平均值。

### ReadAccountLimitThrottleEvents
<a name="ReadAccountLimitThrottleEvents"></a>

因帳戶限制而被限流的讀取請求數。

單位：`Count`

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `Sum` – 限流事件的總數。
+ `SampleCount` – 限流發生次數。
+ `Minimum` – 任何指定範例中的限流事件數目下限。
+ `Maximum` – 任何指定範例中的限流事件數目上限。

### ReadKeyRangeThroughputThrottleEvents
<a name="ReadKeyRangeThroughputThrottleEvents"></a>

因分割區限制而被限流的讀取請求數。

單位：`Count`

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `Sum` – 限流事件的總數。
+ `SampleCount` – 限流發生次數。
+ `Minimum` – 任何指定範例中的限流事件數目下限。
+ `Maximum` – 任何指定範例中的限流事件數目上限。

### ReadMaxOnDemandThroughputThrottleEvents
<a name="ReadMaxOnDemandThroughputThrottleEvents"></a>

因隨需模式達最大輸送量而被限流的讀取請求數。

單位：`Count`

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `Sum` – 限流事件的總數。
+ `SampleCount` – 限流發生次數。
+ `Minimum` – 任何指定範例中的限流事件數目下限。
+ `Maximum` – 任何指定範例中的限流事件數目上限。

### ReadProvisionedThroughputThrottleEvents
<a name="ReadProvisionedThroughputThrottleEvents"></a>

因佈建輸送量限制而被限流的讀取請求數。

單位：`Count`

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `Sum` – 限流事件的總數。
+ `SampleCount` – 限流發生次數。
+ `Minimum` – 任何指定範例中的限流事件數目下限。
+ `Maximum` – 任何指定範例中的限流事件數目上限。

### ReadThrottleEvents
<a name="ReadThrottleEvents"></a>

對 DynamoDB 的請求超過資料表或全域次要索引的佈建讀取容量單位。

單一請求可能會導致多個事件。例如，`BatchGetItem` 讀取 10 個項目會作為 10 個 `GetItem` 事件處理。針對每個事件，如果該事件經限流，則 `ReadThrottleEvents` 會遞增 1。除非*全部 10 個* `GetItem` 事件經過限流，否則整個 `BatchGetItem` 的 `ThrottledRequests` 指標不會遞增。

此 `TableName` 維度會針對資料表傳回 `ReadThrottleEvents`，但不會針對任何全域次要索引傳回。若要檢視全域次要索引的 `ReadThrottleEvents`，您必須指定 `TableName` 和 `GlobalSecondaryIndexName`。

單位：`Count`

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `SampleCount`
+ `Sum`

### ReplicationLatency
<a name="ReplicationLatency"></a>

(此指標適用於 DynamoDB 全域資料表。) 在 DynamoDB Streams 中顯示一個複本列表的更新項目到該項目出現在全域資料表的另一個複本中的經過時間。

單位：`Milliseconds`

維度：`TableName, ReceivingRegion`

有效的統計數字：
+ `Average`
+ `Minimum`
+ `Maximum`

### ReturnedBytes
<a name="ReturnedBytes"></a>

`GetRecords` 操作 (Amazon DynamoDB Streams) 在指定時段內傳回的位元組數目。

單位：`Bytes`

維度：`Operation, StreamLabel, TableName`

有效的統計數字：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### ReturnedItemCount
<a name="ReturnedItemCount"></a>

在指定時段內由 `Query`、`Scan` 或 `ExecuteStatement` (選取) 操作所傳回的項目數。

*傳回*的項目數量不一定與評估的項目數量相同。例如，假設您請求的是資料表上的 `Scan` 或具有 100 個項目的索引，但指定了縮小結果的 `FilterExpression`，故只返回 15 個項目。在這種情況下，來自 `Scan` 的回應會包含 100 個 `ScanCount` 和 15 個返回項目的 `Count`。

單位：`Count`

維度：`TableName, Operation`

有效的統計數字：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### ReturnedRecordsCount
<a name="ReturnedRecordsCount"></a>

`GetRecords` 操作 (Amazon DynamoDB Streams) 在指定時段內傳回的串流紀錄數目。

單位：`Count`

維度：`Operation, StreamLabel, TableName`

有效的統計數字：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### SuccessfulRequestLatency
<a name="SuccessfulRequestLatency"></a>

在指定時段內對 DynamoDB 或 Amazon DynamoDB Streams 發起的成功請求延遲。`SuccessfulRequestLatency` 可以提供兩種不同類型的資訊：
+ 成功請求的經過時間 (`Minimum`、`Maximum`、`Sum`、`Average` 或 `Percentile`)。
+ 成功請求的數量 (`SampleCount`)。

`SuccessfulRequestLatency` 僅會反映 DynamoDB 或 Amazon DynamoDB Streams 中的活動，不會考慮網路延遲或用戶端活動。

**注意**  
若要分析自訂百分位數值 (例如 p99.9)，可在 CloudWatch 指標統計資料欄位中手動輸入所需百分位數。這可讓您評估超出下拉選單預設百分位數範圍的延遲分布。

單位：`Milliseconds`

維度：`TableName, Operation, StreamLabel`

有效的統計數字：
+ `Minimum`
+ `Maximum`
+ `Sum`
+ `Average`
+ `Percentile`
+ `SampleCount`

### SystemErrors
<a name="SystemErrors"></a>

對 DynamoDB 或 Amazon DynamoDB Streams 發起的能在指定時段內產生 HTTP 500 狀態碼的請求。HTTP 500 通常表示內部服務錯誤。

**注意**  
當 DynamoDB 傳回系統錯誤 (HTTP 500) 時，大多數 AWS SDKs 會自動執行可設定的重試次數。如果重試期間解決了問題，則應用程式會繼續，而不會顯示錯誤，但您可能會發現用戶端感知延遲增加。如果全部重試後仍存在錯誤，則該錯誤會傳播到應用程式的程式碼。

單位：`Count`

維度：`TableName, Operation`

有效的統計數字：
+ `Sum`
+ `SampleCount`

### TimeToLiveDeletedItemCount
<a name="TimeToLiveDeletedItemCount"></a>

存留時間 (TTL) 在指定時段內刪除的項目數量。此指標可協助您監控資料表上的 TTL 刪除率。

單位：`Count`

維度：TableName

有效的統計數字：
+ `Sum`

### ThrottledPutRecordCount
<a name="ThrottledPutRecordCount"></a>

因 Kinesis Data Streams 容量不足而受到限流的 Kinesis Data Streams 的紀錄數目。

單位：`Count`

維度：TableName、DelegatedOperation

有效的統計數字：
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`

### ThrottledRequests
<a name="ThrottledRequests"></a>

對 DynamoDB 的請求超過資源 (例如資料表或索引) 的佈建輸送量限制。

如果請求內的任何事件超過佈建輸送量的限額，則 `ThrottledRequests` 會遞增 1。例如，如果使用全域次要索引更新資料表中的項目，則會有多個事件：寫入資料表和寫入每個索引。如果其中一或多個事件經過限流，則 `ThrottledRequests` 會遞增 1。

**注意**  
在批次處理請求中 (`BatchGetItem` 或 `BatchWriteItem`)，`ThrottledRequests` 只有在*每個*批次中的請求進行限流時才會遞增。  
如果批次內的任何個別請求經過限流，則會遞增下列一個指標：  
`ReadThrottleEvents`：在 `BatchGetItem` 內限流的 `GetItem` 事件。
`WriteThrottleEvents`：在 `BatchWriteItem` 內限流的 `PutItem` 或 `DeleteItem` 事件。

若要深入了解哪些事件限流了請求，請將 `ThrottledRequests` 與資料表和其索引的 `ReadThrottleEvents` 和 `WriteThrottleEvents` 進行比較。

**注意**  
經限流的請求會導致 HTTP 400 狀態碼。所有這些事件都會反映在 `ThrottledRequests` 指標而非 `UserErrors` 指標中。

單位：`Count`

維度：`TableName, Operation`

有效的統計數字：
+ `Sum`
+ `SampleCount`

### TransactionConflict
<a name="TransactionConflict"></a>

因同一項目上並行請求之間的交易衝突而拒絕的項目層級請求。如需詳細資訊，請參閱[在 DynamoDB 中處理交易衝突](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html#transaction-conflict-handling)。

單位：`Count`

維度：`TableName`

有效的統計數字：
+ `Sum`：因交易衝突而拒絕的項目層級請求數目。
**注意**  
如果對 `TransactWriteItems` 或 `TransactGetItems` 的呼叫中有多個項目層級請求遭拒絕，則對於每個項目層級的 `Put`、`Update`、`Delete` 或 `Get` 請求，`Sum` 會遞增 1。
+ `SampleCount`：因交易衝突而拒絕的請求數目。
**注意**  
如果對 `TransactWriteItems` 或 `TransactGetItems` 的呼叫中有多個項目層級請求遭拒絕，則 `SampleCount` 只會遞增 1。
+ `Min`：對 `TransactWriteItems`、`TransactGetItems`、`PutItem`、`UpdateItem` 或 `DeleteItem` 的呼叫中遭拒絕的項目層級請求數目下限。
+ `Max`：對 `TransactWriteItems`、`TransactGetItems`、`PutItem`、`UpdateItem` 或 `DeleteItem` 的呼叫中被拒絕的項目層級請求數目上限。
+ `Average`：對 `TransactWriteItems`、`TransactGetItems`、`PutItem`、`UpdateItem` 或 `DeleteItem` 的呼叫中被拒絕的項目層級請求平均數。

### UserErrors
<a name="UserErrors"></a>

對 DynamoDB 或 Amazon DynamoDB Streams 發起的能在指定時段內產生 HTTP 400 狀態碼的請求。HTTP 400 通常表示用戶端錯誤，例如參數組合無效、嘗試更新不存在的資料表或請求簽章不正確。

 有些例外狀況會記錄關於 `UserErrors` 的指標，範例如下：
+ `ResourceNotFoundException`
+ `ValidationException`
+ `TransactionConflict`

所有這些事件都會反映在 `UserErrors` 指標中，但下列項目除外：
+ *ProvisionedThroughputExceededException*：請參閱本節的 `ThrottledRequests` 指標。
+ *ConditionalCheckFailedException*：請參閱本節的 `ConditionalCheckFailedRequests` 指標。

`UserErrors` 代表目前 AWS 區域和目前 AWS 帳戶的 DynamoDB 或 Amazon DynamoDB Streams 請求的 HTTP 400 錯誤彙總。

單位：`Count`

有效的統計數字：
+ `Sum`
+ `SampleCount`

### WriteAccountLimitThrottleEvents
<a name="WriteAccountLimitThrottleEvents"></a>

因帳戶限制而被限流的寫入請求數。

單位：`Count`

維度：`TableName`

有效的統計數字：
+ `Sum` – 限流事件的總數。
+ `SampleCount` – 限流發生次數。
+ `Minimum` – 任何指定範例中的限流事件數目下限。
+ `Maximum` – 任何指定範例中的限流事件數目上限。

### WriteKeyRangeThroughputThrottleEvents
<a name="WriteKeyRangeThroughputThrottleEvents"></a>

因分割區限制而被限流的寫入請求數。

單位：`Count`

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `Sum` – 限流事件的總數。
+ `SampleCount` – 限流發生次數。
+ `Minimum` – 任何指定範例中的限流事件數目下限。
+ `Maximum` – 任何指定範例中的限流事件數目上限。

### WriteMaxOnDemandThroughputThrottleEvents
<a name="WriteMaxOnDemandThroughputThrottleEvents"></a>

因隨需模式達最大輸送量而被限流的寫入請求數。

單位：`Count`

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `Sum` – 限流事件的總數。
+ `SampleCount` – 限流發生次數。
+ `Minimum` – 任何指定範例中的限流事件數目下限。
+ `Maximum` – 任何指定範例中的限流事件數目上限。

### WriteProvisionedThroughputThrottleEvents
<a name="WriteProvisionedThroughputThrottleEvents"></a>

因佈建輸送量限制而被限流的寫入請求數。

單位：`Count`

維度：`TableName`、`GlobalSecondaryIndexName`

有效的統計數字：
+ `Sum` – 限流事件的總數。
+ `SampleCount` – 限流發生次數。
+ `Minimum` – 任何指定範例中的限流事件數目下限。
+ `Maximum` – 任何指定範例中的限流事件數目上限。

### WriteThrottleEvents
<a name="WriteThrottleEvents"></a>

對 DynamoDB 的請求超過資料表或全域次要索引的佈建寫入容量單位。

單一請求可能會導致多個事件。例如，在附有三個全域次要索引的資料表上提出 `PutItem` 請求會導致四個事件：一個資料表寫入事件、三個索引寫入事件。針對每個事件，如果該事件經限流，則 `WriteThrottleEvents` 指標會遞增 1。針對單一 `PutItem` 請求，如果有任何事件經過限流，則 `ThrottledRequests` 也會遞增 1。針對 `BatchWriteItem`，除非全部個別 `PutItem` 或 `DeleteItem` 事件經過調解，否則整個 `BatchWriteItem` 的 `ThrottledRequests` 指標不會遞增。

此 `TableName` 維度會針對資料表傳回 `WriteThrottleEvents`，但不會針對任何全域次要索引傳回。若要檢視全域次要索引的 `WriteThrottleEvents`，您必須指定 `TableName` 和 `GlobalSecondaryIndexName`。

單位：`Count`

維度：`TableName, GlobalSecondaryIndexName`

有效的統計數字：
+ `Sum`
+ `SampleCount`

### 用量指標
<a name="w2aac41c15c13b7c11"></a>

CloudWatch 中的用量指標可讓您主動管理用量，方法是將 CloudWatch 主控台中的指標視覺化、建立自訂儀表板、使用 CloudWatch 異常偵測偵測活動中的變更，以及設定在用量達到閾值時提醒您的警示。

DynamoDB 也將這些使用量指標與 Service Quotas 整合。您可以使用 CloudWatch 來管理帳戶對服務配額的使用情況。如需詳細資訊，請參閱[視覺化您的 Service Quotas 和設定警報](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Quotas-Visualize-Alarms.html)。

**Topics**<a name="ddb-usage-metrics.title"></a>
+ [AccountProvisionedWriteCapacityUnits](#w2aac41c15c13b7c11b9)
+ [AccountProvisionedReadCapacityUnits](#w2aac41c15c13b7c11c11)
+ [TableCount](#w2aac41c15c13b7c11c13)

#### AccountProvisionedWriteCapacityUnits
<a name="w2aac41c15c13b7c11b9"></a>

帳戶所有資料表或全域次要索引佈建的寫入容量單位數目總和。

單位：`Count`

有效的統計數字：
+ `Minimum`：在一時間段內佈建的最低寫入容量單位數目。
+ `Maximum`：在一時間段內佈建的最大寫入容量單位數目。
+ `Average` – 在一段時間內佈建的寫入容量單位帳戶的平均數量。

此指標會每隔五分鐘發布一次。因此，如果您快速調整佈建的寫入容量單位，此統計數字可能無法反映真實的平均值。

#### AccountProvisionedReadCapacityUnits
<a name="w2aac41c15c13b7c11c11"></a>

所有資料表或全域次要索引佈建的讀取容量單位數目。

單位：`Count`

有效的統計數字：
+ `Minimum`：在一時間段內佈建的最低讀取容量單位數目。
+ `Maximum`：在一時間段內佈建的最大讀取容量單位數目。
+ `Average` – 在一段時間內佈建的讀取容量單位帳戶的平均數量。

此指標會每隔五分鐘發布一次。因此，如果您快速調整佈建的讀取容量單位，此統計數字可能無法反映真實的平均值。

#### TableCount
<a name="w2aac41c15c13b7c11c13"></a>

帳戶中作用中資料表的數目。

單位：`Count`

有效的統計數字：
+ `Minimum`：在一時間段內的最小資料表數目。
+ `Maximum`：在一時間段內的最大資料表數目。
+ `Average` – 在一時間段內的平均資料表數目。

### FaultInjectionServiceInducedErrors
<a name="FaultInjectionServiceInducedErrors"></a>

對 DynamoDB 提出的請求，會在指定的期間和補足期間產生模擬 HTTP 500 狀態碼，因為 AWS FIS 實驗。

單位：`Count`

維度：`TableName`、`Operation`

有效的統計數字：
+ `Sum` 
+ `SampleCount` 

## 了解 DynamoDB 的指標和維度
<a name="ddb-understanding-metric-dimensions"></a>

DynamoDB 的指標條件由帳戶的數值、資料表名稱、全域次要索引名稱或操作進行限定。您可以使用 CloudWatch 主控台擷取 DynamoDB 資料以及下表中的任何維度。

**Topics**<a name="available-metrics.title"></a>
+ [DelegatedOperation](#w2aac41c15c13b9b7)
+ [GlobalSecondaryIndexName](#w2aac41c15c13b9b9)
+ [作業](#w2aac41c15c13b9c11)
+ [OperationType](#w2aac41c15c13b9c13)
+ [動詞](#w2aac41c15c13b9c15)
+ [ReceivingRegion](#w2aac41c15c13b9c17)
+ [StreamLabel](#w2aac41c15c13b9c19)
+ [TableName](#w2aac41c15c13b9c21)

### DelegatedOperation
<a name="w2aac41c15c13b9b7"></a>

此維度將資料限制在 DynamoDB 代表您執行的操作中。擷取下列操作：
+ Kinesis Data Streams 的變更資料擷取。

### GlobalSecondaryIndexName
<a name="w2aac41c15c13b9b9"></a>

此維度將資料限制為資料表上的全域次要索引。若您指定 `GlobalSecondaryIndexName`，您也必須指定 `TableName`。

### 作業
<a name="w2aac41c15c13b9c11"></a>

此維度將資料限制為下列其中一項 DynamoDB 操作：
+ `PutItem`
+ `DeleteItem`
+ `UpdateItem`
+ `GetItem`
+ `BatchGetItem`
+ `Scan`
+ `Query`
+ `BatchWriteItem`
+ `TransactWriteItems`
+ `TransactGetItems`
+ `ExecuteTransaction`
+ `BatchExecuteStatement`
+ `ExecuteStatement`

此外，您可以將資料限制為下列 Amazon DynamoDB Streams 操作：
+ `GetRecords`

### OperationType
<a name="w2aac41c15c13b9c13"></a>

此維度將資料限制為下列其中一種操作類型：
+ `Read`
+ `Write`

此維度針對回應 `ExecuteTransaction` 和 `BatchExecuteStatement` 請求發出。

### 動詞
<a name="w2aac41c15c13b9c15"></a>

此維度將資料限制為下列其中一個 DynamoDB PartiQL 動詞：
+ Insert (插入)：`PartiQLInsert`
+ Select (選取)：`PartiQLSelect`
+ Update (更新)：`PartiQLUpdate`
+ Delete (刪除)：`PartiQLDelete`

此維度針對回應 `ExecuteStatement` 操作發出。

### ReceivingRegion
<a name="w2aac41c15c13b9c17"></a>

此維度會將資料限制在特定 AWS 區域。它可與源自 DynamoDB 全域資料表內複本列表的指標搭配使用。

### StreamLabel
<a name="w2aac41c15c13b9c19"></a>

此維度將資料限制為特定串流標籤。它與源自 Amazon DynamoDB Streams `GetRecords` 操作的指標搭配使用。

### TableName
<a name="w2aac41c15c13b9c21"></a>

此維度將資料限制為特定資料表。此值可以是目前區域和目前 AWS 帳戶中的任何資料表名稱。

# 在 DynamoDB 中建立 CloudWatch 警示
<a name="Monitoring-metrics-creating-cloudwatch-alarms"></a>

[CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)會監看指定時段內的單一指標，並在一段時間內根據指標相對於閾值的值來執行一或多個指定動作。此動作是傳送到 Amazon SNS 主題或 Auto Scaling 政策的通知。您也可以將警示新增至儀表板，以便監控和接收跨多個區域的AWS資源和應用程式的提醒。您可建立的警示數量沒有限制。CloudWatch 警示不會只因處於特定狀態就調用動作，狀態必須已變更並已維持一段指定的時間。如需建議的 DynamoDB 警示清單，請參閱[建議的警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#DynamoDB)。

**注意**  
建立 CloudWatch 警示時，您必須指定所有必要的維度，因為 CloudWatch 不會彙總遺失維度的指標。在建立警示時，使用遺失維度建立 CloudWatch 警示不會造成錯誤。

假設您有一個佈建的資料表，其中包含五個讀取容量單位。您希望在用盡整個佈建的讀取容量之前收到通知，因此您決定建立 CloudWatch 警示，以便在使用的容量達到您為資料表佈建的 80% 時收到通知。您可以在 CloudWatch 主控台中或使用AWS CLI建立警示。

## 在 CloudWatch 主控台中建立警示
<a name="monitoring-metrics-creating-an-alarm-cw-console"></a>

**若要在 CloudWatch 主控台中建立警示**

1. 登入AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 尋找包含您要監控之資料表的資料列，並在**指標名稱**欄中尋找 **`ConsumeReadCapacityUnits`**。選取此資料列旁的核取方塊，然後選擇 **Select metric** (選取指標)。

1. 在**指定指標和條件**下，針對**統計資料**選擇**總和**。對於**期間**，選擇 **1 分鐘**。

1. 在 **Conditions (條件)** 下，指定以下內容：

   1. 對於**閾值類型**，選擇**靜態**。

   1. 對於**每當 `ConsumedReadCapacityUnits` 為**，選擇**大於/等於**，然後輸入 240 作為閾值。

1. 選擇 **Next** (下一步)。

1. 在**通知** 下，選擇 **`In alarm`**，然後選取當警示處於 `ALARM` 狀態時要通知的 SNS 主題。

1. 完成時，請選擇**下一步**。

1. 輸入警示的名稱和說明，然後選擇 **Next** (下一步)。

1. 在 **Preview and create (預覽及建立)** 下，請確認資訊和條件都是您希望的內容，然後選擇 **Create alarm (建立警示)**。

## 在 中建立警示AWS CLI
<a name="Monitoring-metrics-creating-an-alarm-cli"></a>

```
aws cloudwatch put-metric-alarm \
    -\-alarm-name ReadCapacityUnitsLimitAlarm \
    -\-alarm-description "Alarm when read capacity reaches 80% of my provisioned read capacity" \
    -\-namespace AWS/DynamoDB \
    -\-metric-name ConsumedReadCapacityUnits \
    -\-dimensions Name=TableName,Value=myTable \
    -\-statistic Sum \
    -\-threshold 240 \
    -\-comparison-operator GreaterThanOrEqualToThreshold \
    -\-period 60 \                           
    -\-evaluation-periods 1 \
    -\-alarm-actions arn:aws:sns:us-east-1:123456789012:capacity-alarm
```

測試警示。

```
aws cloudwatch set-alarm-state -\-alarm-name ReadCapacityUnitsLimitAlarm -\-state-reason "initializing" -\-state-value OK
```

```
aws cloudwatch set-alarm-state -\-alarm-name ReadCapacityUnitsLimitAlarm -\-state-reason "initializing" -\-state-value ALARM
```

## 更多AWS CLI範例
<a name="Monitoring-metrics-more-cli-examples"></a>

下列程序說明如何在請求超過資料表的佈建調節配額時收到通知。

1. 建立 Amazon SNS 主題 `arn:aws:sns:us-east-1:123456789012:requests-exceeding-throughput`。如需詳細資訊，請參閱[設定 Amazon Simple Notification Service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)。

1. 建立警示。

   ```
   aws cloudwatch put-metric-alarm \
           -\-alarm-name ReadCapacityUnitsLimitAlarm \
           -\-alarm-description "Alarm when read capacity reaches 80% of my provisioned read capacity" \
           -\-namespace AWS/DynamoDB \
           -\-metric-name ConsumedReadCapacityUnits \
           -\-dimensions Name=TableName,Value=myTable \
           -\-statistic Sum \
           -\-threshold 240 \
           -\-comparison-operator GreaterThanOrEqualToThreshold \
           -\-period 60 \                           
           -\-evaluation-periods 1 \
           -\-alarm-actions arn:aws:sns:us-east-1:123456789012:capacity-alarm
   ```

1. 測試警示。

   ```
   aws cloudwatch set-alarm-state --alarm-name RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value ALARM
   ```

下列程序說明如何在發生系統錯誤時收到通知。

1. 建立 Amazon SNS 主題 `arn:aws:sns:us-east-1:123456789012:notify-on-system-errors`。如需詳細資訊，請參閱[設定 Amazon Simple Notification Service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)。

1. 建立警示。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name SystemErrorsAlarm \
       --alarm-description "Alarm when system errors occur" \
       --namespace AWS/DynamoDB \
       --metric-name SystemErrors \
       --dimensions Name=TableName,Value=myTable Name=Operation,Value=aDynamoDBOperation \
       --statistic Sum \
       --threshold 0 \
       --comparison-operator GreaterThanThreshold \
       --period 60 \
       --unit Count \
       --evaluation-periods 1 \
       --treat-missing-data breaching \
       --alarm-actions arn:aws:sns:us-east-1:123456789012:notify-on-system-errors
   ```

1. 測試警示。

   ```
   aws cloudwatch set-alarm-state --alarm-name SystemErrorsAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name SystemErrorsAlarm --state-reason "initializing" --state-value ALARM
   ```