翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon CloudWatch を使用した Kinesis Client Library のモニタリング
-Kinesis Client LibraryAmazon Kinesis Data Streams の (KCL) は、カスタム Amazon をパブリッシュします。 CloudWatch KCL アプリケーションの名前を名前空間として使用して、お客様に代わってメトリクス。CloudWatch console
にアップロードされたメトリクスには、わずかな金額が課金されます。 CloudWatch KCLによる。具体的には、アマゾン CloudWatch カスタムメトリクスそしてアマゾン CloudWatch API リクエスト料金が適用されます。詳細については、次を参照してください。アマゾン CloudWatch 料金
メトリクスと名前空間
メトリクスのアップロードに使用される名前空間は、KCL の起動時に指定されたアプリケーション名です。
メトリクスレベルとディメンション
CloudWatch にアップロードされるメトリクスを制御する 2 つのオプションがあります。
- メトリクスレベル
-
すべてのメトリクスに、個別のレベルが割り当てられます。メトリクスのレポートレベルを設定すると、レポートレベル以下の個別のレベルのメトリクスは CloudWatch に送信されません。このレベルとして、
NONE
、SUMMARY
、DETAILED
があります。デフォルト設定はDETAILED
であり、すべてのメトリクスが CloudWatch に送信されます。レポートレベルNONE
は、メトリクスがまったく送信されないことを意味します。各メトリクスに割り当てられるメトリクスの詳細については、メトリクスの一覧を参照してください。 - 有効なディメンション
-
すべての KCL メトリクスには、CloudWatch に送信されるディメンションが関連付けられています。KCL 2.x では、単一のデータストリームを処理するように KCL が設定されている場合、すべてのメトリクスディメンション (
Operation
、ShardId
、およびWorkerIdentifier
) が、デフォルトで有効になっています。また、KCL 2.x では、単一のデータストリームを処理するように KCL が設定されている場合、Operation
ディメンションを無効にすることはできません。KCL 2.x では、KCL が複数のデータストリームを処理するように構成されている場合、すべてのメトリクスディメンション (Operation
、ShardId
、StreamId
、およびWorkerIdentifier
) は、デフォルトで有効になっています。また、KCL 2.x では、KCL が複数のデータストリームを処理するように設定されている場合、Operation
とStreamId
ディメンションを無効にすることはできません。StreamId
ディメンションは、シャードごとのメトリクスでのみ使用できます。KCL 1.x では、デフォルトでは、
Operation
およびShardId
ディメンションのみが有効であり、WorkerIdentifier
ディメンションは無効となります。KCL 1.x では、Operation
ディメンションを無効にすることはできません。の詳細 CloudWatch メートル法ディメンション。ディメンションAmazonのセクション CloudWatch 概念のトピック、アマゾン CloudWatch ユーザーガイド。
WorkerIdentifier
ディメンションが有効で、特定のKCL ワーカーが再起動するたびにワーカー ID プロパティに異なる値が使用される場合、新しいWorkerIdentifier
ディメンション値を持つ新しいメトリクスのセットが CloudWatch に送信されます。特定の KCL ワーカーの再起動で、WorkerIdentifier
ディメンションの値が同じである必要がある場合、各ワーカーの初期化中に同じワーカー ID 値を明示的に指定する必要があります。アクティブな各 KCL ワーカーのワーカー ID 値は、すべての KCL ワーカー間で一意である必要があります。
メトリクスの設定
メトリクスレベルと有効なディメンションは、 KinesisClientLibConfiguration インスタンス。KCL アプリケーションを起動するときに Worker に渡されます。左 MultiLangDaemon ケース、metricsLevel
そしてmetricsEnabledDimensions
プロパティは.properties ファイルで指定できます。 MultiLangDaemon KCL アプリケーション。
メトリクスレベルには、次の 3 つの値のいずれかを割り当てることができます。なし、概要、または詳細です。有効なディメンションの値は、使用できるディメンションのリストを含むカンマ区切りの文字列である必要があります。 CloudWatch メトリクス。KCL アプリケーションによって使用されるディメンションは、Operation
、ShardId
、および WorkerIdentifier
です。
メトリクスの一覧
次の表には、範囲およびオペレーションによってグループ分けされた KCL メトリクスが一覧表示されています。
KCL アプリケーションあたりのメトリクス
これらのメトリクスは、Amazon によって定義されているように、アプリケーションの範囲内にあるすべての KCL ワーカーにわたって集約されます。 CloudWatch 名前空間。
InitializeTask
InitializeTask
オペレーションは、KCL アプリケーションのレコードプロセッサを初期化します。このオペレーションのロジックには、Kinesis Data Streams からのシャードイテレーターの取得とレコードプロセッサの初期化が含まれています。
メトリクス | 説明 |
---|---|
KinesisDataFetcher.getIterator.Success |
KCL アプリケーションあたりの メトリクスレベル: 詳細 単位: [Count] (カウント) |
KinesisDataFetcher.getIterator.Time |
指定された KCL アプリケーションの メトリクスレベル: 詳細 単位: ミリ秒 |
RecordProcessor.initialize.Time |
レコードプロセッサの初期化メソッドにかかった時間。 メトリクスレベル: 概要 単位: ミリ秒 |
成功 |
レコードプロセッサの初期化の成功回数。 メトリクスレベル: 概要 単位: [Count] (カウント) |
時間 |
KCL ワーカーがレコードプロセッサの初期化にかかった時間。 メトリクスレベル: 概要 単位: ミリ秒 |
ShutdownTask
ShutdownTask
オペレーションは、シャード処理のシャットダウンシーケンスを開始します。これは、シャードが分割または結合された場合やシャードリースがワーカーから失われた場合に発生する場合があります。どちらの場合も、レコードプロセッサ shutdown()
関数が呼び出されます。また、シャードが分割または結合された場合、新しいシャードが 1 つまたは 2 つ作成されるため、新しいシャードが検出されます。
メトリクス | 説明 |
---|---|
CreateLease.Success |
親シャードのシャットダウンの後に、新しい子シャードが KCL アプリケーションの DynamoDB テーブルに正常に追加された回数。 メトリクスレベル: 詳細 単位: [Count] (カウント) |
CreateLease.Time |
KCL アプリケーションの DynamoDB テーブルに新しい子シャード情報を追加する所要時間。 メトリクスレベル: 詳細 単位: ミリ秒 |
UpdateLease.Success |
レコードプロセッサのシャットダウン中に成功した最終チェックポイントの数。 メトリクスレベル: 詳細 単位: [Count] (カウント) |
UpdateLease.Time |
レコードプロセッサのシャットダウン中にチェックポイントオペレーションにかかった時間。 メトリクスレベル: 詳細 単位: ミリ秒 |
RecordProcessor.shutdown.Time |
レコードプロセッサのシャットダウンメソッドにかかった時間。 メトリクスレベル: 概要 単位: ミリ秒 |
成功 |
シャットダウンタスクの成功回数。 メトリクスレベル: 概要 単位: [Count] (カウント) |
時間 |
KCL ワーカーがシャットダウンタスクにかかった時間。 メトリクスレベル: 概要 単位: ミリ秒 |
ShardSyncTask
ShardSyncTask
オペレーションは、Kinesis Data Streams のシャード情報に対する変更を検出するため、KCL アプリケーションで新しいシャードを処理できます。
メトリクス | 説明 |
---|---|
CreateLease.Success |
KCL アプリケーションの DynamoDB テーブルへの新しいシャード情報の追加が成功した回数。 メトリクスレベル: 詳細 単位: [Count] (カウント) |
CreateLease.Time |
KCL アプリケーションの DynamoDB テーブルに新しいシャード情報を追加する所要時間。 メトリクスレベル: 詳細 単位: ミリ秒 |
成功 |
シャード同期オペレーションの成功回数。 メトリクスレベル: 概要 単位: [Count] (カウント) |
時間 |
シャード同期オペレーションにかかった時間。 メトリクスレベル: 概要 単位: ミリ秒 |
BlockOnParentTask
シャードが分割または他のシャードと結合された場合、新しい子シャードが作成されます。BlockOnParentTask
オペレーションは、KCL による親シャードの処理が完了するまで、新しいシャードのレコード処理が開始されないようにします。
メトリクス | 説明 |
---|---|
成功 |
親シャードの完了チェックの成功回数。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
時間 |
親シャードが完了するまでにかかった時間。 メトリクスレベル: 概要 単位: ミリ秒 |
PeriodicShardSyncManager
PeriodicShardSyncManager
は、KCL コンシューマーアプリケーションによって処理されているデータストリームを調べ、部分リースを持つデータストリームを特定し、同期のためにそれらを引き渡します。
次のメトリクスは、KCL が単一のデータストリームを処理するように設定されている場合 (次に NumStreamsToSync そして NumStreamsWithPartialLeases は 1) に設定されており、KCL が複数のデータストリームを処理するように設定されている場合。
メトリクス | 説明 |
---|---|
NumStreamsToSync |
部分的なリースを含み、同期のために引き渡す必要がある、コンシューマーアプリケーションによって処理されているデータストリームの数 (AWS アカウントごと)。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
NumStreamsWithPartialLeases |
部分的なリースを含み、コンシューマーアプリケーションによって処理されているデータストリームの数 (AWS アカウントごと)。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
成功 |
回数 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
時間 |
その時間の量 (ミリ秒) では、シャード同期が必要なデータストリームを特定するために、コンシューマーアプリケーションが処理しているデータストリームを調べます。 メトリクスレベル:Tレベル 概要 単位: ミリ秒 |
マルチストリームトラッカー
MultistreamTracker
インターフェイスを使用すると、複数のデータストリームを同時に処理できる KCL コンシューマーアプリケーションを構築できます。
メトリクス | 説明 |
---|---|
DeletedStreams.Count |
この期間に削除されたデータストリームの数。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
ActiveStreams.Count |
処理されているアクティブなデータストリームの数。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
StreamsPendingDeletion.Count |
メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
ワーカーあたりのメトリクス
これらのメトリクスは、Amazon EC2 インスタンスなど、Kinesis Data Streams のデータを消費するすべてのレコードプロセッサにわたって集約されます。
RenewAllLeases
RenewAllLeases
オペレーションは、特定のワーカーインスタンスによって所有されるシャードリースを定期的に更新します。
メトリクス | 説明 |
---|---|
RenewLease.Success |
ワーカーによるリース更新の成功回数。 メトリクスレベル:Tレベル 詳細 単位: [Count] (カウント) |
RenewLease.Time |
リース更新オペレーションにかかった時間。 メトリクスレベル:Tレベル 詳細 単位: ミリ秒 |
CurrentLeases |
すべてのリースの更新後にワーカーによって所有されているシャードリースの数。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
LostLeases |
ワーカーによって所有されているすべてのリースの更新を試みたときに失われたシャードリースの数。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
成功 |
ワーカーのリース更新オペレーションが成功した回数。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
時間 |
ワーカーのすべてのリースを更新するのにかかった時間。 メトリクスレベル:Tレベル 概要 単位: ミリ秒 |
TakeLeases
TakeLeases
オペレーションは、すべての KCL ワーカー間でレコード処理の負荷を分散させます。現在のKCL ワーカーのシャードリースが、必要数を下回る場合、過負荷になっている他のワーカーからシャードリースを取得します。
メトリクス | 説明 |
---|---|
ListLeases.Success |
すべてのシャードリースがKCL アプリケーションのDynamoDB テーブルから正常に取得された回数。 メトリクスレベル:Tレベル 詳細 単位: [Count] (カウント) |
ListLeases.Time |
KCL アプリケーションの DynamoDB テーブルからすべてのシャードリースを取得する所要時間。 メトリクスレベル:Tレベル 詳細 単位: ミリ秒 |
TakeLease.Success |
ワーカーが他のKCL ワーカーからシャードリースを正常に取得した回数。 メトリクスレベル:Tレベル 詳細 単位: [Count] (カウント) |
TakeLease.Time |
ワーカーが取得したリースを使用してリーステーブルを更新するのにかかった時間。 メトリクスレベル:Tレベル 詳細 単位: ミリ秒 |
NumWorkers |
特定のワーカーにより識別されるワーカーの総数。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
NeededLeases |
現在のワーカーがシャード処理の負荷を分散するのに必要なシャードリースの数。 メトリクスレベル:Tレベル 詳細 単位: [Count] (カウント) |
LeasesToTake |
ワーカーが取得を試みるリースの数。 メトリクスレベル:Tレベル 詳細 単位: [Count] (カウント) |
TakenLeases |
ワーカーが取得に成功したリースの数。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
TotalLeases |
CL アプリケーションが処理しているシャードの総数。 メトリクスレベル:Tレベル 詳細 単位: [Count] (カウント) |
ExpiredLeases |
特定のワーカーによって識別されるどのワーカーでも処理されていないシャードの総数。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
成功 |
メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
時間 |
ワーカーの メトリクスレベル:Tレベル 概要 単位: ミリ秒 |
シャードあたりのメトリクス
これらのメトリクスは、単一のレコードプロセッサについて集約されます。
ProcessTask
ProcessTask
オペレーションは、現在のイテレーター位置を使用して GetRecords を呼び出すことにより、ストリームからレコードを取得して、レコードプロセッサの processRecords
関数を起動します。
メトリクス | 説明 |
---|---|
KinesisDataFetcher.getRecords.Success |
Kinesis data stream シャードあたりの メトリクスレベル:Tレベル 詳細 単位: [Count] (カウント) |
KinesisDataFetcher.getRecords.Time |
Kinesis data stream シャードの メトリクスレベル:Tレベル 詳細 単位: ミリ秒 |
UpdateLease.Success |
指定されたシャードのレコードプロセッサによってチェックポイントが正常に作成された回数。 メトリクスレベル:Tレベル 詳細 単位: [Count] (カウント) |
UpdateLease.Time |
指定されたシャードの各チェックポイントオペレーションにかかった時間。 メトリクスレベル:Tレベル 詳細 単位: ミリ秒 |
DataBytesProcessed |
メトリクスレベル:Tレベル 概要 単位: バイト |
RecordsProcessed |
メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
ExpiredIterator |
の数 ExpiredIteratorException 通話時に受け取った メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
MillisBehindLatest | 現在のイテレーターがシャード内の最新のレコード (先端) から遅れている時間。この値は、応答の最新レコードと現在時間における時間差と同じかそれ以下です。これは、最新の応答レコードのタイムスタンプを比較するよりも、シャードが先端からどれくらい離れているかを示すより正確な反映です。この値は、各レコードの全タイムスタンプの平均ではなく、レコードの最新バッチに適用されます。 メトリクスレベル:Tレベル 概要 単位: ミリ秒 |
RecordProcessor.processRecords.Time |
レコードプロセッサの メトリクスレベル:Tレベル 概要 単位: ミリ秒 |
成功 |
プロセスタスクオペレーションの成功回数。 メトリクスレベル:Tレベル 概要 単位: [Count] (カウント) |
時間 |
プロセスタスクオペレーションにかかった時間。 メトリクスレベル:Tレベル 概要 単位: ミリ秒 |