メニュー
Amazon DynamoDB
開発者ガイド (API Version 2012-08-10)

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

DynamoDB を操作するとき、以下のメトリクスとディメンションが CloudWatch に送信されます。以下の手順を使用して、Amazon DynamoDB のメトリクスを表示できます。

メトリクスを表示するには (コンソール)

メトリクスはまずサービスの名前空間ごとにグループ化され、次に各名前空間内のさまざまなディメンションの組み合わせごとにグループ化されます。

  1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  2. ナビゲーションペインで メトリクスを選択します。

  3. 名前空間に [DynamoDB] を選択します。

メトリクスを表示するには (CLI)

  • コマンドプロンプトで、次のコマンドを使用します。

    Copy
    aws cloudwatch list-metrics --namespace "AWS/DynamoDB"

CloudWatch では、Amazon DynamoDB の以下のメトリクスが表示されます。

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

Amazon DynamoDB が Amazon CloudWatch に送信するメトリクスおよびディメンションは次のとおりです。

DynamoDB メトリクス

次のメトリクスは Amazon DynamoDB から入手できます。DynamoDB は、ゼロ以外の値を持つメトリクスのみを CloudWatch に送信します。たとえば、UserErrors メトリクスは、リクエストが HTTP 400 ステータスコードを生成するたびに増分されます。その期間に HTTP 400 エラーが発生しなかった場合、期間中に CloudWatch は UserErrors のメトリクスを提供しません。

注記

Amazon CloudWatch は 1 分間隔で次の DynamoDB メトリクスを集計します。

  • ConditionalCheckFailedRequests

  • ConsumedReadCapacityUnits

  • ConsumedWriteCapacityUnits

  • ReadThrottleEvents

  • ReturnedBytes

  • ReturnedItemCount

  • ReturnedRecordsCount

  • SuccessfulRequestLatency

  • SystemErrors

  • TimeToLiveDeletedItemCount

  • ThrottledRequests

  • UserErrors

  • WriteThrottleEvents

他のすべての DynamoDB メトリクスについて、集計の詳細度は 5 分です。

AverageSum など、すべての統計が必ずしも常にすべてのメトリクスに適用可能であるとは限りません。ただし、これらの値はすべて Amazon DynamoDB コンソール経由で利用できます。または CloudWatch コンソール、AWS CLI、AWS SDK を使用してすべてのメトリクスを利用できます。次の表は、各メトリクスに適用可能な有効な統計のリストを示します。

メトリクス 説明
ConditionalCheckFailedRequests

条件付き書き込みに失敗した回数。PutItemUpdateItem、および DeleteItem オペレーションは、オペレーションの実行前に true と評価される必要のある理論条件の提供を可能にします。この条件が false と評価された場合、ConditionalCheckFailedRequests は 1 ずつ増加します。

注記

条件付き書き込みが失敗すると、HTTP 400 エラー (Bad Request) が発生します。これらのイベントは、ConditionalCheckFailedRequests メトリクスに反映されますが、UserErrors メトリクスには反映されません。

単位: Count

ディメンション: TableName

有効な統計:

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

ConsumedReadCapacityUnits

指定の期間内に消費された読み取り容量ユニットの数。これにより、どれだけのプロビジョンドスループットが使用されたかをトラックすることができます。テーブル、すべてのグローバルセカンダリインデックス、または特定のグローバルセカンダリインデックスで消費された読み取り容量の合計を取得できます。詳細については、Provisioned Throughput in Amazon DynamoDB を参照してください。

注記

Sum の統計を使用して、使用したスループットを算出します。たとえば、1 分間の Sum の値を取得し、1 分間の秒数 (60) で除算して、1 秒あたりの平均 ConsumedReadCapacityUnits を算出します (この平均によって、その 1 分間に発生した読み込みアクティビティでの、大幅であっても短い急増は明らかになりません)。その算出した値を DynamoDB に指定したプロビジョンドスループットの値と比較できます。

単位: Count

ディメンション: TableName, GlobalSecondaryIndexName

有効な統計:

  • Minimum – テーブルまたはインデックスへの個別のリクエストによって消費される読み込みキャパシティーユニットの最小数。

  • Maximum – テーブルまたはインデックスへの個別のリクエストによって消費される読み込みキャパシティーユニットの最大数。

  • Average – 消費されたリクエストごとの平均読み込みキャパシティー。

  • Sum – 消費された合計読み込みキャパシティーユニット数。これは ConsumedReadCapacityUnits メトリクスで最も有用な統計です。

  • SampleCount – 読み込みキャパシティーを消費した、DynamoDB へのリクエスト数。

