Amazon CloudWatch による Kinesis クライアントライブラリのモニタリング - Amazon Kinesis Data Streams

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

Amazon CloudWatch による Kinesis クライアントライブラリのモニタリング

Kinesis Client Library (KCL) for Amazon Kinesis Data Streams は、ユーザーに代わって、名前空間として KCL アプリケーションの名前を使用して、カスタム Amazon CloudWatch メトリクスを発行します。CloudWatch コンソール に移動し、[カスタムメトリクス] を選択すると、これらのメトリクスを表示できます。カスタムメトリクスの詳細については、の「カスタムメトリクスをパブリッシュする」を参照してくださいAmazon CloudWatch ユーザーガイド

KCL によって CloudWatch にアップロードされたメトリクスには、小額の課金が発生します。具体的には、Amazon CloudWatch カスタムメトリクスAmazon CloudWatch API リクエストの料金が適用されます。詳細については、Amazon CloudWatch 料金表 を参照してください。

メトリクスと名前空間

メトリクスのアップロードに使用される名前空間は、KCL の起動時に指定されたアプリケーション名です。

メトリクスレベルとディメンション

CloudWatch にアップロードされるメトリクスを制御する 2 つのオプションがあります。

メトリクスレベル

すべてのメトリクスに、個別のレベルが割り当てられます。メトリクスのレポートレベルを設定すると、レポートレベル以下の個別のレベルのメトリクスは CloudWatch に送信されません。レベルは次のとおりです。NONESUMMARY 、および DETAILED。 デフォルト設定は DETAILED ですCloudWatch。つまり、すべての メトリクスが に送信されます。レポートレベル NONE は、メトリクスがまったく送信されないことを意味します。各メトリクスに割り当てられるメトリクスの詳細については、「メトリクスの一覧」を参照してください。

有効なディメンション

すべての KCL メトリクスには、 にも送信される関連するディメンションがありますCloudWatch。KCL 2.x Operation では、KCL が 1 つのデータストリームを処理するように設定されている場合、すべてのメトリクスディメンション (ShardId、、および WorkerIdentifier ) がデフォルトで有効になっています。また、KCL 2.x では、KCL が 1 つのデータストリームを処理するように設定されている場合、Operationディメンションを無効にすることはできません。KCL 2.x Operation では、KCL が複数のデータストリームを処理するように設定されている場合、すべてのメトリクス (ShardId、、、、StreamId) がデフォルトで有効になります。WorkerIdentifierまた、KCL 2.x では、KCL が複数のデータストリームを処理するように設定されている場合、 Operation と のStreamIdディメンションを無効にすることはできません。StreamIdデフォルトはシャードごとのメトリクスにのみ使用できます。

KCL 1.x では、 OperationShardId ディメンションのみがデフォルトで有効になり、WorkerIdentifierディメンションは無効になります。KCL 1.x では、Operationディメンションを無効にすることはできません。

CloudWatch メトリクスディメンションの詳細については、https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#DimensionAmazon CloudWatchの「 の概念」トピックの「Amazon CloudWatch ユーザーガイドディメンション」セクションを参照してください。

WorkerIdentifier ディメンションが有効で、特定の KCL ワーカーが再起動するたびにワーカー ID プロパティに異なる値が使用される場合、新しい WorkerIdentifier ディメンション値を持つ新しいメトリクスのセットが CloudWatch に送信されます。特定の KCL ワーカーの再起動で、WorkerIdentifier ディメンションの値が同じである必要がある場合、各ワーカーの初期化中に同じワーカー ID 値を明示的に指定する必要があります。アクティブな各 KCL ワーカーのワーカー ID 値は、すべての KCL ワーカー間で一意である必要があります。

メトリクスの設定

KinesisClientLibConfigurationメトリクスレベルと有効なディメンションは、KCLアプリケーションを起動するときにワーカーに渡されるインスタンスを使用して設定できます。MultiLangDaemonこの場合、 metricsLevelおよび metricsEnabledDimensions プロパティは、 MultiLangDaemon KCL アプリケーションを起動するために使用される .properties ファイルで指定できます。

