DynamoDB のメトリクスとディメンション
DynamoDB を操作すると、メトリクスとディメンションが CloudWatch に送信されます。
DynamoDB は、消費されたプロビジョンドスループットを 1 分間出力します。消費したキャパシティが、設定したターゲット使用率を 2 分間連続して超過すると、自動スケーリングがトリガーされます。CloudWatch アラームは、自動スケーリングをトリガーする前に、最大数分の短い遅延を伴う場合があります。この遅延により、CloudWatch メトリクスの正確な評価が保証されます。消費されたスループットのスパイク間隔が 1 分を超えると、自動スケーリングはトリガーされない場合があります。同様に、15 個の連続するデータポイントがターゲット使用率を下回ると、スケールダウンイベントが発生する場合があります。いずれの場合も、自動スケーリングのトリガー後に、UpdateTable API が呼び出されます。テーブルやインデックスのプロビジョンドキャパシティの更新には、数分かかる場合があります。この間に、テーブルの前のプロビジョンドキャパシティを超えるリクエストはスロットリングされます。
メトリクスおよびディメンションの表示
CloudWatch は、以下の DynamoDB のメトリクスを表示します。
DynamoDB のメトリクス
注記
Amazon CloudWatch は 1 分間隔でこれらのメトリクスを集計します。
-
ConditionalCheckFailedRequests
-
ConsumedReadCapacityUnits
-
ConsumedWriteCapacityUnits
-
ReadThrottleEvents
-
ReturnedBytes
-
ReturnedItemCount
-
ReturnedRecordsCount
-
SuccessfulRequestLatency
-
SystemErrors
-
TimeToLiveDeletedItemCount
-
ThrottledRequests
-
TransactionConflict
-
UserErrors
-
WriteThrottleEvents
その他のすべての DynamoDB メトリクスでは、集計の間隔は 5 分です。
Average や Sum など、すべての統計が必ずしも常にすべてのメトリクスに適用可能であるとは限りません。ただし、これらの値はすべて Amazon DynamoDB コンソール経由で利用できます。また、すべてのメトリクスで CloudWatch コンソール、AWS CLI、AWS SDK を使用することによっても利用できます。
次のリストは、各メトリクスに適用可能な有効な統計のセットを示します。
利用可能なメトリクスのリスト
- AccountMaxReads
- AccountMaxTableLevelReads
- AccountMaxTableLevelWrites
- AccountMaxWrites
- AccountProvisionedReadCapacityUtilization
- AccountProvisionedWriteCapacityUtilization
- AgeOfOldestUnreplicatedRecord
- 条件チェックが失敗したリクエスト
- ConsumedChangeDataCaptureUnits
- ConsumedReadCapacityUnits
- ConsumedWriteCapacityUnits
- FailedToReplicateRecordCount
- MaxProvisionedTableReadCapacityUtilization
- MaxProvisionedTableWriteCapacityUtilization
- OnDemandMaxReadRequestUnits
- OnDemandMaxWriteRequestUnits
- OnlineIndexConsumedWriteCapacity
- OnlineIndexPercentageProgress
- OnlineIndexThrottleEvents
- PendingReplicationCount
- ProvisionedReadCapacityUnits
- ProvisionedWriteCapacityUnits
- ReadThrottleEvents
- ReplicationLatency
- ReturnedBytes
- ReturnedItemCount
- ReturnedRecordsCount
- SuccessfulRequestLatency
- SystemErrors
- TimeToLiveDeletedItemCount
- ThrottledPutRecordCount
- ThrottledRequests
- TransactionConflict
- UserErrors
- WriteThrottleEvents
AccountMaxReads
アカウントで使用できる読み込み容量ユニットの最大数。この制限は、オンデマンドテーブルやグローバルセカンダリインデックスには適用されません。
単位: Count
有効な統計:
-
Maximum
— アカウントで使用できる読み込み容量ユニットの最大数。
AccountMaxTableLevelReads
アカウントのテーブルまたはグローバルセカンダリインデックスで使用できる読み込み容量ユニットの最大数。オンデマンドテーブルの場合、この制限は、テーブルやグローバルセカンダリインデックスで使用できる読み込みリクエストユニットの上限数を示します。
単位: Count
有効な統計:
-
Maximum
— アカウントのテーブルまたはグローバルセカンダリインデックスで使用できる読み込み容量ユニットの最大数。
AccountMaxTableLevelWrites
アカウントのテーブルまたはグローバルセカンダリインデックスで使用できる書き込み容量ユニットの最大数。オンデマンドテーブルの場合、この制限は、テーブルやグローバルセカンダリインデックスで使用できる書き込みリクエストユニットの上限数を示します。
単位: Count
有効な統計:
-
Maximum
— アカウントのテーブルまたはグローバルセカンダリインデックスで使用できる書き込み容量ユニットの最大数。
AccountMaxWrites
アカウントで使用できる書き込み容量ユニットの最大数。この制限は、オンデマンドテーブルやグローバルセカンダリインデックスには適用されません。
単位: Count
有効な統計:
-
Maximum
- アカウントで使用できる書き込み容量ユニットの最大数。
AccountProvisionedReadCapacityUtilization
アカウントで利用されるプロビジョニング済み読み込み容量ユニットの割合。
単位: Percent
有効な統計:
-
Maximum
— アカウントで使用されるプロビジョニング済み読み込み容量ユニットの最大割合。 -
Minimum
— アカウントで使用されるプロビジョニング済み読み込み容量ユニットの最小割合。 -
Average
— アカウントで使用されるプロビジョニング済み読み込み容量ユニットの平均割合。メトリクスは 5 分間隔で発行されます。したがって、プロビジョニング済み読み込み容量ユニットをすばやく調整すると、この統計には実際の平均が反映されないことがあります。
AccountProvisionedWriteCapacityUtilization
アカウントで利用されるプロビジョニング済み書き込み容量ユニットの割合。
単位: Percent
有効な統計:
-
Maximum
- アカウントで利用されるプロビジョニング済み書き込み容量ユニットの最大割合。 -
Minimum
— アカウントで使用されるプロビジョニング済み読み込み容量ユニットの最小割合。 -
Average
— アカウントで使用されるプロビジョニング済み書き込み容量ユニットの平均割合。メトリクスは 5 分間隔で発行されます。したがって、プロビジョニング済み書き込み容量ユニットをすばやく調整すると、この統計には実際の平均値が反映されないことがあります。
AgeOfOldestUnreplicatedRecord
Kinesis データストリームにレプリケートされていないレコードからの経過時間が DynamoDB テーブルに最初に出現してからの経過時間。
単位: Milliseconds
ディメンション: TableName, DelegatedOperation
有効な統計:
-
Maximum
. -
Minimum
. -
Average
.
条件チェックが失敗したリクエスト
条件付き書き込みの実行に失敗した回数。PutItem
、UpdateItem
、および DeleteItem
オペレーションを使用すると、オペレーションを続行する前に true と評価される必要がある論理条件を指定できます。この条件が false に評価される場合は、ConditionalCheckFailedRequests
は 1 つ増加します。ConditionalCheckFailedRequests
も、論理条件が提供され、その条件が false に評価される PartiQL Update および Delete ステートメントで 1 つ増加します。
注記
条件付き書き込みに失敗すると HTTP 400 エラー (Bad Request) が発生します。これらのイベントは ConditionalCheckFailedRequests
メトリクスに反映されますが、UserErrors
メトリクスには反映されません。
単位: Count
ディメンション: TableName
有効な統計:
-
Minimum
-
Maximum
-
Average
-
SampleCount
-
Sum
ConsumedChangeDataCaptureUnits
消費された変更データキャプチャユニットの数。
単位: Count
ディメンション: TableName, DelegatedOperation
有効な統計:
-
Minimum
-
Maximum
-
Average
ConsumedReadCapacityUnits
プロビジョンドキャパシティとオンデマンドキャパシティの両方について、指定された期間内に消費された読み取りキャパシティユニットの数。これにより、使用されたスループットの量を追跡できます。テーブルとそのすべてのグローバルセカンダリインデックス、または特定のグローバルセカンダリインデックスの消費された読み込み容量の合計を取得できます。詳細については、「読み込み/書き込み容量モード」を参照してください。
TableName
ディメンションは、グローバルセカンダリインデックスではなくテーブルの ConsumedReadCapacityUnits
を返します。グローバルセカンダリインデックスの ConsumedReadCapacityUnits
を表示するには、TableName
と GlobalSecondaryIndexName
の両方を指定する必要があります。
注記
Amazon DynamoDB では、消費されたキャパシティのメトリクスが平均値として 1 分間隔で CloudWatch にレポートされます。つまり、キャパシティ消費量の急増が 1 秒間だけであれば、CloudWatch グラフには正確に反映されず、該当する 1 分間の消費率は低く見える可能性があります。
Sum
統計を使用して、消費されたスループットを計算します。例えば、1 分間の Sum
値を取得し、1 分間の秒数 (60) で除算して 1 秒あたりの平均 ConsumedReadCapacityUnits
を計算します。計算された値と、DynamoDB が提供するプロビジョニング済みスループット値を比較できます。
単位: Count
ディメンション: TableName, GlobalSecondaryIndexName
有効な統計:
-
Minimum
— テーブルまたはインデックスへの個々のリクエストによって消費される読み込み容量ユニットの最小数。 -
Maximum
— テーブルまたはインデックスへの個々のリクエストによって消費される読み込み容量ユニットの最大数。 -
Average
— 消費されたリクエストごとの平均読み込み容量。注記
Average
値は、サンプル値がゼロになる非活動期間によって影響を受けます。 -
Sum
— 消費された読み込み容量ユニットの合計。これは、ConsumedReadCapacityUnits
メトリクスの最も有用な統計です。 -
SampleCount
— DynamoDB への読み込みリクエストの数。読み込みキャパシティーの消費がなかった場合は 0 を返します。注記
SampleCount
値は、サンプル値がゼロになる非活動期間によって影響を受けます。
ConsumedWriteCapacityUnits
プロビジョンドキャパシティとオンデマンドキャパシティの両方について、指定された期間内に消費された書き込みキャパシティユニットの数。これにより、使用されたスループットの量を追跡できます。テーブルとそのすべてのグローバルセカンダリインデックス、または特定のグローバルセカンダリインデックスの消費された書き込み容量の合計を取得できます。詳細については、「読み込み/書き込み容量モード」を参照してください。
TableName
ディメンションは、グローバルセカンダリインデックスではなくテーブルの ConsumedWriteCapacityUnits
を返します。グローバルセカンダリインデックスの ConsumedWriteCapacityUnits
を表示するには、TableName
と GlobalSecondaryIndexName
の両方を指定する必要があります。
注記
Sum
統計を使用して、消費されたスループットを計算します。例えば、Sum
値を 1 分にわたって取得し、1 分間の秒数 (60) で除算して 1 秒あたりの平均 ConsumedWriteCapacityUnits
を計算します (この平均では 1 分の間に書き込みアクティビティで発生した大きくて短いスパイクは強調されないことを認識します)。計算された値と、DynamoDB が提供するプロビジョニング済みスループット値を比較できます。
単位: Count
ディメンション: TableName, GlobalSecondaryIndexName
有効な統計:
-
Minimum
— テーブルまたはインデックスへの個々のリクエストによって消費される書き込み容量ユニットの最小数。 -
Maximum
— テーブルまたはインデックスへの個々のリクエストによって消費される書き込み容量ユニットの最大数。 -
Average
— 消費されたリクエストごとの平均書き込み容量。注記
Average
値は、サンプル値がゼロになる非活動期間によって影響を受けます。 -
Sum
— 消費された書き込み容量ユニットの合計。これは、ConsumedWriteCapacityUnits
メトリクスの最も有用な統計です。 -
SampleCount
— DynamoDB への書き込みリクエストの数 (書き込み容量が消費されなかった場合も含まれます)。注記
SampleCount
- 値は、サンプル値がゼロになる非活動期間によって影響を受けます。
FailedToReplicateRecordCount
DynamoDB が Kinesis Data Streams にレプリケートできなかったレコードの数。
単位: Count
ディメンション: TableName
、DelegatedOperation
有効な統計:
-
Sum
MaxProvisionedTableReadCapacityUtilization
プロビジョニング済み読み込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み読み込みテーブルまたはグローバルセカンダリインデックスが使用している割合。
単位: Percent
有効な統計:
-
Maximum
– プロビジョニング済み読み込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み読み込みテーブルまたはグローバルセカンダリインデックスが使用している割合の最大値。 -
Minimum
– プロビジョニング済み読み込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み読み込みテーブルまたはグローバルセカンダリインデックスが使用している割合の最小値。 -
Average
— プロビジョニング済み書き込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み書き込みテーブルまたはグローバルセカンダリインデックスが使用している割合の平均。メトリクスは 5 分間隔で発行されます。したがって、プロビジョニング済み読み込み容量ユニットをすばやく調整すると、この統計には実際の平均が反映されないことがあります。
MaxProvisionedTableWriteCapacityUtilization
プロビジョニング済み書き込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み書き込みテーブルまたはグローバルセカンダリインデックスが使用している割合。
単位: Percent
有効な統計:
-
Maximum
— プロビジョニング済み書き込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み書き込みテーブルまたはグローバルセカンダリインデックスが使用している最大割合。 -
Minimum
— プロビジョニング済み書き込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み書き込みテーブルまたはグローバルセカンダリインデックスが使用している最小割合。 -
Average
— プロビジョニング済み書き込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み書き込みテーブルまたはグローバルセカンダリインデックスが使用している平均割合。メトリクスは 5 分間隔で発行されます。したがって、プロビジョニング済み書き込み容量ユニットをすばやく調整すると、この統計には実際の平均値が反映されないことがあります。
OnDemandMaxReadRequestUnits
テーブルまたはグローバルセカンダリインデックスに指定されたオンデマンド読み込みリクエストユニットの数。
テーブルの OnDemandMaxReadRequestUnits
を表示するには、TableName
を指定する必要があります。グローバルセカンダリインデックスの OnDemandMaxReadRequestUnits
を表示するには、TableName
と GlobalSecondaryIndexName
の両方を指定する必要があります。
単位: カウント
ディメンション: TableName
、GlobalSecondaryIndexName
有効な統計:
-
Minimum
– オンデマンド読み込みリクエストユニットの最小設定。UpdateTable
を使用して読み込みリクエストユニットを増やす場合、このメトリクスは、この期間中のオンデマンドReadRequestUnits
の最小値を示します。 -
Maximum
– オンデマンド読み込みリクエストユニットの最大設定。UpdateTable
を使用して読み込みリクエストユニットを減らす場合、このメトリクスは、この期間中のオンデマンドReadRequestUnits
の最大値を示します。 -
Average
– オンデマンド読み込みリクエストユニットの平均。OnDemandMaxReadRequestUnits
メトリクスは 5 分間隔で発行されます。したがって、オンデマンド読み込みリクエストユニットをすばやく調整すると、この統計には実際の平均が反映されないことがあります。
OnDemandMaxWriteRequestUnits
テーブルまたはグローバルセカンダリインデックスに指定されたオンデマンド書き込みリクエストユニットの数。
テーブルの OnDemandMaxWriteRequestUnits
を表示するには、TableName
を指定する必要があります。グローバルセカンダリインデックスの OnDemandMaxWriteRequestUnits
を表示するには、TableName
と GlobalSecondaryIndexName
の両方を指定する必要があります。
単位: Count
ディメンション: TableName
、GlobalSecondaryIndexName
有効な統計:
-
Minimum
– オンデマンド書き込みリクエストユニットの最小設定。UpdateTable
を使用して書き込みリクエストユニットを増やす場合、このメトリクスは、この期間中のオンデマンドWriteRequestUnits
の最小値を示します。 -
Maximum
– オンデマンド書き込みリクエストユニットの最大設定。UpdateTable
を使用して書き込みリクエストユニットを減らす場合、このメトリクスは、この期間中のオンデマンドWriteRequestUnits
の最大値を示します。 -
Average
– オンデマンド書き込みリクエストユニットの平均。OnDemandMaxWriteRequestUnits
メトリクスは 5 分間隔で発行されます。したがって、オンデマンド書き込みリクエストユニットをすばやく調整すると、この統計には実際の平均が反映されないことがあります。
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 (レガシー) のメトリクス (グローバルテーブルのみ)。1 つのレプリカテーブルに書き込まれていても、グローバルテーブル内の別のレプリカにはまだ書き込まれていない項目の更新の数。
単位: Count
ディメンション: TableName, ReceivingRegion
有効な統計:
-
Average
-
Sample Count
-
Sum
ProvisionedReadCapacityUnits
テーブルまたはグローバルセカンダリインデックスのプロビジョニング済み読み込み容量ユニットの数。TableName
ディメンションは、グローバルセカンダリインデックスではなくテーブルの ProvisionedReadCapacityUnits
を返します。グローバルセカンダリインデックスの ProvisionedReadCapacityUnits
を表示するには、TableName
と GlobalSecondaryIndexName
の両方を指定する必要があります。
単位: Count
ディメンション: TableName, GlobalSecondaryIndexName
有効な統計:
-
Minimum
— プロビジョニング済み読み込み容量の最小設定。UpdateTable
を使用して読み込み容量を増やす場合、このメトリクスは、この期間中のプロビジョニング済みReadCapacityUnits
の最小値を示します。 -
Maximum
— プロビジョニング済み読み込み容量の最大設定。UpdateTable
を使用して読み込み容量を減らす場合、このメトリクスは、この期間中のプロビジョニング済みReadCapacityUnits
の最大値を示します。 -
Average
— プロビジョニング済み読み込み容量の平均。ProvisionedReadCapacityUnits
メトリクスは 5 分間隔で発行されます。したがって、プロビジョニング済み読み込み容量ユニットをすばやく調整すると、この統計には実際の平均が反映されないことがあります。
ProvisionedWriteCapacityUnits
テーブルまたはグローバルセカンダリインデックスのプロビジョニング済み書き込み容量ユニットの数。
TableName
ディメンションは、グローバルセカンダリインデックスではなくテーブルの ProvisionedWriteCapacityUnits
を返します。グローバルセカンダリインデックスの ProvisionedWriteCapacityUnits
を表示するには、TableName
と GlobalSecondaryIndexName
の両方を指定する必要があります。
単位: Count
ディメンション: TableName, GlobalSecondaryIndexName
有効な統計:
-
Minimum
— プロビジョニング済み書き込み容量の最小設定。UpdateTable
を使用して書き込み容量を増やす場合、このメトリクスは、この期間中のプロビジョニング済みWriteCapacityUnits
の最小値を示します。 -
Maximum
— プロビジョニング済み書き込み容量の最大設定。UpdateTable
を使用して書き込み容量を減らす場合、このメトリクスは、この期間中のプロビジョニング済みWriteCapacityUnits
の最大値を示します。 -
Average
— プロビジョニング済み書き込み容量の平均。ProvisionedWriteCapacityUnits
メトリクスは 5 分間隔で発行されます。したがって、プロビジョニング済み書き込み容量ユニットをすばやく調整すると、この統計には実際の平均値が反映されないことがあります。
ReadThrottleEvents
テーブルまたはグローバルセカンダリインデックス用にプロビジョニングされた読み込み容量ユニットを超える DynamoDB へのリクエスト。
1 つのリクエストで複数のイベントが発生する可能性があります。例えば、10 の項目を読み込む BatchGetItem
は、10 個の GetItem
イベントとして処理されます。各イベントでは、そのイベントがスロットリングされている場合、ReadThrottleEvents
は 1 つ増加します。10 個すべての GetItem
がスロットリングされない限り、BatchGetItem
全体の ThrottledRequests
メトリクスは増加しません。
TableName
ディメンションは、グローバルセカンダリインデックスではなくテーブルの ReadThrottleEvents
を返します。グローバルセカンダリインデックスの ReadThrottleEvents
を表示するには、TableName
と GlobalSecondaryIndexName
の両方を指定する必要があります。
単位: Count
ディメンション: TableName, GlobalSecondaryIndexName
有効な統計:
-
SampleCount
-
Sum
ReplicationLatency
(このメトリクスは DynamoDB グローバルテーブル用です)。更新された項目が 1 つのレプリカテーブルの DynamoDB Streams に表示され、その項目がグローバルテーブルの別のレプリカに表示されるまでの経過時間。
単位: Milliseconds
ディメンション: TableName, ReceivingRegion
有効な統計:
-
Average
-
Minimum
-
Maximum
ReturnedBytes
指定した期間中に GetRecords
オペレーション (Amazon DynamoDB Streams) によって返されるバイト数。
単位: Bytes
ディメンション: Operation, StreamLabel, TableName
有効な統計:
-
Minimum
-
Maximum
-
Average
-
SampleCount
-
Sum
ReturnedItemCount
指定した期間中に Query
、Scan
、または ExecuteStatement
(選択) オペレーションによって返される項目の数。
返された項目の数は、評価された項目の数と必ずしも同じではありません。例えば、100 の項目があるテーブルまたはインデックス上の Scan
をリクエストし、15 の項目だけが返されるように結果を絞り込む FilterExpression
を指定した場合を考えてみます。この場合、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
は、次の 2 種類の異なる情報を提供できます。
-
リクエストが成功するまでの経過時間 (
Minimum
、Maximum
、Sum
、またはAverage
)。 -
成功したリクエストの数 (
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 つ増加します。例えば、グローバルセカンダリインデックスを持つテーブル内の項目を更新する場合、テーブルへの書き込みと各インデックスへの書き込みという複数のイベントが発生します。これらのイベントの 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
同じ項目に対する同時になされた要求のトランザクション競合が原因で、品目レベルの要求が拒否されました。詳細については、「DynamoDB でのトランザクション競合の処理」を参照してください。
単位: Count
ディメンション: TableName
有効な統計:
-
Sum
— トランザクションの競合により拒否された項目レベルのリクエストの数。注記
TransactWriteItems
またはTransactGetItems
への呼び出し内の項目レベルの複数のリクエストが拒否された場合、Sum
は、各項目レベルのPut
、Update
、Delete
、またはGet
リクエストに対して 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
指定された期間に HTTP 400 ステータスコードを生成する DynamoDB または Amazon DynamoDB Streams へのリクエスト。HTTP 400 は通常、無効なパラメータの組み合わせ、存在しないテーブルへの更新の試み、不正なリクエスト署名など、クライアント側のエラーを示します。
UserErrors
に関連するメトリクスをログに記録する例外の例は次のようになります。
ResourceNotFoundException
ValidationException
TransactionConflict
以下を除き、このようなイベントはすべて UserErrors
メトリクスに反映されます。
-
ProvisionedThroughputExceededException — このセクションの
ThrottledRequests
メトリクスを参照してください。 -
ConditionalCheckFailedException —このセクションの
ConditionalCheckFailedRequests
メトリクスを参照してください。
UserErrors
は、現在の AWS リージョンおよび現在の AWS アカウントの DynamoDB または Amazon DynamoDB Streams リクエストの HTTP 400 エラーの集計を表します。
単位: Count
有効な統計:
-
Sum
-
SampleCount
WriteThrottleEvents
テーブルまたはグローバルセカンダリインデックス用にプロビジョニングされた書き込み容量ユニットを超える DynamoDB へのリクエスト。
1 つのリクエストで複数のイベントが発生する可能性があります。例えば、3 つのグローバルセカンダリインデックスを持つテーブル上の PutItem
リクエストでは、テーブル書き込みと 3 つのインデックス書き込みという 4 つのイベントが発生します。各イベントでは、そのイベントがスロットリングされている場合、WriteThrottleEvents
メトリクスは 1 つ増加します。単一の PutItem
リクエストでは、いずれかのイベントがスロットリングされている場合、ThrottledRequests
も 1 つ増加します。BatchWriteItem
では、個々の PutItem
または DeleteItem
イベントがすべてスロットリングされた場合を除き、BatchWriteItem
全体の ThrottledRequests
メトリクスは増加しません。
TableName
ディメンションは、グローバルセカンダリインデックスではなくテーブルの WriteThrottleEvents
を返します。グローバルセカンダリインデックスの WriteThrottleEvents
を表示するには、TableName
と GlobalSecondaryIndexName
の両方を指定する必要があります。
単位: Count
ディメンション: TableName, GlobalSecondaryIndexName
有効な統計:
-
Sum
-
SampleCount
使用状況メトリクス
CloudWatch の使用状況メトリクスを使用して、使用状況をプロアクティブに管理することができます。これは、CloudWatch コンソールでのメトリクスの可視化、カスタムダッシュボードの作成、CloudWatch 異常検出によるアクティビティの変化の検出、使用量がしきい値に近づいたときに警告するアラームの設定などによって実現します。
DynamoDB では、これらの使用状況メトリクスをサービスクォータと統合します。CloudWatch を使用して、アカウントのサービスクォータの使用を管理できます。詳細については、「サービスクォータの視覚化とアラームの設定」を参照してください。
AccountProvisionedWriteCapacityUnits
アカウントのすべてのテーブルおよびグローバルセカンダリインデックスのプロビジョニング済み書き込みキャパシティ単位の数。
単位: Count
有効な統計:
-
Minimum
- 一定期間中のプロビジョニング済み書き込みキャパシティ単位の最小数。 -
Maximum
- 一定期間中のプロビジョニング済み書き込みキャパシティ単位の最大数。 -
Average
- 一定期間中のプロビジョニング済み書き込みキャパシティ単位の平均数
このメトリクスは 5 分間隔で発行されます。したがって、プロビジョニング済み書き込み容量ユニットをすばやく調整すると、この統計には実際の平均値が反映されないことがあります。
AccountProvisionedReadCapacityUnits
アカウントのすべてのテーブルおよびグローバルセカンダリインデックスのプロビジョニング済み読み込みキャパシティ単位の数。
単位: Count
有効な統計:
-
Minimum
- 一定期間中のプロビジョニング済み読み込みキャパシティ単位の最小数。 -
Maximum
- 一定期間中のプロビジョニング済み読み込みキャパシティ単位の最大数。 -
Average
- 一定期間中のプロビジョニング済み読み込みキャパシティ単位の平均数。
このメトリクスは 5 分間隔で発行されます。したがって、プロビジョニング済み読み込み容量ユニットをすばやく調整すると、この統計には実際の平均が反映されないことがあります。
TableCount
アカウントのアクティブなテーブルの数。
単位: Count
有効な統計:
-
Minimum
- 一定期間中のテーブルの最小数。 -
Maximum
- 一定期間中のテーブルの最大数。 -
Average
- 一定期間中のテーブルの平均数。
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 Streams オペレーションに制限することもできます。
-
GetRecords
OperationType
このディメンションは、以下のオペレーションタイプのいずれかにデータを制限します。
-
Read
-
Write
このディメンションは ExecuteTransaction
リクエストと BatchExecuteStatement
リクエストに発行されます。
Verb
このディメンションは、次の DynamoDB PartiQL 動詞のいずれかにデータを制限します。
-
Insert:
PartiQLInsert
-
Select:
PartiQLSelect
-
Update:
PartiQLUpdate
-
Delete:
PartiQLDelete
このディメンションは、ExecuteStatement
オペレーションに発行されます。
ReceivingRegion
このディメンションは、特定の AWS リージョン内にデータを制限します。これは、DynamoDB グローバルテーブル内のレプリカテーブルから生成されたメトリクスで使用されます。
StreamLabel
このディメンションは、特定のストリームラベルにデータを制限します。これは、Amazon DynamoDB Streams の GetRecords
オペレーションから送信されたメトリクスとともに使用されます。
TableName
このディメンションは、特定のテーブルにデータを制限します。この値は、現在のリージョンおよび現在の AWS アカウントの任意のテーブル名にすることができます。