ConsumedWriteCapacityUnits

指定の期間内に消費された書き込み容量ユニットの数。これにより、どれだけのプロビジョンドスループットが使用されたかをトラックすることができます。テーブル、すべてのグローバルセカンダリインデックス、または特定のグローバルセカンダリインデックスで消費された書き込み容量の合計を取得できます。詳細については、Provisioned Throughput in Amazon DynamoDB を参照してください。

注記

Sum の統計を使用して、使用したスループットを算出します。たとえば、1 分間の Sum の値を取得し、1 分間の秒数 (60) で除算して、1 秒あたりの平均 ConsumedWriteCapacityUnits を算出します (この平均によって、その 1 分間に発生した書き込みアクティビティでの、大幅であっても短い急増は明らかになりません)。その算出した値を DynamoDB に指定したプロビジョンドスループットの値と比較できます。

単位: Count

ディメンション: TableName, GlobalSecondaryIndexName

有効な統計:

  • Minimum – テーブルまたはインデックスへの個別のリクエストによって消費される書き込みキャパシティーユニットの最小数。

  • Maximum – テーブルまたはインデックスへの個別のリクエストによって消費される書き込みキャパシティーユニットの最大数。

  • Average – 消費されたリクエストごとの平均書き込みキャパシティー。

  • Sum – 消費された合計書き込みキャパシティーユニット数。これは ConsumedWriteCapacityUnits メトリクスで最も有用な統計です。

  • SampleCount – 書き込みキャパシティーを消費した、DynamoDB へのリクエスト数。

OnlineIndexConsumedWriteCapacity

新しいグローバルセカンダリインデックスがテーブルに追加される際に消費された書き込み容量ユニットの数。インデックスの書き込み容量が小さすぎる場合は、バックフィルフェーズ中の受信書き込みアクティビティは調整される可能性があり、これによりインデックスの作成にかかる時間が長くなる場合があります。インデックスの書き込み容量がプロビジョニング不足かどうかを判断するには、インデックスの構築中に、この統計を監視する必要があります。

インデックスの構築中であっても、UpdateTable 操作を使用して、インデックスの書き込み容量を調整することができます。

インデックスの作成中に消費された書き込みスループットは、インデックスの ConsumedWriteCapacityUnits メトリクスに含まれません。

単位: Count

ディメンション: TableName, GlobalSecondaryIndexName

有効な統計:

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

OnlineIndexPercentageProgress

新しいグローバルセカンダリインデックスがテーブルに追加される際の完了率。DynamoDB は、まず新しいインデックスのリソースを割り当て、次にテーブルからインデックスに属性をバックフィルする必要があります。大きなテーブルの場合、このプロセスに長時間かかる場合があります。DynamoDB によるインデックスの構築時に相対的な進捗状況を確認するには、この統計を監視する必要があります。

単位: Count

ディメンション: TableName, GlobalSecondaryIndexName

有効な統計:

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

OnlineIndexThrottleEvents

新しいグローバルセカンダリインデックスがテーブルに追加される際に発生した書き込み調整イベントの数。これらのイベントの発生は、インデックス作成の完了に長い時間がかかることを示しています。受信書き込みアクティビティが、インデックスに対してプロビジョニングされた書き込みスループットを超えているためです。

インデックスの構築中であっても、UpdateTable 操作を使用して、インデックスの書き込み容量を調整することができます。

インデックスの作成中に発生した調整イベントは、インデックスの WriteThrotttleEvents メトリクスに含まれません。

単位: Count

ディメンション: TableName, GlobalSecondaryIndexName

有効な統計:

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

ProvisionedReadCapacityUnits

テーブルまたはグローバルセカンダリインデックスのプロビジョニングされた読み取り容量ユニットの数。

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

単位: Count

ディメンション: TableName, GlobalSecondaryIndexName

