Amazon CloudWatch による Amazon Kinesis Data Streams サービスを監視する - Amazon Kinesis Data Streams

Amazon CloudWatch による Amazon Kinesis Data Streams サービスを監視する

Amazon Kinesis Data Streams は Amazon CloudWatch と統合されているため、Kinesis data streams の CloudWatch メトリクスを収集、表示、および分析できます。たとえば、シャードの使用状況の追跡に、IncomingBytes メトリクス OutgoingBytes とメトリクスをモニタリングし、ストリーム内のシャードカウントと比較できます。

ストリームメトリクスと設定する共有レベルのメトリクスは、自動的に収集され、1 分おきに CloudWatch にプッシュされます。2 週間分のメトリクスがアーカイブされ、その期間が経過したデータは破棄されます。

次の表は、Kinesis data streams の基本的なストリームレベルと拡張シャードレベルのモニタリングについて説明しています。

説明

ベーシック (ストリームレベル)

ストリーム レベルのデータは、1 分間ごとに自動的に送信されます。料金は発生しません。

拡張 (シャードレベル)

シャードレベルのデータは、1分ごとに送信されます。追加料金が発生します。このレベルのデータを取得するには、EnableEnhancedMonitoring オペレーションを使用してストリームを明示的に有効にする必要があります。

料金の詳細については、Amazon CloudWatch の料金ページを参照してください。

Amazon Kinesis Data Streams のディメンションとメトリクス

Kinesis Data Streams は、ストリームレベルとオプションのシャードレベルの 2 つのレベルでメトリクスを CloudWatch に送信します。ストリームレベルのメトリクスは、通常の条件での最も一般的なモニタリングのユースケース用です。シャードレベルのメトリクスは、通常トラブルシューティングに関連する特定のモニタリングタスクで、EnableEnhancedMonitoring オペレーションを使用して有効になります。

CloudWatch メトリクスから収集された統計の説明については、Amazon CloudWatch ユーザーガイドCloudWatch 統計を参照してください。

基本ストリームレベルメトリクス

AWS/Kinesis 名前空間には、次のストリームレベルメトリクスが含まれます。

Kinesis Data Streams は、1 分ごとにこれらのストリームレベルのメトリクスを CloudWatch に送信します。これらのメトリクスは常に利用することができます。

メトリクス 説明
GetRecords.Bytes

指定された期間に測定された、Kinesis ストリームから取得したバイト数。Minimum、Maximum、および Average の統計は、指定した期間内のストリームの単一 GetRecords オペレーションでのバイト数です。

シャードレベルメトリクス名: OutgoingBytes

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: バイト

GetRecords.IteratorAge

このメトリクスは廃止されました。GetRecords.IteratorAgeMilliseconds を使用します。

GetRecords.IteratorAgeMilliseconds

Kinesis ストリームに対して行われたすべての GetRecords 呼び出しの最後のレコードの期間 (指定された時間に測定)。期間は、現在の時刻と、GetRecords 呼び出しの最後のレコードがストリームに書き込まれた時刻の差です。Minimum および Maximum 統計は、Kinesis コンシューマーアプリケーションのプロセスを追跡するのに使用できます。値がゼロの場合は、読み取り中のレコードがストリームに完全に追いついていることを示します。

シャードレベルメトリクス名: IteratorAgeMilliseconds

ディメンション: StreamName

統計: Minimum、Maximum、Average、Samples

単位: ミリ秒

GetRecords.Latency

指定された期間に測定された GetRecords オペレーションごとにかかった時間。

ディメンション: StreamName

統計: Minimum、Maximum、Average

単位: ミリ秒

GetRecords.Records

指定された期間に測定された、シャードから取得したレコード数。Minimum、Maximum、および Average の統計は、指定した期間内のストリームの単一 GetRecords オペレーションでのレコード数です。

シャードレベルメトリクス名: OutgoingRecords

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

GetRecords.Success

指定された期間に測定された、ストリームごとの成功した GetRecords オペレーションの数。

ディメンション: StreamName

統計: Average、Sum、Samples

単位: カウント

IncomingBytes

指定された期間に、Kinesis ストリームに正常に送信されたバイト数。このメトリクスには、PutRecord および PutRecords オペレーションのバイト数も含まれます。Minimum、Maximum、および Average の統計は、指定した期間内のストリームの単一 put オペレーションでのバイト数です。

シャードレベルメトリクス名: IncomingBytes

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: バイト

IncomingRecords

