Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

DynamoDBのメトリクスについて調べてみた

f:id:overworker:20200812002527p:plain:h150

各種AWSサービスの利用状況をAWS CloudWatchのメトリクスでグラフ化したときのメモです。
AWSのサイトだとアルファベット順でソートされていそうですが、少し読みづらいので自分なりにソートしてみました。

単位:Count

AccountMaxReads

アカウントで使用できる読み取りキャパシティーユニットの最大数。この制限は、オンデマンドテーブルまたはグローバルセカンダリインデックスには適用されません。

有効な統計:

Maximum – アカウントで使用できる読み取りキャパシティーユニットの最大数。

AccountMaxWrites

アカウントで使用できる書き込みキャパシティーユニットの最大数。この制限は、オンデマンドテーブルまたはグローバルセカンダリインデックスには適用されません。

有効な統計:

Maximum – アカウントで使用できる書き込みキャパシティーユニットの最大数。

AccountMaxTableLevelReads

アカウントのテーブルまたはグローバルセカンダリインデックスで使用できる読み取りキャパシティーユニットの最大数。オンデマンドテーブルの場合は、この制限により、テーブルまたはグローバルセカンダリインデックスが使用できる最大読み取りリクエスト単位が制限されます。

有効な統計:

Maximum – アカウントのテーブルまたはグローバルセカンダリインデックスで使用できる読み取りキャパシティーユニットの最大数。

AccountMaxTableLevelWrites

アカウントのテーブルまたはグローバルセカンダリインデックスで使用できる書き込みキャパシティーユニットの最大数。オンデマンドテーブルの場合は、この制限により、テーブルまたはグローバルセカンダリインデックスが使用できる最大書き込みリクエストのユニットが制限されます。

有効な統計:

Maximum – アカウントのテーブルまたはグローバルセカンダリインデックスで使用できる書き込みキャパシティーユニットの最大数。

ConsumedReadCapacityUnits

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

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

ディメンション

  • TableName、GlobalSecondaryIndexName

有効な統計:

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

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

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

注記 Average 値は、サンプル値がゼロになるアイドル状態の期間によって影響を受けます。

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

SampleCount – DynamoDB へのリクエスト数 (読み込みキャパシティーを消費していない場合でも関係ありません)。

注記 SampleCount 値は、サンプル値がゼロになるアイドル状態の期間によって影響を受けます。

ConsumedWriteCapacityUnits

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

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

ディメンション

  • TableName、GlobalSecondaryIndexName

有効な統計:

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

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

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

注記 Average 値は、サンプル値がゼロになるアイドル状態の期間によって影響を受けます。

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

SampleCount – DynamoDB へのリクエスト数 (書き込みキャパシティーを消費していない場合でも関係ありません)。

注記 SampleCount 値は、サンプル値がゼロになるアイドル状態の期間によって影響を受けます。

ProvisionedReadCapacityUnits

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

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

ディメンション

  • TableName、GlobalSecondaryIndexName

有効な統計

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

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

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

ProvisionedWriteCapacityUnits

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

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

ディメンション

  • 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 と GlobalSecondaryIndex の両方を指定する必要があります。

ディメンション

  • TableName、GlobalSecondaryIndexName

有効な統計

  • SampleCount、Sum

WriteThrottleEvents

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

  • 1 つの リクエストで複数のイベントが発生する場合があります。たとえば、3 つの任意のグローバルセカンダリインデックスを持つテーブルの PutItem リクエストから、テーブルへの書き込みと、3 つのインデックスへの書き込みという 4 つのイベントが発生します。イベントが調整されると、そのイベントの WriteThrottleEvents メトリクスは 1 ずつ増加します。いずれかのイベントが調整された場合には、各 PutItem リクエストにおいて ThrottledRequests も 1 ずつ増加します。BatchWriteItem においては、すべての ThrottledRequests あるいは BatchWriteItem イベントが抑制された場合を除いて、全体の PutItem の DeleteItem メトリクスは増加しません。

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

ディメンション

  • TableName、GlobalSecondaryIndexName

有効な統計

  • Sum、SampleCount

ConsumedChangeDataCaptureUnits

消費された変更データキャプチャユニットの数。

ディメンション

  • TableName、DelegatedOperation

有効な統計

  • Minimum、Maximum、Average

OnlineIndexConsumedWriteCapacity

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

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

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

ディメンション

  • TableName、GlobalSecondaryIndexName

有効な統計

  • Minimum、Maximum、Average、SampleCount、Sum

OnlineIndexPercentageProgress

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

ディメンション

  • TableName、GlobalSecondaryIndexName

有効な統計

  • Minimum、Maximum、Average、SampleCount、Sum

OnlineIndexThrottleEvents

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

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

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

ディメンション

  • TableName、GlobalSecondaryIndexName

有効な統計

  • Minimum、Maximum、Average、SampleCount、Sum

PendingReplicationCount

(このメトリクスは DynamoDB グローバルテーブル用です。) 1 つのレプリカテーブルに書き込まれるが、グローバルテーブルの他のレプリカにはまだ書き込まれていない項目の更新数。

ディメンション

  • TableName、ReceivingRegion

有効な統計

  • Average、Sample Count、Sum、

ReturnedItemCount

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

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

ディメンション

  • TableName、Operation

有効な統計

  • Minimum、Maximum、Average、SampleCount、Sum

ReturnedRecordsCount

指定された期間中に、GetRecords オペレーション (DynamoDB ストリーム) で返されたストリームレコードの数。

ディメンション

  • Operation、StreamLabel、TableName