メトリクスレベルには、次の 3 つの値のいずれかを割り当てることができます。NONE、SUMMARY、または DETAILED。有効なディメンションの値は、CloudWatch メトリクスで許可されているディメンションのリストを含むカンマ区切りの文字列である必要があります。KCL アプリケーションによって使用されるディメンションは、OperationShardId、および WorkerIdentifier です。

メトリクスの一覧

次の表には、範囲および操作によってグループ分けされた KCL メトリクスが表示されています。

KCL アプリケーションあたりのメトリクス

これらのメトリクスは、Amazon CloudWatch 名前空間で定義されているように、アプリケーションの範囲内にあるすべての KCL ワーカーにわたって集約されます。

InitializeTask

InitializeTask オペレーションは、KCL アプリケーションのレコードプロセッサを初期化します。このオペレーションのロジックには、Kinesis Data Streams からのシャードイテレーターの取得とレコードプロセッサの初期化が含まれています。

メトリクス  説明
KinesisDataFetcher.getIterator.Success

KCL アプリケーションあたりの GetShardIterator オペレーションの成功回数。

メトリクスレベル: 詳細

単位: カウント

KinesisDataFetcher.getIterator.Time

指定された KCL アプリケーションの GetShardIterator オペレーションあたりの所要時間。

メトリクスレベル: 詳細

単位: Milliseconds

RecordProcessor.initialize.Time

レコードプロセッサの初期化メソッドにかかった時間。

メトリクスレベル: 総括

単位: Milliseconds

Success

レコードプロセッサの初期化の成功回数。

メトリクスレベル: 総括

単位: カウント

Time

KCL ワーカーでレコードプロセッサの初期化にかかった時間。

メトリクスレベル: 総括

単位: Milliseconds

ShutdownTask

ShutdownTask オペレーションは、シャード処理のシャットダウンシーケンスを開始します。これは、シャードが分割または結合された場合やシャードリースがワーカーから失われた場合に発生する場合があります。どちらの場合も、レコードプロセッサ shutdown() 関数が呼び出されます。また、シャードが分割または結合された場合、新しいシャードが 1 つまたは 2 つ作成されるため、新しいシャードが検出されます。

メトリクス  説明
CreateLease.Success

親シャードのシャットダウンの後に、新しい子シャードが KCL アプリケーションの DynamoDB テーブルに正常に追加された回数。

メトリクスレベル: 詳細

単位: カウント

CreateLease.Time

KCL アプリケーションの DynamoDB テーブルに新しい子シャード情報を追加する所要時間。

メトリクスレベル: 詳細

単位: Milliseconds

UpdateLease.Success

レコードプロセッサのシャットダウン中に成功した最終チェックポイントの数。

メトリクスレベル: 詳細

単位: カウント

UpdateLease.Time

レコードプロセッサのシャットダウン中にチェックポイントオペレーションにかかった時間。

メトリクスレベル: 詳細

単位: Milliseconds

RecordProcessor.shutdown.Time

レコードプロセッサのシャットダウンメソッドにかかった時間。

メトリクスレベル: 総括

単位: Milliseconds

Success

シャットダウンタスクの成功回数。

メトリクスレベル: 総括

単位: カウント

Time

KCL ワーカーでシャットダウンタスクにかかった時間。

メトリクスレベル: 総括

単位: Milliseconds

ShardSyncTask

ShardSyncTask オペレーションは、Kinesis data stream のシャード情報に対する変更を検出するため、KCL アプリケーションで新しいシャードを処理できます。

メトリクス  説明
CreateLease.Success

KCL アプリケーションの DynamoDB テーブルへの新しいシャード情報の追加が成功した回数。

メトリクスレベル: 詳細

単位: カウント

CreateLease.Time

KCL アプリケーションの DynamoDB テーブルに新しいシャード情報を追加する所要時間。

メトリクスレベル: 詳細

単位: Milliseconds

Success

シャード同期オペレーションの成功回数。

メトリクスレベル: 総括

単位: カウント

Time

シャード同期オペレーションにかかった時間。