指定された期間に、Kinesis ストリームに正常に送信されたレコードの数。このメトリクスには、PutRecord および PutRecords オペレーションのレコード数も含まれます。Minimum、Maximum、および Average の統計は、指定した期間内のストリームの単一 put オペレーションでのレコード数です。

シャードレベルメトリクス名: IncomingRecords

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

PutRecord.Bytes

指定された期間に PutRecord オペレーションを使用して Kinesis ストリームに送信されたバイト数。

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: バイト

PutRecord.Latency

指定された期間に測定された PutRecord オペレーションごとにかかった時間。

ディメンション: StreamName

統計: Minimum、Maximum、Average

単位: ミリ秒

PutRecord.Success

指定された期間に測定された、Kinesis ストリームごとの成功した PutRecord オペレーションの数。Average はストリームへの書き込み成功率を反映しています。

ディメンション: StreamName

統計: Average、Sum、Samples

単位: カウント

PutRecords.Bytes

指定された期間に PutRecords オペレーションを使用して Kinesis ストリームに送信されたバイト数。

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: バイト

PutRecords.Latency

指定された期間に測定された PutRecords オペレーションごとにかかった時間。

ディメンション: StreamName

統計: Minimum、Maximum、Average

単位: ミリ秒

PutRecords.Records

このメトリクスは廃止されました。PutRecords.SuccessfulRecords を使用します。

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

PutRecords.Success

指定された期間に測定された、Kinesis ストリームあたりの最低 1 つのレコードが成功した PutRecords オペレーションの数。

ディメンション: StreamName

統計: Average、Sum、Samples

単位: カウント

PutRecords.TotalRecords

指定された期間に測定された、Kinesis Data Streams ごとに PutRecords オペレーションで送信されたレコードの総数。

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

PutRecords.SuccessfulRecords

指定された期間に測定された、Kinesis Data Streams ごとの PutRecords オペレーションの正常なレコード数。

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

PutRecords.FailedRecords

指定された期間に測定された、Kinesis Data Streams ごとに PutRecords オペレーションで内部障害のために拒否されたレコードの数。時折内部障害が予想されるため、再試行する必要があります。

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

PutRecords.ThrottledRecords

指定された期間に測定された、Kinesis Data Streams ごとに PutRecords オペレーションでスロットリングのために拒否されたレコードの数。

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

ReadProvisionedThroughputExceeded

指定された期間のストリームで調整された GetRecords 呼び出し回数。このメトリクスで最も一般的に使用される統計は Average です。

Minimum の統計の値が 1 の場合、指定された期間にストリームについてすべてのレコードが調整されました。

Maximum の統計の値が 0 (ゼロ) の場合、指定された期間にストリームについてどのレコードも調整されていません。

シャードレベルメトリクス名: ReadProvisionedThroughputExceeded

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

SubscribeToShard.RateExceeded

このメトリックスは、同じコンシューマーによるアクティブなサブスクリプションがすでにあるため新しいサブスクリプションが失敗したとき、またはこのオペレーションで許可される 1 秒あたりの呼び出し回数を超えた場合に出力されます。

ディメンション: StreamName、ConsumerName
SubscribeToShard.Success

このメトリックスは、SubscribeToShard サブスクリプションが正常に確立されたかどうかを記録します。このサブスクリプションの有効期間は最大で 5 分のみです。したがって、このメトリックスは少なくとも 5 分に 1 回発行されます。

ディメンション: StreamName、ConsumerName

SubscribeToShardEvent.Bytes

指定された期間に測定された、シャードから受信したバイト数。Minimum、Maximum、および Average の統計は、指定した期間内の単一イベントで発行されたバイト数です。

シャードレベルメトリクス名: OutgoingBytes

ディメンション: StreamName、ConsumerName

統計: Minimum、Maximum、Average、Sum、Samples

単位: バイト

SubscribeToShardEvent.MillisBehindLatest

ストリームの先頭からの読み取りレコードのミリ秒数は、コンシューマーが現在時刻からどれだけ遅れているかを示します。

ディメンション: StreamName、ConsumerName

統計: Minimum、Maximum、Average、Samples

単位: ミリ秒

SubscribeToShardEvent.Records

指定された期間に測定された、シャードから受信したレコード数。Minimum、Maximum、および Average の統計は、指定した期間内の単一イベント内のレコードです。

シャードレベルメトリクス名: OutgoingRecords

ディメンション: StreamName、ConsumerName

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

SubscribeToShardEvent.Success このメトリックスは、イベントが正常に発行されるたびに出力されます。これは、アクティブなサブスクリプションがある場合にのみ出力されます。

