DynamoDB のメトリクスとディメンション - Amazon DynamoDB

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 分です。

AverageSum など、すべての統計が必ずしも常にすべてのメトリクスに適用可能であるとは限りません。ただし、これらの値はすべて 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.

条件チェックが失敗したリクエスト

条件付き書き込みの実行に失敗した回数。PutItemUpdateItem、および 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 を表示するには、TableNameGlobalSecondaryIndexName の両方を指定する必要があります。

注記

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 を表示するには、TableNameGlobalSecondaryIndexName の両方を指定する必要があります。

注記

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

ディメンション: TableNameDelegatedOperation

有効な統計:

  • Sum

MaxProvisionedTableReadCapacityUtilization

プロビジョニング済み読み込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み読み込みテーブルまたはグローバルセカンダリインデックスが使用している割合。

単位: Percent

有効な統計:

  • Maximum – プロビジョニング済み読み込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み読み込みテーブルまたはグローバルセカンダリインデックスが使用している割合の最大値。

  • Minimum – プロビジョニング済み読み込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み読み込みテーブルまたはグローバルセカンダリインデックスが使用している割合の最小値。

  • Average — プロビジョニング済み書き込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み書き込みテーブルまたはグローバルセカンダリインデックスが使用している割合の平均。メトリクスは 5 分間隔で発行されます。したがって、プロビジョニング済み読み込み容量ユニットをすばやく調整すると、この統計には実際の平均が反映されないことがあります。

MaxProvisionedTableWriteCapacityUtilization

プロビジョニング済み書き込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み書き込みテーブルまたはグローバルセカンダリインデックスが使用している割合。

単位: Percent

有効な統計:

  • Maximum — プロビジョニング済み書き込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み書き込みテーブルまたはグローバルセカンダリインデックスが使用している最大割合。

  • Minimum — プロビジョニング済み書き込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み書き込みテーブルまたはグローバルセカンダリインデックスが使用している最小割合。

  • Average — プロビジョニング済み書き込み容量ユニットのうち、アカウントの最も高いプロビジョニング済み書き込みテーブルまたはグローバルセカンダリインデックスが使用している平均割合。メトリクスは 5 分間隔で発行されます。したがって、プロビジョニング済み書き込み容量ユニットをすばやく調整すると、この統計には実際の平均値が反映されないことがあります。

OnDemandMaxReadRequestUnits

テーブルまたはグローバルセカンダリインデックスに指定されたオンデマンド読み込みリクエストユニットの数。

テーブルの OnDemandMaxReadRequestUnits を表示するには、TableName を指定する必要があります。グローバルセカンダリインデックスの OnDemandMaxReadRequestUnits を表示するには、TableNameGlobalSecondaryIndexName の両方を指定する必要があります。

単位: カウント

ディメンション: TableNameGlobalSecondaryIndexName

有効な統計:

  • Minimum – オンデマンド読み込みリクエストユニットの最小設定。UpdateTable を使用して読み込みリクエストユニットを増やす場合、このメトリクスは、この期間中のオンデマンド ReadRequestUnits の最小値を示します。

  • Maximum – オンデマンド読み込みリクエストユニットの最大設定。UpdateTable を使用して読み込みリクエストユニットを減らす場合、このメトリクスは、この期間中のオンデマンド ReadRequestUnits の最大値を示します。

  • Average – オンデマンド読み込みリクエストユニットの平均。OnDemandMaxReadRequestUnits メトリクスは 5 分間隔で発行されます。したがって、オンデマンド読み込みリクエストユニットをすばやく調整すると、この統計には実際の平均が反映されないことがあります。

OnDemandMaxWriteRequestUnits

テーブルまたはグローバルセカンダリインデックスに指定されたオンデマンド書き込みリクエストユニットの数。

テーブルの OnDemandMaxWriteRequestUnits を表示するには、TableName を指定する必要があります。グローバルセカンダリインデックスの OnDemandMaxWriteRequestUnits を表示するには、TableNameGlobalSecondaryIndexName の両方を指定する必要があります。

単位: Count