有効な統計

  • Minimum、Maximum、Average、SampleCount、Sum

TimeToLiveDeletedItemCount

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

ディメンション

  • TableName

有効な統計

  • Sum

ThrottledPutRecordCount

  • Kinesis Data Stream の容量不足で Kinesis データストリームにレプリケートできなかったレコードの数。

ディメンション

  • 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 メトリクスには反映されません。

ディメンション

  • TableName、Operation

有効な統計

  • Sum、SampleCount

TransactionConflict

ディメンション

  • 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 の呼び出しで拒否された項目レベルのリクエストの平均数。

ConditionalCheckFailedRequests

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

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

ディメンション

  • TableName

有効な統計

  • Minimum、Maximum、Average、SampleCount、Sum

SystemErrors

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

ディメンション

  • TableName、Operation

有効な統計

  • Sum、SampleCount

UserErrors

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

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

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

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

    • UserErrors は、現在の AWS リージョンおよび現在の AWS アカウントへの DynamoDB または DynamoDB ストリームリクエストに関する HTTP 400 エラーの集計を表します。

有効な統計:

  • Sum、SampleCount

単位:Percent

AccountProvisionedReadCapacityUtilization

アカウントが使用する、プロビジョニングされた読み取りキャパシティーユニットの割合 (%)。

有効な統計:

Maximum – アカウントが使用する、プロビジョニングされた読み取りキャパシティーユニットの最大の割合 (%)。

Minimum – アカウントが使用する、プロビジョニングされた読み取りキャパシティーユニットの最小の割合 (%)。

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

AccountProvisionedWriteCapacityUtilization

アカウントが使用する、プロビジョニングされた書き込みキャパシティーユニットの割合 (%)。

有効な統計:

Maximum – アカウントが使用する、プロビジョニングされた書き込みキャパシティーユニットの最大の割合 (%)。

Minimum – アカウントが使用する、プロビジョニングされた書き込みキャパシティーユニットの最小の割合 (%)。

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

MaxProvisionedTableReadCapacityUtilization

アカウントの最も高いプロビジョニングされた読み取りテーブルまたはグローバルセカンダリインデックスによって使用される、プロビジョニングされた読み取りキャパシティーユニットの割合 (%)。

有効な統計:

Maximum – アカウントの最も高いプロビジョニングされた読み取りテーブルによって使用される、プロビジョニングされた読み取りキャパシティーユニットの最大の割合 (%)。

Minimum – アカウントの最も高いプロビジョニングされた読み取りテーブルによって使用される、プロビジョニングされた読み取りキャパシティーユニットの最小の割合 (%)。

Average – アカウントの最も高いプロビジョニングされた読み取りテーブルによって使用される、プロビジョニングされた読み取りキャパシティーユニットの平均比率 (%)。メトリクスは 5 分間隔でパブリッシュされます。そのため、プロビジョニングされた読み込みキャパシティーユニットを急速に調整すると、この統計には正しい平均が反映されない場合があります。

MaxProvisionedTableWriteCapacityUtilization

アカウントの最も高いプロビジョニングされた書き込みテーブルまたはグローバルセカンダリインデックスによって使用される、プロビジョニングされた書き込みキャパシティーの割合 (%)。

有効な統計

Maximum – アカウントの最も高いプロビジョニングされた書き込みテーブルまたはグローバルセカンダリインデックスによって使用される、プロビジョニングされた書き込みキャパシティーユニットの最大の割合 (%)。

Minimum – アカウントの最も高いプロビジョニングされた書き込みテーブルまたはグローバルセカンダリインデックスによって使用される、プロビジョニングされた書き込みキャパシティーユニットの最小の割合 (%)。

Average – アカウントの最も高いプロビジョニングされた書き込みテーブルまたはグローバルセカンダリインデックスによって使用される、プロビジョニングされた書き込みキャパシティーユニットの平均比率 (%)。メトリクスは 5 分間隔でパブリッシュされます。そのため、プロビジョニングされた書き込みキャパシティーユニットを急速に調整すると、この統計には正しい平均が反映されない場合があります。

単位:Milliseconds

AgeOfOldestUnreplicatedRecord

Kinesis データストリームにレプリケートされていないレコードが最初に DynamoDB テーブルに表示された時点からの経過時間。

ディメンション

  • TableName、DelegatedOperation

有効な統計:

  • Maximum、Minimum、Average

ReplicationLatency

  • (このメトリクスは DynamoDB グローバルテーブル用です。) 1 つのレプリカテーブルに対して DynamoDB ストリームに表示される更新された項目と、グローバルテーブルの別のレプリカに表示される、その項目の間の経過時間。

ディメンション

  • TableName、ReceivingRegion

有効な統計

  • Average、Minimum、Maximum

SuccessfulRequestLatency

  • 指定された期間中に DynamoDB または DynamoDB ストリームに対して成功したリクエスト。SuccessfulRequestLatency は、2 種類の情報を提供できます。

  • 成功したリクエストの経過時間 (Minimum、Maximum、Sum、またはAverage)。

  • 成功したリクエストの数 (SampleCount)。

  • SuccessfulRequestLatency は DynamoDB または DynamoDB ストリーム 内のアクティビティのみを反映し、アカウントのネットワークレイテンシーまたはクライアント側のアクティビティは考慮されません。

ディメンション

  • TableName、Operation

有効な統計

  • Minimum、Maximum、Average、SampleCount

単位:Bytes

ReturnedBytes

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

ディメンション

  • Operation、StreamLabel、TableName

有効な統計

  • Minimum、Maximum、Average、SampleCount、Sum

その他の記事へ