ディメンション: StreamName、ConsumerName

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

WriteProvisionedThroughputExceeded

指定された期間にストリームのスロットリングにより拒否されたレコードの数。このメトリクスには、PutRecord および PutRecords オペレーションのスロットリングも含まれます。このメトリクスで最も一般的に使用される統計は Average です。

Minimum の統計がゼロ以外の値の場合、指定された期間にストリームについてレコードが調整中でした。

Maximum の統計の値が 0 (ゼロ) の場合、指定された期間のストリームで、どのレコードも調整中ではありませんでした。

シャードレベルメトリクス名: WriteProvisionedThroughputExceeded

ディメンション: StreamName

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

拡張シャードレベルメトリクス

AWS/Kinesis 名前空間には、次のシャードレベルメトリクスが含まれます。

Kinesis は、1 分ごとに次のシャードレベルメトリクスを CloudWatch に送信します。メトリクスディメンションごとに 1 つのCloudWatch メトリクスが作成され、1 か月あたり約 43,200 回の PutMetricData API コールが行われます。デフォルトでは、これらのメトリクスは有効ではありません。Kinesis から発生した拡張メトリクスには、料金がかかります。詳細については、Amazon CloudWatch カスタムメトリクスの見出しの下のAmazon CloudWatch の料金を参照してください。料金は、1 ヶ月あたりのシャードごとに表示されます。

メトリクス 説明
IncomingBytes

指定された期間に、シャードに正常に送信されたバイト数。このメトリクスには、PutRecord および PutRecords オペレーションのバイト数も含まれます。Minimum、Maximum、および Average の統計は、指定した期間内のシャードの単一 put オペレーションでのバイト数です。

ストリームレベルメトリクス名: IncomingBytes

ディメンション: StreamName、ShardId

統計: Minimum、Maximum、Average、Sum、Samples

単位: バイト

IncomingRecords

指定された期間に、シャードに正常に送信されたレコードの数。このメトリクスには、PutRecord および PutRecords オペレーションのレコード数も含まれます。Minimum、Maximum、および Average の統計は、指定した期間内のシャードの単一 put オペレーションでのレコード数です。

ストリームレベルメトリクス名: IncomingRecords

ディメンション: StreamName、ShardId

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

IteratorAgeMilliseconds

シャードに対して行われたすべての GetRecords 呼び出しの最後のレコードの期間 (指定された時間に測定)。期間は、現在の時刻と、GetRecords 呼び出しの最後のレコードがストリームに書き込まれた時刻の差です。Minimum および Maximum 統計は、Kinesis コンシューマーアプリケーションのプロセスを追跡するのに使用できます。値が 0 (ゼロ) の場合は、読み取り中のレコードがストリームに完全に追いついていることを示します。

ストリームレベルメトリクス名: GetRecords.IteratorAgeMilliseconds

ディメンション: StreamName、ShardId

統計: Minimum、Maximum、Average、Samples

単位: ミリ秒

OutgoingBytes

指定された期間に測定された、シャードから取得したバイト数。Minimum、Maximum、および Average の統計は、指定した期間内のシャードの単一 GetRecords オペレーションで返されたバイト数または単一の SubscribeToShard イベントで発行されたバイト数です。

ストリームレベルメトリクス名: GetRecords.Bytes

ディメンション: StreamName、ShardId

統計: Minimum、Maximum、Average、Sum、Samples

単位: バイト

OutgoingRecords

指定された期間に測定された、シャードから取得したレコード数。Minimum、Maximum、および Average の統計は、指定した期間内のシャードの単一 GetRecords オペレーションで返されたレコードまたは単一の SubscribeToShard イベントで発行されたレコードです。

ストリームレベルメトリクス名: GetRecords.Records

ディメンション: StreamName、ShardId

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

ReadProvisionedThroughputExceeded

指定された期間のシャードで調整された GetRecords 呼び出し回数。この例外カウントは、1 秒あたり 1 つのシャードあたり 5 回の読み込みまたは 1 つのシャードあたり 1 秒あたり 2 MB の制限のすべてのディメンションを含みます。このメトリクスで最も一般的に使用される統計は Average です。

Minimum の統計の値が 1 の場合、指定された期間にシャードについてすべてのレコードが調整されました。

Maximum の統計の値が 0 (ゼロ) の場合、指定された期間にシャードについてどのレコードも調整されていません。

ストリームレベルメトリクス名: ReadProvisionedThroughputExceeded

