DynamoDB のメトリクスとディメンション
DynamoDB を操作すると、メトリクスとディメンションが CloudWatch に送信されます。
DynamoDB は、消費されたプロビジョンドスループットを 1 分間出力します。消費したキャパシティが、設定したターゲット使用率を 2 分間連続して超過すると、自動スケーリングがトリガーされます。CloudWatch アラームは、自動スケーリングをトリガーする前に、最大数分の短い遅延を伴う場合があります。この遅延により、CloudWatch メトリクスの正確な評価が保証されます。消費されたスループットのスパイク間隔が 1 分を超えると、自動スケーリングはトリガーされない場合があります。同様に、15 個の連続するデータポイントがターゲット使用率を下回ると、スケールダウンイベントが発生する場合があります。いずれの場合も、自動スケーリングのトリガー後に、UpdateTable API が呼び出されます。テーブルやインデックスのプロビジョンドキャパシティの更新には、数分かかる場合があります。この間に、テーブルの前のプロビジョンドキャパシティを超えるリクエストはスロットリングされます。
メトリクスおよびディメンションの表示
CloudWatch は、以下の DynamoDB のメトリクスを表示します。
DynamoDB のメトリクス
注記
Amazon CloudWatch は 1 分間隔でこれらのメトリクスを集計します。
-
ConditionalCheckFailedRequests -
ConsumedReadCapacityUnits -
ConsumedWriteCapacityUnits -
ReadAccountLimitThrottleEvents -
ReadKeyRangeThroughputThrottleEvents -
ReadMaxOnDemandThroughputThrottleEvents -
ReadProvisionedThroughputThrottleEvents -
ReadThrottleEvents -
ReturnedBytes -
ReturnedItemCount -
ReturnedRecordsCount -
SuccessfulRequestLatency -
SystemErrors -
TimeToLiveDeletedItemCount -
ThrottledRequests -
TransactionConflict -
UserErrors -
WriteAccountLimitThrottleEvents -
WriteKeyRangeThroughputThrottleEvents -
WriteMaxOnDemandThroughputThrottleEvents -
WriteProvisionedThroughputThrottleEvents -
WriteThrottleEvents
その他のすべての DynamoDB メトリクスでは、集計の間隔は 5 分です。
Average や Sum など、すべての統計が必ずしも常にすべてのメトリクスに適用可能であるとは限りません。ただし、これらの値はすべて Amazon DynamoDB コンソール経由で利用できます。また、すべてのメトリクスで CloudWatch コンソール、AWS CLI、AWS SDK を使用することによっても利用できます。
次のリストは、各メトリクスに適用可能な有効な統計のセットを示します。
利用可能なメトリクスのリスト
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 の両方を指定する必要があります。
注記
つまり、キャパシティ消費量の急増が 1 秒間だけであれば、CloudWatch グラフには正確に反映されず、該当する 1 分間の消費率は低く見える可能性があります。
Sum 統計を使用して、消費されたスループットを計算します。例えば、1 分間の Sum 値を取得し、1 分間の秒数 (60) で除算して 1 秒あたりの平均 ConsumedReadCapacityUnits を計算します。計算された値と、DynamoDB が提供するプロビジョニング済みスループット値を比較できます。
単位: Count
ディメンション: TableName, GlobalSecondaryIndexName
有効な統計:
-
Minimum— テーブルまたはインデックスへの個々のリクエストによって消費される読み込み容量ユニットの最小数。 -
Maximum— テーブルまたはインデックスへの個々のリクエストによって消費される読み込み容量ユニットの最大数。 -
Average— 消費されたリクエストごとの平均読み込み容量。注記
Average値は、サンプル値がゼロになる非活動期間によって影響を受けます。 -
Sum— 消費された読み込み容量ユニットの合計。これは、ConsumedReadCapacityUnitsメトリクスの最も有用な統計です。 -
SampleCount– メトリクスが出力される頻度を表します。トラフィックがゼロのテーブルでも、SampleCountは定期的に出力されます。ただし、サンプル値は常にゼロになります。注記
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– メトリクスが出力される頻度を表します。トラフィックがゼロのテーブルでも、SampleCountは定期的に出力されます。ただし、サンプル値は常にゼロになります。注記
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 分間隔で発行されます。したがって、プロビジョニング済み書き込み容量ユニットをすばやく調整すると、この統計には実際の平均値が反映されないことがあります。
ReadAccountLimitThrottleEvents
アカウント制限によりスロットリングされた読み取りリクエストの数。
単位: Count
ディメンション: TableName、GlobalSecondaryIndexName
有効な統計:
-
Sum– スロットリングされたイベントの合計数。 -
SampleCount– スロットリングの発生回数。 -
Minimum– 任意のサンプル内のスロットリングされたイベントの最小数。 -
Maximum– 任意のサンプル内のスロットリングされたイベントの最大数。
ReadKeyRangeThroughputThrottleEvents
パーティションの制限によりスロットリングされた読み取りリクエストの数。
単位: Count
ディメンション: TableName、GlobalSecondaryIndexName
有効な統計:
-
Sum– スロットリングされたイベントの合計数。 -
SampleCount– スロットリングの発生回数。 -
Minimum– 任意のサンプル内のスロットリングされたイベントの最小数。 -
Maximum– 任意のサンプル内のスロットリングされたイベントの最大数。
ReadMaxOnDemandThroughputThrottleEvents
オンデマンドの最大スループットによってスロットリングされた読み取りリクエストの数。
単位: Count
ディメンション: TableName、GlobalSecondaryIndexName
有効な統計:
-
Sum– スロットリングされたイベントの合計数。 -
SampleCount– スロットリングの発生回数。 -
Minimum– 任意のサンプル内のスロットリングされたイベントの最小数。 -
Maximum– 任意のサンプル内のスロットリングされたイベントの最大数。
ReadProvisionedThroughputThrottleEvents
プロビジョニングされたスループット制限によってスロットリングされた読み取りリクエストの数。
単位: Count
ディメンション: TableName、GlobalSecondaryIndexName
有効な統計:
-
Sum– スロットリングされたイベントの合計数。 -
SampleCount– スロットリングの発生回数。 -
Minimum– 任意のサンプル内のスロットリングされたイベントの最小数。 -
Maximum– 任意のサンプル内のスロットリングされたイベントの最大数。
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、またはPercentile)。 -
成功したリクエストの数 (
SampleCount)。
SuccessfulRequestLatency は DynamoDB または Amazon DynamoDB Streams 内のアクティビティのみを反映し、ネットワークレイテンシーやクライアント側のアクティビティは考慮されません。
注記
カスタムパーセンタイル値 (p99.9 など) を分析するには、CloudWatch メトリクス統計フィールドに目的のパーセンタイル (p99.9 など) を手動で入力できます。これにより、ドロップダウンに表示されるデフォルトのパーセンタイルを超えるレイテンシー分布を評価できます。
単位: Milliseconds
ディメンション: TableName, Operation, StreamLabel
有効な統計:
-
Minimum -
Maximum -
Sum -
Average -
Percentile -
SampleCount
SystemErrors
指定された期間に HTTP 500 ステータスコードを生成する DynamoDB または Amazon DynamoDB Streams へのリクエスト。HTTP 500 は通常、内部サービスエラーを示します。
注記
DynamoDB がシステムエラー (HTTP 500) を返すと、ほとんどの AWS SDK は設定可能な回数の再試行を自動的に実行します。再試行中に問題が解決した場合、アプリケーションはエラーを表示せずに続行しますが、クライアント側でレイテンシーの増加が認識されることがあります。すべての再試行後もエラーが解決しない場合は、アプリケーションコードに伝播されます。
単位: 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
WriteAccountLimitThrottleEvents
アカウント制限によりスロットリングされた書き込みリクエストの数。
単位: Count
ディメンション: TableName
有効な統計:
-
Sum– スロットリングされたイベントの合計数。 -
SampleCount– スロットリングの発生回数。 -
Minimum– 任意のサンプル内のスロットリングされたイベントの最小数。 -
Maximum– 任意のサンプル内のスロットリングされたイベントの最大数。
WriteKeyRangeThroughputThrottleEvents
パーティションの制限によりスロットリングされた書き込みリクエストの数。
単位: Count
ディメンション: TableName、GlobalSecondaryIndexName
有効な統計:
-
Sum– スロットリングされたイベントの合計数。 -
SampleCount– スロットリングの発生回数。 -
Minimum– 任意のサンプル内のスロットリングされたイベントの最小数。 -
Maximum– 任意のサンプル内のスロットリングされたイベントの最大数。
WriteMaxOnDemandThroughputThrottleEvents
オンデマンドの最大スループットによってスロットリングされた書き込みリクエストの数。
単位: Count
ディメンション: TableName、GlobalSecondaryIndexName
有効な統計:
-
Sum– スロットリングされたイベントの合計数。 -
SampleCount– スロットリングの発生回数。 -
Minimum– 任意のサンプル内のスロットリングされたイベントの最小数。 -
Maximum– 任意のサンプル内のスロットリングされたイベントの最大数。
WriteProvisionedThroughputThrottleEvents
プロビジョニングされたスループット制限によってスロットリングされた書き込みリクエストの数。
単位: Count
ディメンション: TableName、GlobalSecondaryIndexName
有効な統計:
-
Sum– スロットリングされたイベントの合計数。 -
SampleCount– スロットリングの発生回数。 -
Minimum– 任意のサンプル内のスロットリングされたイベントの最小数。 -
Maximum– 任意のサンプル内のスロットリングされたイベントの最大数。
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 アカウントの任意のテーブル名にすることができます。