有効な統計:

  • Minimum – プロビジョニングされた読み込みキャパシティーの最も低い設定。UpdateTable を使用して読み込みキャパシティーを引き上げる場合、このメトリクスは、この期間中にプロビジョニングされた ReadCapacityUnits の最も低い値を示します。

  • Maximum – プロビジョニングされた読み込みキャパシティーの最も高い設定。UpdateTable を使用して読み込みキャパシティーを引き下げる場合、このメトリクスは、この期間中にプロビジョニングされた ReadCapacityUnits の最も高い値を示します。

  • Average – プロビジョニングされた平均読み込みキャパシティー。ProvisionedReadCapacityUnits メトリクスは 5 分間隔でパブリッシュされます。そのため、プロビジョニングされた読み込みキャパシティーユニットを急速に調整すると、この統計には正しい平均が反映されない場合があります。

ProvisionedWriteCapacityUnits

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

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

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

単位: Count

ディメンション: TableName, GlobalSecondaryIndexName

有効な統計:

  • SampleCount

  • Sum

ReturnedBytes

指定された期間中に GetRecords オペレーション (Amazon DynamoDB Streams) で返されたバイト数。

単位: Bytes

ディメンション: Operation, StreamLabel, TableName

有効な統計:

  • Minimum

  • Maximum

  • Average

  • SampleCount

  • Sum

ReturnedItemCount

指定された期間中に Query または Scan オペレーションで返された項目の数。

返された項目の数は、評価された項目の数と必ずしも同じではありません。たとえば、100 個の項目が存在していたテーブルで Scan をリクエストしたが、結果を絞り込む FilterExpression を指定したため、15 個の項目のみが返されたとします。この場合、Scan からのレスポンスには、ScanCount として 100 個、Count として 15 個の返された項目が含まれます。

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

有効な統計:

  • Minimum

  • Maximum

  • Average

  • SampleCount

SystemErrors

指定された期間中に HTTP 500 ステータスコードを生成する、DynamoDB または Amazon DynamoDB Streams へのリクエスト。通常、HTTP 500 は内部サービスエラーを示します。

単位: Count

ディメンション: すべてのディメンション

有効な統計:

  • Sum

  • SampleCount

TimeToLiveDeletedItemCount

指定した期間中に Time To Live (TTL) で削除された項目の数。このメトリクスにより、テーブルでの TTL による削除のレートをモニタリングできます。

単位: Count

ディメンション: TableName

有効な統計:

  • Sum

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

UserErrors

指定された期間中に HTTP 400 ステータスコードを生成する、DynamoDB または Amazon DynamoDB Streams へのリクエスト。通常、HTTP 400 は、パラメーターの無効な組み合わせ、存在しないテーブルの更新の試み、不正なリクエスト署名などのクライアント側エラーを示します。

このようなイベントは、以下を除き、UserErrors メトリクスにすべて反映されます。

  • ProvisionedThroughputExceededException – このセクションの ThrottledRequests メトリクスを参照してください。

  • ConditionalCheckFailedException – このセクションの ConditionalCheckFailedRequests メトリクスを参照してください。

UserErrors は、現在のリージョンおよび現在の 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 イベントが抑制された場合を除いて、全体の BatchWriteItemThrottledRequests メトリクスは増加しません。

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

単位: Count

ディメンション: TableName, GlobalSecondaryIndexName

有効な統計:

  • Sum

  • SampleCount

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

DynamoDB のメトリクスは、アカウント、グローバルセカンダリインデックス名、操作などの値で修飾されます。CloudWatch コンソールを使用して、DynamoDB データ、および下表に示すいずれかのディメンションを取得できます。

ディメンション 説明
GlobalSecondaryIndexName

このディメンションは、テーブルのグローバルセカンダリインデックスにデータを制限します。GlobalSecondaryIndexName を指定する場合は、TableName も指定する必要があります。

Operation

このディメンションは、次のいずれかの DynamoDB オペレーションにデータを制限します。

  • PutItem

  • DeleteItem

  • UpdateItem

  • GetItem

  • BatchGetItem

  • Scan

  • Query

  • BatchWriteItem

さらに、次の Amazon DynamoDB Streams オペレーションにデータを制限できます。

  • GetRecords

StreamLabel

このディメンションは、特定のストリームラベルにデータを制限します。これは、Amazon DynamoDB Streams GetRecords オペレーションからのメトリクスで使用します。

TableName

このディメンションは、特定のテーブルにデータを制限します。この値は、現在のリージョンおよび現在の AWS アカウントの任意のテーブル名とすることができます。