メトリクスレベル: 総括

単位: Milliseconds

BlockOnParentTask

シャードが分割または他のシャードと結合された場合、新しい子シャードが作成されます。BlockOnParentTask オペレーションは、KCL による親シャードの処理が完了するまで、新しいシャードのレコード処理が開始されないようにします。

メトリクス  説明
Success

親シャードの完了チェックの成功回数。

メトリクスレベル: 総括

単位: カウント

Time

親シャードが完了するまでにかかった時間。

メトリクスレベル: 総括

単位: Milliseconds

PeriodicShardSyncManager

PeriodicShardSyncManagerは、KCLコンシューマーアプリケーションによって処理中のデータストリームを調査し、部分的なリースを持つデータストリームを識別して、同期のためにそれらを渡します。

以下のメトリクスは、KCL が単一のデータストリームを処理するように設定されている場合 (次に NumStreamsToSync および の値が 1 に設定されている)、および KCL が複数のデータストリームを処理するように設定されている場合に使用できます。NumStreamsWithPartialLeases

メトリクス  説明
NumStreamsToSync

コンシューマーアプリケーションによって処理されているデータストリームの数 (AWS アカウントあたり)。リースの一部を含み、同期のために渡す必要があります。

メトリクスレベル: 総括

単位: カウント

NumStreamsWithPartialLeases

コンシューマーアプリケーションが処理している、部分リースを含むデータストリームの数 (AWS アカウントあたり)。

メトリクスレベル: 総括

単位: カウント

Success

コンシューマーアプリケーションが処理中に、データストリーム内の部分的なリースを正常に識別できた回数。PeriodicShardSyncManager

メトリクスレベル: 総括

単位: カウント

Time

がコンシューマーアプリケーションが処理しているデータストリームを調べるのPeriodicShardSyncManagerにかかる時間 (ミリ秒単位)。シャードの同期を必要とするデータストリームを決定するために必要です。

メトリクスレベル: 総括

単位: Milliseconds

MultistreamTracker

このMultistreamTrackerインターフェイスでは、複数のデータストリームを同時に処理できる KCL コンシューマーアプリケーションを構築できます。

メトリクス  説明
DeletedStreams.Count

この期間に削除されたデータストリームの数。

メトリクスレベル: 総括

単位: カウント

ActiveStreams.Count

処理中のアクティブなデータストリームの数。

メトリクスレベル: 総括

単位: カウント

StreamsPendingDeletion.Count

に基づいて削除が保留中のデータストリームの数FormerStreamsLeasesDeletionStrategy

メトリクスレベル: 総括

単位: カウント

ワーカーあたりのメトリクス

これらのメトリクスは、Amazon EC2 インスタンスなど、Kinesis data stream のデータを消費するすべてのレコードプロセッサにわたって集約されます。

トピック

RenewAllLeases

RenewAllLeases オペレーションは、特定のワーカーインスタンスによって所有されるシャードリースを定期的に更新します。

メトリクス  説明
RenewLease.Success

ワーカーによるリース更新の成功回数。

メトリクスレベル: 詳細

単位: カウント

RenewLease.Time

リース更新オペレーションにかかった時間。

メトリクスレベル: 詳細

単位: Milliseconds

CurrentLeases

すべてのリースの更新後にワーカーによって所有されているシャードリースの数。

メトリクスレベル: 総括

単位: カウント

LostLeases

ワーカーによって所有されているすべてのリースの更新を試みたときに失われたシャードリースの数。

メトリクスレベル: 総括

単位: カウント

Success

ワーカーのリース更新オペレーションが成功した回数。

メトリクスレベル: 総括

単位: カウント

Time

ワーカーのすべてのリースを更新するのにかかった時間。

メトリクスレベル: 総括

単位: Milliseconds

TakeLeases

TakeLeases オペレーションは、すべての KCL ワーカー間でレコード処理の負荷を分散させます。現在の KCL ワーカーのシャードリースが、必要数を下回る場合、過負荷になっている他のワーカーからシャードリースを取得します。

メトリクス  説明
ListLeases.Success