ディメンション: TableNameGlobalSecondaryIndexName

有効な統計:

  • 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 を表示するには、TableNameGlobalSecondaryIndexName の両方を指定する必要があります。

単位: Count

ディメンション: TableName, GlobalSecondaryIndexName

有効な統計:

  • Minimum — プロビジョニング済み読み込み容量の最小設定。UpdateTable を使用して読み込み容量を増やす場合、このメトリクスは、この期間中のプロビジョニング済み ReadCapacityUnits の最小値を示します。

  • Maximum — プロビジョニング済み読み込み容量の最大設定。UpdateTable を使用して読み込み容量を減らす場合、このメトリクスは、この期間中のプロビジョニング済み ReadCapacityUnits の最大値を示します。

  • Average — プロビジョニング済み読み込み容量の平均。ProvisionedReadCapacityUnits メトリクスは 5 分間隔で発行されます。したがって、プロビジョニング済み読み込み容量ユニットをすばやく調整すると、この統計には実際の平均が反映されないことがあります。

ProvisionedWriteCapacityUnits

テーブルまたはグローバルセカンダリインデックスのプロビジョニング済み書き込み容量ユニットの数。

TableName ディメンションは、グローバルセカンダリインデックスではなくテーブルの ProvisionedWriteCapacityUnits を返します。グローバルセカンダリインデックスの ProvisionedWriteCapacityUnits を表示するには、TableNameGlobalSecondaryIndexName の両方を指定する必要があります。

単位: 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 を表示するには、TableNameGlobalSecondaryIndexName の両方を指定する必要があります。

単位: 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

指定した期間中に QueryScan、または 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 種類の異なる情報を提供できます。

  • リクエストが成功するまでの経過時間 (MinimumMaximumSum、または 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 は、バッチ内のリクエストがスロットリングされた場合にのみ増加します。

バッチ内の個々のリクエストがスロットリングされると、次のいずれかのメトリクスが増加します。

  • ReadThrottleEventsBatchGetItem 内のスロットリングされた GetItem イベント。

  • WriteThrottleEventsBatchWriteItem 内のスロットリングされた PutItem または DeleteItem

どのイベントがリクエストをスロットリングしているかについてのインサイトを取得するには、ThrottledRequests とテーブルおよびそのインデックスの ReadThrottleEventsWriteThrottleEvents を比較します。

注記

スロットリングされたリクエストは HTTP 400 ステータスコードになります。このようなイベントはすべて、ThrottledRequests メトリクスに反映されますが、UserErrors メトリクスには反映されません。

単位: Count

ディメンション: TableName, Operation

有効な統計:

  • Sum

  • SampleCount

TransactionConflict

同じ項目に対する同時になされた要求のトランザクション競合が原因で、品目レベルの要求が拒否されました。詳細については、「DynamoDB でのトランザクション競合の処理」を参照してください。

単位: Count

ディメンション: TableName

有効な統計:

  • Sum — トランザクションの競合により拒否された項目レベルのリクエストの数。

    注記

    TransactWriteItems または TransactGetItems への呼び出し内の項目レベルの複数のリクエストが拒否された場合、Sum は、各項目レベルの PutUpdateDelete、または Get リクエストに対して 1 つ増加します。

  • SampleCount — トランザクションの競合により拒否されたリクエストの数。

    注記

    TransactWriteItems または TransactGetItems への呼び出し内の項目レベルの複数のリクエストが拒否された場合、SampleCount が 1 つだけ増加します。

  • MinTransactWriteItemsTransactGetItemsPutItemUpdateItem、または DeleteItem に対する呼び出し内で拒否された項目レベルのリクエストの最小数。

  • MaxTransactWriteItemsTransactGetItemsPutItemUpdateItem、または DeleteItem に対する呼び出し内で拒否された項目レベルのリクエストの最大数。

  • AverageTransactWriteItemsTransactGetItemsPutItemUpdateItem、または 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 を表示するには、TableNameGlobalSecondaryIndexName の両方を指定する必要があります。

単位: 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 アカウントの任意のテーブル名にすることができます。