ディメンション: StreamName、ShardId

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

WriteProvisionedThroughputExceeded

指定された期間にシャードのスロットリングにより拒否されたレコードの数。このメトリクスには、PutRecord および PutRecords オペレーションのスロットリングが含まれ、さらに、1 つのシャードあたり 1 秒あたり 1,000 レコードまたは 1 つのシャードあたり 1 秒あたり 1 MB の制限のすべてのディメンションが含まれます。このメトリクスで最も一般的に使用される統計は Average です。

Minimum の統計がゼロ以外の値の場合、指定された期間にシャードについてレコードが調整中でした。

Maximum の統計の値が 0 (ゼロ) の場合、指定された期間のシャードで、どのレコードも調整中ではありませんでした。

ストリームレベルメトリクス名: WriteProvisionedThroughputExceeded

ディメンション: StreamName、ShardId

統計: Minimum、Maximum、Average、Sum、Samples

単位: カウント

Amazon Kinesis Data Streams メトリクスのディメンション

ディメンション

説明

StreamName

Kinesis ストリームの名前。使用可能なすべての統計が StreamName によってフィルタリングされます。

推奨される Amazon Kinesis Data Streams メトリクス

Amazon Kinesis Data Streams メトリクスのいくつかは、Kinesis Data Streams のお客様に特に重要です。次のリストは推奨メトリクスとご利用方法を提供しています。

メトリクス 使用に関する注意事項

GetRecords.IteratorAgeMilliseconds

ストリームのすべてのシャードとコンシューマーの読み込み場所を追跡します。イテレータの経過日数が保持期間 (デフォルトで 24 時間、最大で 7 日まで設定可能) の 50% を経過すると、レコードの有効期限切れによるデータ損失のリスクがあります。この損失がリスクになる前に警告するように、Maximum 統計の CloudWatch アラームを使用することをお勧めします。このメトリクスを使用するシナリオ例は、コンシューマーレコードの処理が遅れるを参照してください。

ReadProvisionedThroughputExceeded

コンシューマー側のレコード処理に後れが生じているときに、ボトルネックがどこにあるかを確認するのは難しい場合があります。このメトリクスを使用して、読み取りスループット制限を超えたために、読み取りが調整されているかを判断してください。このメトリクスで最も一般的に使用される統計は Average です。

WriteProvisionedThroughputExceeded これは、ReadProvisionedThroughputExceeded メトリクスと同じ目的ですが、ストリームのプロデューサー (PUT) 側用です。このメトリクスで最も一般的に使用される統計は Average です。
PutRecord.Success, PutRecords.Success レコードがストリームに後れていることを示す Average 統計のCloudWatch アラームを使用することをお勧めします。プロデューサーが使用しているものに応じて、一つまたは両方の種類の PUT 種類を選択します。Kinesis Producer Library (KPL) を使用する場合は、PutRecords.Success を使用します。
GetRecords.Success レコードがストリームの役に立っていないことを示す Average 統計の CloudWatch アラームを使用することをお勧めします。

Kinesis Data Streams の Amazon CloudWatch メトリクスにアクセスする

CloudWatch コンソール、コマンドライン、または CloudWatch API を使用して、Kinesis Data Streams のメトリクスをモニタリングできます。次の手順は、これらのさまざまなメソッドを使用してメトリクスにアクセスする方法を示しています。

CloudWatch コンソールを使用してメトリクスにアクセスするには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションバーで、リージョンを選択します。

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

  4. [カテゴリ別の CloudWatch メトリクス] ペインで [Kinesis メトリクス] を選択します。

  5. 該当する行をクリックし、指定した [MetricName] と [StreamName] の統計を表示します。

    注: ほとんどのコンソール統計の名前は、読み込みスループット書き込みスループットを除いて、上記の対応する CloudWatch メトリクス名と一致します。次の統計は 5 分間隔で計算されます。書き込みスループットIncomingBytes CloudWatch メトリクスをモニタリングし、読み取りスループットは GetRecords.Bytes をモニタリングします。

  6. (オプション) グラフペインで、統計と期間を選択し、これらの設定を使用して CloudWatch アラームを作成します。

AWS CLI を使用してメトリクスにアクセスするには

list-metrics および get-metric-statistics コマンドを使用します。

CloudWatch CLI を使用してメトリクスにアクセスするには

mon-list-metrics コマンドと mon-get-stats コマンドを使用します。

CloudWatch API を使用してメトリクスにアクセスするには

ListMetrics オペレーションと GetMetricStatistics オペレーションを使用します。