すべてのシャードリースが KCL アプリケーションの DynamoDB テーブルから正常に取得された回数。

メトリクスレベル: 詳細

単位: カウント

ListLeases.Time

KCL アプリケーションの DynamoDB テーブルからすべてのシャードリースを取得する所要時間。

メトリクスレベル: 詳細

単位: Milliseconds

TakeLease.Success

ワーカーが他の KCL ワーカーからシャードリースを正常に取得した回数。

メトリクスレベル: 詳細

単位: カウント

TakeLease.Time

ワーカーが取得したリースを使用してリーステーブルを更新するのにかかった時間。

メトリクスレベル: 詳細

単位: Milliseconds

NumWorkers

特定のワーカーにより識別されるワーカーの総数。

メトリクスレベル: 総括

単位: カウント

NeededLeases

現在のワーカーがシャード処理の負荷を分散するのに必要なシャードリースの数。

メトリクスレベル: 詳細

単位: カウント

LeasesToTake

ワーカーが取得を試みるリースの数。

メトリクスレベル: 詳細

単位: カウント

TakenLeases

ワーカーが取得に成功したリースの数。

メトリクスレベル: 総括

単位: カウント

TotalLeases

KCL アプリケーションが処理しているシャードの総数。

メトリクスレベル: 詳細

単位: カウント

ExpiredLeases

特定のワーカーによって識別されるどのワーカーでも処理されていないシャードの総数。

メトリクスレベル: 総括

単位: カウント

Success

TakeLeases オペレーションが正常に完了した回数。

メトリクスレベル: 総括

単位: カウント

Time

ワーカーの TakeLeases オペレーションにかかった時間。

メトリクスレベル: 総括

単位: Milliseconds

シャードあたりのメトリクス

これらのメトリクスは、単一のレコードプロセッサについて集約されます。

ProcessTask

ProcessTask オペレーションは、現在のイテレーター位置を使用して GetRecords を呼び出すことにより、ストリームからレコードを取得して、レコードプロセッサの processRecords 関数を起動します。

メトリクス  説明
KinesisDataFetcher.getRecords.Success

Kinesis data stream シャードあたりの GetRecords オペレーションの成功回数。

メトリクスレベル: 詳細

単位: カウント

KinesisDataFetcher.getRecords.Time

Kinesis data stream シャードの GetRecords オペレーションあたりの所要時間。

メトリクスレベル: 詳細

単位: Milliseconds

UpdateLease.Success

指定されたシャードのレコードプロセッサによってチェックポイントが正常に作成された回数。

メトリクスレベル: 詳細

単位: カウント

UpdateLease.Time

指定されたシャードの各チェックポイントオペレーションにかかった時間。

メトリクスレベル: 詳細

単位: Milliseconds

DataBytesProcessed

ProcessTask の各呼び出しで処理されたレコードのバイト単位の合計サイズ。

メトリクスレベル: 総括

単位: バイト

RecordsProcessed

ProcessTask の各呼び出しで処理されたレコード数。

メトリクスレベル: 総括

単位: カウント

ExpiredIterator

を呼び出すときにExpiredIteratorException受信した の数GetRecords

メトリクスレベル: 総括

単位: カウント

MillisBehindLatest 現在のイテレーターがシャード内の最新のレコード (先端) から遅れている時間。この値は、応答の最新レコードと現在時間における時間差と同じかそれ以下です。これは、最新の応答レコードのタイムスタンプを比較するよりも、シャードが先端からどれくらい離れているかを示すより正確な反映です。この値は、各レコードの全タイムスタンプの平均ではなく、レコードの最新バッチに適用されます。

メトリクスレベル: 総括

単位: Milliseconds

RecordProcessor.processRecords.Time

レコードプロセッサの processRecords メソッドにかかった時間。

メトリクスレベル: 総括

単位: Milliseconds

Success

プロセスタスクオペレーションの成功回数。

メトリクスレベル: 総括

単位: カウント

Time

プロセスタスクオペレーションにかかった時間。

メトリクスレベル: 総括

単位: Milliseconds