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