

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

# Kinesis データストリームを監視する
<a name="monitoring"></a>

次の機能を使用して Amazon Kinesis Data Streams のデータストリームをモニタリングできます。
+ [CloudWatch メトリクス](monitoring-with-cloudwatch.md) - Kinesis Data Streams は、各ストリームの詳細モニタリングが付いた Amazon CloudWatch カスタムメトリクスを送信します。
+ [Kinesis エージェント](agent-health.md) - Kinesis エージェントは、エージェントが期待どおりに動作している場合、カスタム CloudWatch メトリクスを発行します。
+ [API ログ記録](logging-using-cloudtrail.md) - Kinesis Data Streams は AWS CloudTrail を使用して API コールをログに記録し、そのデータを Amazon S3 バケットに保存します。
+ [Kinesis Client Library](monitoring-with-kcl.md) - Kinesis Client Library (KCL) は、シャード、ワーカー、および KCL アプリケーションごとのメトリクスを提供します。
+ [Kinesis Producer Library](monitoring-with-kpl.md) - Amazon Kinesis Producer Library (KPL) は、シャード、ワーカー、および KPL アプリケーションごとのメトリクスを提供します。

一般的なモニタリングの問題、質問、およびトラブルシューティングの詳細については、以下を参照してください。
+  [Kinesis Data Streams の問題をモニタリングおよびトラブルシューティングするには、どのメトリクスを使用すべきですか?](https://aws.amazon.com/premiumsupport/knowledge-center/kinesis-data-streams-troubleshoot/)
+ [Kinesis Data Streams の IteratorAgeMilliseconds 値が増加し続けるのはなぜですか?](https://aws.amazon.com/premiumsupport/knowledge-center/kinesis-data-streams-iteratorage-metric/)

# Amazon CloudWatch による Amazon Kinesis Data Streams サービスを監視する
<a name="monitoring-with-cloudwatch"></a>

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

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

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


| 型 | 説明 | 
| --- | --- | 
|  ベーシック (ストリームレベル)  |  ストリーム レベルのデータは、1 分間ごとに自動的に送信されます。料金は発生しません。  | 
|  拡張 (シャードレベル)  |  シャードレベルのデータは、1 分ごとに送信されます。追加料金が発生します。このレベルのデータを取得するには、[EnableEnhancedMonitoring](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_EnableEnhancedMonitoring.html) オペレーションを使用してストリームを明示的に有効にする必要があります。 料金の詳細については、[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch)ページを参照してください。  | 

## Amazon Kinesis Data Streams のディメンションとメトリクス
<a name="kinesis-metrics"></a>

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

CloudWatch メトリクスから収集された統計の説明については、*Amazon CloudWatch ユーザーガイド*の[CloudWatch 統計](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Statistic)を参照してください。

**Topics**
+ [基本ストリームレベルメトリクス](#kinesis-metrics-stream)
+ [拡張シャードレベルメトリクス](#kinesis-metrics-shard)
+ [Amazon Kinesis Data Streams メトリクスのディメンション](#kinesis-metricdimensions)
+ [推奨される Amazon Kinesis Data Streams メトリクス](#kinesis-metric-use)

### 基本ストリームレベルメトリクス
<a name="kinesis-metrics-stream"></a>

`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 単位: カウント  | 

### 拡張シャードレベルメトリクス
<a name="kinesis-metrics-shard"></a>

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

Kinesis は、1 分ごとに次のシャードレベルメトリクスを CloudWatch に送信します。メトリクスディメンションごとに 1 つのCloudWatch メトリクスが作成され、1 か月あたり約 43,200 回の `PutMetricData` API コールが行われます。デフォルトでは、これらのメトリクスは有効ではありません。Kinesis から発生した拡張メトリクスには、料金がかかります。詳細については、*Amazon CloudWatch カスタムメトリクス*の見出しの下の[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)を参照してください。料金は､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 メトリクスのディメンション
<a name="kinesis-metricdimensions"></a>


|  ディメンション  |  説明  | 
| --- | --- | 
|  StreamName  |  Kinesis ストリームの名前。使用可能なすべての統計が `StreamName` によってフィルタリングされます。  | 

### 推奨される Amazon Kinesis Data Streams メトリクス
<a name="kinesis-metric-use"></a>

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


| メトリクス | 使用に関する注意事項 | 
| --- | --- | 
|  `GetRecords.IteratorAgeMilliseconds`  |  ストリームのすべてのシャードとコンシューマーの読み込み場所を追跡します。イテレータの経過日数が保持期間 (デフォルトで 24 時間、最大で 7 日まで設定可能) の 50% を経過すると、レコードの有効期限切れによるデータ損失のリスクがあります。この損失がリスクになる前に警告するように、Maximum 統計の CloudWatch アラームを使用することをお勧めします。このメトリクスを使用するシナリオ例は、[コンシューマーレコードの処理が遅れる](troubleshooting-consumers.md#record-processing-falls-behind)を参照してください。  | 
|  `ReadProvisionedThroughputExceeded`  |  コンシューマー側のレコード処理に後れが生じているときに、ボトルネックがどこにあるかを確認するのは難しい場合があります。このメトリクスを使用して、読み取りスループット制限を超えたために、読み取りが調整されているかを判断してください。このメトリクスで最も一般的に使用される統計は Average です。  | 
| WriteProvisionedThroughputExceeded | これは、ReadProvisionedThroughputExceeded メトリクスと同じ目的ですが、ストリームのプロデューサー (PUT) 側用です。このメトリクスで最も一般的に使用される統計は Average です。 | 
| PutRecord.Success, PutRecords.Success | レコードがストリームに後れていることを示す Average 統計のCloudWatch アラームを使用することをお勧めします。プロデューサーが使用しているものに応じて、一つまたは両方の種類の PUT 種類を選択します。Amazon Kinesis Producer Library (KPL) を使用する場合は、PutRecords.Success を使用します。 | 
| GetRecords.Success | レコードがストリームの役に立っていないことを示す Average 統計の CloudWatch アラームを使用することをお勧めします。 | 

## Kinesis Data Streams の Amazon CloudWatch メトリクスにアクセスする
<a name="cloudwatch-metrics"></a>

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

**CloudWatch コンソールを使用してメトリクスにアクセスするには**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

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

1. ナビゲーションペインで [**Metrics (メトリクス)**] を選択してください。

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

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

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

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

**を使用してメトリクスにアクセスするには AWS CLI**  
[list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) および [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) コマンドを使用します。

**CloudWatch CLI を使用してメトリクスにアクセスするには**  
[mon-list-metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/cli/cli-mon-list-metrics.html) コマンドと [mon-get-stats](https://docs.aws.amazon.com/AmazonCloudWatch/latest/cli/cli-mon-get-stats.html) コマンドを使用します。

**CloudWatch API を使用してメトリクスにアクセスするには**  
[ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html) オペレーションと [GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html) オペレーションを使用します。

# Amazon CloudWatch による Kinesis Data Streams エージェントのヘルスに監視する
<a name="agent-health"></a>

Kinesis エージェントは、**AWS KinesisAgent** の名前空間でカスタム CloudWatch メトリクスを発行します。これらのメトリクスを使用して、エージェントがデータを指定されたとおりに Kinesis Data Streams にデータを送信しており、エージェントが正常であり、データプロデューサーで適切な量の CPU とメモリリソースを消費しているかを評価できます。送信されたレコード数やバイト数などのメトリクスは、エージェントがストリームにデータを送信する速度を知るのに便利です。これらのメトリクスが、ある程度の割合低下するかゼロになることで期待されるしきい値を下回っている場合は、設定の問題、ネットワークエラー、エージェントの状態の問題を示している場合があります。オンホスト CPU やメモリなどの消費量とエージェントエラーカウンターなどのメトリクスは、プロデューサーのリソース使用率を示し、潜在的な構成またはホストのエラーに対する洞察を提供します。最後に、エージェントの問題を調査するのに役立つサービス例外を記録します。これらのメトリクスは、エージェント構成設定 `cloudwatch.endpoint` で指定されたリージョンで報告されます。複数の Kinesis エージェントから発行された CloudWatch メトリクスは、集約または結合されます。エージェント設定の詳細については、「[エージェント設定を指定する](writing-with-agents.md#agent-config-settings)」を参照してください。

## CloudWatch を使用して監視する
<a name="agent-metrics"></a>

Kinesis Data Streams エージェントは、次のメトリクスを CloudWatch に送信します。


| メトリクス | 説明 | 
| --- | --- | 
| BytesSent |  指定された期間に Kinesis Data Streams に送信されたバイト数。 単位: バイト  | 
| RecordSendAttempts |  指定した期間内の `PutRecords` 呼び出しのレコード数 (初回または再試行の)。 単位: カウント  | 
| RecordSendErrors |  指定した期間内の、`PutRecords` への呼び出しの失敗ステータス (再試行など) のレコード数。 単位: カウント  | 
| ServiceErrors |  指定した期間内の、サービスエラー (スロットリングエラーを除く) となった `PutRecords` への呼び出し数。 単位: カウント  | 

# を使用した Amazon Kinesis Data Streams API コールのログ記録 AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

Amazon Kinesis Data Streams は AWS CloudTrail、Kinesis Data Streams のユーザー、ロール、または AWS のサービスによって実行されたアクションを記録するサービスである と統合されています。CloudTrail は、Kinesis Data Streams に対するすべての API コールをイベントとしてキャプチャします。キャプチャされたコールには、Kinesis Data Streams コンソールからのコールと、Kinesis Data Streams API オペレーションへのコードコールが含まれます。証跡を作成する場合は、Kinesis Data Streams のイベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的配信を有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの **[イベント履歴]** で最新のイベントを表示できます。CloudTrail によって収集された情報を使用して、Kinesis Data Streams に対して実行されたリクエスト、リクエスト実行元の IP アドレス、リクエストの実行者、リクエストの実行時、およびその他の詳細を判断することができます。

設定や有効化の方法など、CloudTrail の詳細については、[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)を参照してください。

## CloudTrail の Kinesis Data Streams の情報
<a name="service-name-info-in-cloudtrail"></a>

CloudTrail は、 AWS アカウントの作成時にアカウントで有効になります。サポートされているイベントアクティビティが Kinesis Data Streams で発生すると、そのアクティビティはイベント**履歴**の他の AWS サービスイベントとともに CloudTrail イベントに記録されます。 AWS アカウントで最近のイベントを表示、検索、ダウンロードできます。詳細については、[CloudTrail イベント履歴でのイベントの表示](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)を参照してください。

Kinesis Data Streams のイベントなど、 AWS アカウントのイベントの継続的な記録については、証跡を作成します。*証跡*により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成すると、証跡はすべての AWS リージョンに適用されます。証跡は、 AWS パーティション内のすべてのリージョンからのイベントをログに記録し、指定した Amazon S3 バケットにログファイルを配信します。さらに、CloudTrail ログで収集されたイベントデータをさらに分析して処理するように他の AWS サービスを設定できます。詳細については、次を参照してください: 
+ [証跡の作成のための概要](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail がサポートするサービスと統合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [CloudTrail 用 Amazon SNS 通知の構成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [複数のリージョンから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)および[複数のアカウントから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

Kinesis Data Streams は、CloudTrail ログファイルのイベントとして以下のアクションのログ記録をサポートします。
+ [AddTagsToStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_AddTagsToStream.html)
+ [CreateStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_CreateStream.html)
+ [DecreaseStreamRetentionPeriod](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DecreaseStreamRetentionPeriod.html)
+ [DeleteStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DeleteStream.html)
+ [DeregisterStreamConsumer](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DeregisterStreamConsumer.html)
+ [DescribeStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStream.html)
+ [DescribeStreamConsumer](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStreamConsumer.html)
+ [DisableEnhancedMonitoring](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DisableEnhancedMonitoring.html)
+ [EnableEnhancedMonitoring](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_EnableEnhancedMonitoring.html)
+ [GetRecords](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html)
+ [GetShardIterator](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html)
+ [IncreaseStreamRetentionPeriod](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_IncreaseStreamRetentionPeriod.html)
+ [ListStreamConsumers](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListStreamConsumers.html)
+ [ListStreams](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListStreams.html)
+ [ListTagsForStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListTagsForStream.html)
+ [MergeShards](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_MergeShards.html)
+ [PutRecord](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html)
+ [PutRecords](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecords.html)
+ [RegisterStreamConsumer](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_RegisterStreamConsumer.html)
+ [RemoveTagsFromStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_RemoveTagsFromStream.html)
+ [SplitShard](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SplitShard.html)
+ [StartStreamEncryption](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_StartStreamEncryption.html)
+ [StopStreamEncryption](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_StopStreamEncryption.html)
+ [SubscribeToShard](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SubscribeToShard.html)
+ [UpdateShardCount](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_UpdateShardCount.html)
+ [UpdateStreamMode](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_UpdateStreamMode.html)

各イベントまたはログエントリには、誰がリクエストを生成したかという情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます。
+ リクエストがルートまたは AWS Identity and Access Management (IAM) ユーザー認証情報を使用して行われたかどうか。
+ リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。
+ リクエストが別の AWS サービスによって行われたかどうか。

詳細については、「[CloudTrail userIdentity 要素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)」を参照してください。

## 例: Kinesis Data Streams ログファイルエントリ
<a name="understanding-service-name-entries"></a>

「トレイル」は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルは、単一か複数のログエントリを含みます。イベントは、任意の出典からの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API 呼び出しの順序付けられたスタックトレースではないため、特定の順序では表示されません。

以下は `CreateStream`、`DescribeStream`、`ListStreams`、`DeleteStream`、`SplitShard` および `MergeShards` のアクションを示す CloudTrail ログエントリの例です。

```
{
    "Records": [
        {
            "eventVersion": "1.01",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::012345678910:user/Alice",
                "accountId": "012345678910",
                "accessKeyId": "EXAMPLE_KEY_ID",
                "userName": "Alice"
            },
            "eventTime": "2014-04-19T00:16:31Z",
            "eventSource": "kinesis.amazonaws.com",
            "eventName": "CreateStream",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "127.0.0.1",
            "userAgent": "aws-sdk-java/unknown-version Linux/x.xx",
            "requestParameters": {
                "shardCount": 1,
                "streamName": "GoodStream"
            },
            "responseElements": null,
            "requestID": "db6c59f8-c757-11e3-bc3b-57923b443c1c",
            "eventID": "b7acfcd0-6ca9-4ee1-a3d7-c4e8d420d99b"
        },
        {
            "eventVersion": "1.01",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::012345678910:user/Alice",
                "accountId": "012345678910",
                "accessKeyId": "EXAMPLE_KEY_ID",
                "userName": "Alice"
            },
            "eventTime": "2014-04-19T00:17:06Z",
            "eventSource": "kinesis.amazonaws.com",
            "eventName": "DescribeStream",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "127.0.0.1",
            "userAgent": "aws-sdk-java/unknown-version Linux/x.xx",
            "requestParameters": {
                "streamName": "GoodStream"
            },
            "responseElements": null,
            "requestID": "f0944d86-c757-11e3-b4ae-25654b1d3136",
            "eventID": "0b2f1396-88af-4561-b16f-398f8eaea596"
        },
        {
            "eventVersion": "1.01",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::012345678910:user/Alice",
                "accountId": "012345678910",
                "accessKeyId": "EXAMPLE_KEY_ID",
                "userName": "Alice"
            },
            "eventTime": "2014-04-19T00:15:02Z",
            "eventSource": "kinesis.amazonaws.com",
            "eventName": "ListStreams",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "127.0.0.1",
            "userAgent": "aws-sdk-java/unknown-version Linux/x.xx",
            "requestParameters": {
                "limit": 10
            },
            "responseElements": null,
            "requestID": "a68541ca-c757-11e3-901b-cbcfe5b3677a",
            "eventID": "22a5fb8f-4e61-4bee-a8ad-3b72046b4c4d"
        },
        {
            "eventVersion": "1.01",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::012345678910:user/Alice",
                "accountId": "012345678910",
                "accessKeyId": "EXAMPLE_KEY_ID",
                "userName": "Alice"
            },
            "eventTime": "2014-04-19T00:17:07Z",
            "eventSource": "kinesis.amazonaws.com",
            "eventName": "DeleteStream",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "127.0.0.1",
            "userAgent": "aws-sdk-java/unknown-version Linux/x.xx",
            "requestParameters": {
                "streamName": "GoodStream"
            },
            "responseElements": null,
            "requestID": "f10cd97c-c757-11e3-901b-cbcfe5b3677a",
            "eventID": "607e7217-311a-4a08-a904-ec02944596dd"
        },
        {
            "eventVersion": "1.01",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::012345678910:user/Alice",
                "accountId": "012345678910",
                "accessKeyId": "EXAMPLE_KEY_ID",
                "userName": "Alice"
            },
            "eventTime": "2014-04-19T00:15:03Z",
            "eventSource": "kinesis.amazonaws.com",
            "eventName": "SplitShard",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "127.0.0.1",
            "userAgent": "aws-sdk-java/unknown-version Linux/x.xx",
            "requestParameters": {
                "shardToSplit": "shardId-000000000000",
                "streamName": "GoodStream",
                "newStartingHashKey": "11111111"
            },
            "responseElements": null,
            "requestID": "a6e6e9cd-c757-11e3-901b-cbcfe5b3677a",
            "eventID": "dcd2126f-c8d2-4186-b32a-192dd48d7e33"
        },
        {
            "eventVersion": "1.01",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::012345678910:user/Alice",
                "accountId": "012345678910",
                "accessKeyId": "EXAMPLE_KEY_ID",
                "userName": "Alice"
            },
            "eventTime": "2014-04-19T00:16:56Z",
            "eventSource": "kinesis.amazonaws.com",
            "eventName": "MergeShards",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "127.0.0.1",
            "userAgent": "aws-sdk-java/unknown-version Linux/x.xx",
            "requestParameters": {
                "streamName": "GoodStream",
                "adjacentShardToMerge": "shardId-000000000002",
                "shardToMerge": "shardId-000000000001"
            },
            "responseElements": null,
            "requestID": "e9f9c8eb-c757-11e3-bf1d-6948db3cd570",
            "eventID": "77cf0d06-ce90-42da-9576-71986fec411f"
        }
    ]
}
```

# Amazon CloudWatch を使用した Kinesis Client Library を監視する
<a name="monitoring-with-kcl"></a>

Amazon Kinesis Data Streams の [Kinesis Client Library](https://docs.aws.amazon.com/kinesis/latest/dev/developing-consumers-with-kcl.html) (KCL) は、KCL アプリケーションの名前を名前空間として使用して、お客様に代わってカスタム Amazon CloudWatch メトリクスを発行します。[CloudWatch console](https://console.aws.amazon.com/cloudwatch/) に移動し、[**カスタムメトリクス**] を選択すると、これらのメトリクスを表示できます。カスタムメトリクスに関する詳細については、*Amazon CloudWatch ユーザーガイド*の[カスタムメトリクスを発行する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html)を参照してください。

KCL によって CloudWatch にアップロードされたメトリクスには、小額の課金が発生します。具体的には、*Amazon CloudWatch カスタムメトリクス*と *Amazon CloudWatch API リクエスト*の料金が適用されます。詳細については、「[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)」をご覧ください。

**Topics**
+ [メトリクスと名前空間](#metrics-namespace)
+ [メトリクスレベルとディメンション](#metric-levels)
+ [メトリクスの設定](#metrics-config)
+ [メトリクスのリスト](#kcl-metrics-list)

## メトリクスと名前空間
<a name="metrics-namespace"></a>

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

## メトリクスレベルとディメンション
<a name="metric-levels"></a>

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

メトリクスレベル  
すべてのメトリクスに、個別のレベルが割り当てられます。メトリクスのレポートレベルを設定すると、レポートレベル以下の個別のレベルのメトリクスは CloudWatch に送信されません。このレベルとして、`NONE`、`SUMMARY`、`DETAILED` があります。デフォルト設定は `DETAILED` であり、すべてのメトリクスが CloudWatch に送信されます。レポートレベル `NONE` は、メトリクスがまったく送信されないことを意味します。各メトリクスに割り当てられるメトリクスの詳細については、[メトリクスのリスト](#kcl-metrics-list)を参照してください。

有効なディメンション  
すべての 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 ユーザーガイド*のAmazon CloudWatch の概念トピックの[ディメンション](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Dimension)セクションを参照してください。  
`WorkerIdentifier` ディメンションが有効で、特定のKCL ワーカーが再起動するたびにワーカー ID プロパティに異なる値が使用される場合、新しい `WorkerIdentifier` ディメンション値を持つ新しいメトリクスのセットが CloudWatch に送信されます。特定の KCL ワーカーの再起動で、`WorkerIdentifier` ディメンションの値が同じである必要がある場合、各ワーカーの初期化中に同じワーカー ID 値を明示的に指定する必要があります。アクティブな各 KCL ワーカーのワーカー ID 値は、すべての KCL ワーカー間で一意である必要があります。

## メトリクスの設定
<a name="metrics-config"></a>

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

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

## メトリクスのリスト
<a name="kcl-metrics-list"></a>

次の表には、範囲およびオペレーションによってグループ分けされた KCL メトリクスが一覧表示されています。

**Topics**
+ [KCL アプリケーションあたりのメトリクス](#kcl-metrics-per-app)
+ [ワーカーあたりのメトリクス](#kcl-metrics-per-worker)
+ [シャードあたりのメトリクス](#kcl-metrics-per-shard)

### KCL アプリケーションあたりのメトリクス
<a name="kcl-metrics-per-app"></a>

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

**Topics**
+ [LeaseAssignmentManager](#lease-assignment-manager)
+ [InitializeTask](#init-task)
+ [ShutdownTask](#shutdown-task)
+ [ShardSyncTask](#shard-sync-task)
+ [BlockOnParentTask](#block-parent-task)
+ [PeriodicShardSyncManager](#periodic-task)
+ [MultistreamTracker](#multi-task)

#### LeaseAssignmentManager
<a name="lease-assignment-manager"></a>

`LeaseAssignmentManager` オペレーションは、ワーカーへのリースの割り当ておよびリースの再分配を行い、ワーカーリソースの均等な利用を実現する役割を担います。このオペレーションのロジックには、リーステーブルからリース関連のメタデータを読み取り、ワーカーメトリクステーブルからメトリクスを取得し、リースの割り当てを実行する処理が含まれます。


| メトリクス | 説明 | 
| --- | --- | 
|  LeaseAndWorkerMetricsLoad.Time  |  リース割り当てマネージャー (LAM) で、すべてのリースおよびワーカーメトリクスエントリを読み込むのに要した時間を示します。LAM は、KCL 3.x で導入された新しいリース割り当ておよび負荷分散アルゴリズムです。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| TotalLeases |  現在の KCL アプリケーションのリースの合計数。 メトリクスレベル: Summary 単位: カウント  | 
| NumWorkers |  KCL アプリケーションのワーカーの合計数。 メトリクスレベル: Summary 単位: カウント  | 
|  AssignExpiredOrUnassignedLeases.Time  |  期限切れのリースをメモリ上で割り当てる処理に要した時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| LeaseSpillover |  ワーカーごとのリース数またはスループットの上限に達したために割り当てられなかったリースの数。 メトリクスレベル: Summary 単位: カウント  | 
|  BalanceWorkerVariance.Time  |  ワーカー間でリースのメモリ上のバランシングを実行する処理に要した時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
|  NumOfLeasesReassignment  |  現在の再割り当てイテレーションで実行されたリースの再割り当ての合計数。 メトリクスレベル: Summary 単位: カウント  | 
|  FailedAssignmentCount  |  DynamoDB のリーステーブルに対する AssignLease 呼び出しで発生した失敗の数。 メトリクスレベル: Detailed 単位: カウント  | 
|  ParallelyAssignLeases.Time  |  DynamoDB のリーステーブルに新しい割り当て内容を書き込む処理に要した時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
|  ParallelyAssignLeases.Success  |  新しい割り当て内容の書き込みが正常に完了した回数。 メトリクスレベル: Detailed 単位: カウント  | 
|  TotalStaleWorkerMetricsEntry  |  クリーンアップが必要なワーカーメトリクスエントリの合計数。 メトリクスレベル: Detailed 単位: カウント  | 
| StaleWorkerMetricsCleanup.Time |  DynamoDB のワーカーメトリクステーブルからワーカーメトリクスエントリを削除する処理に要した時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| Time |  `LeaseAssignmentManager` オペレーションにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 
| Success |  `LeaseAssignmentManager` オペレーションが正常に完了した回数。 メトリクスレベル: Summary 単位: カウント  | 
| ForceLeaderRelease |  リース割り当てマネージャーが 3 回連続で失敗し、リーダーワーカーがリーダーシップを解放していることを示します。 メトリクスレベル: Summary 単位: カウント  | 
|  NumWorkersWithInvalidEntry  |  無効と見なされたワーカーメトリクスエントリの数。 メトリクスレベル: Summary 単位: カウント  | 
|  NumWorkersWithFailingWorkerMetric  |  ワーカーメトリクスの値の 1 つとして -1 (ワーカーメトリクス値が利用できないことを示す) が含まれているワーカーメトリクスエントリの数。 メトリクスレベル: Summary 単位: カウント  | 
|  LeaseDeserializationFailureCount  |  逆シリアル化に失敗したリーステーブル内のリースエントリ。 メトリクスレベル: Summary 単位: カウント  | 

#### InitializeTask
<a name="init-task"></a>

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


| メトリクス | 説明 | 
| --- | --- | 
| KinesisDataFetcher.getIterator.Success |  KCL アプリケーションあたりの `GetShardIterator` オペレーションの成功回数。 メトリクスレベル: Detailed 単位: カウント  | 
| KinesisDataFetcher.getIterator.Time |  指定された KCL アプリケーションの `GetShardIterator` オペレーションあたりの所要時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| RecordProcessor.initialize.Time |  レコードプロセッサの初期化メソッドにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 
| Success |  レコードプロセッサの初期化の成功回数。 メトリクスレベル: Summary 単位: カウント  | 
| Time |  KCL ワーカーがレコードプロセッサの初期化にかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 

#### ShutdownTask
<a name="shutdown-task"></a>

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


| メトリクス | 説明 | 
| --- | --- | 
| CreateLease.Success |  親シャードのシャットダウンの後に、新しい子シャードが KCL アプリケーションの DynamoDB テーブルに正常に追加された回数。 メトリクスレベル: Detailed 単位: カウント  | 
| CreateLease.Time |  KCL アプリケーションの DynamoDB テーブルに新しい子シャード情報を追加する所要時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| UpdateLease.Success |  レコードプロセッサのシャットダウン中に成功した最終チェックポイントの数。 メトリクスレベル: Detailed 単位: カウント  | 
| UpdateLease.Time |  レコードプロセッサのシャットダウン中にチェックポイントオペレーションにかかった時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| RecordProcessor.shutdown.Time |  レコードプロセッサのシャットダウンメソッドにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 
| Success |  シャットダウンタスクの成功回数。 メトリクスレベル: Summary 単位: カウント  | 
| Time |  KCL ワーカーがシャットダウンタスクにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 

#### ShardSyncTask
<a name="shard-sync-task"></a>

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


| メトリクス | 説明 | 
| --- | --- | 
| CreateLease.Success |  KCL アプリケーションの DynamoDB テーブルへの新しいシャード情報の追加が成功した回数。 メトリクスレベル: Detailed 単位: カウント  | 
| CreateLease.Time |  KCL アプリケーションの DynamoDB テーブルに新しいシャード情報を追加する所要時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| Success |  シャード同期オペレーションの成功回数。 メトリクスレベル: Summary 単位: カウント  | 
| Time |  シャード同期オペレーションにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 

#### BlockOnParentTask
<a name="block-parent-task"></a>

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


| メトリクス | 説明 | 
| --- | --- | 
| Success |  親シャードの完了チェックの成功回数。 メトリクスレベル: Summary 単位: カウント  | 
| Time |  親シャードが完了するまでにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 

#### PeriodicShardSyncManager
<a name="periodic-task"></a>

`PeriodicShardSyncManager` は、KCL コンシューマーアプリケーションによって処理されているデータストリームを調べ、部分リースを持つデータストリームを特定し、同期のためにそれらを引き渡します。

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


| メトリクス | 説明 | 
| --- | --- | 
| NumStreamsToSync |  部分リースを含み、同期のために引き渡す必要があるコンシューマーアプリケーションによって処理されるデータストリームの数 ( AWS アカウントごと）。 メトリクスレベル: Summary 単位: カウント  | 
| NumStreamsWithPartialLeases |  部分リースを含むコンシューマーアプリケーションが処理しているデータストリームの数 ( AWS アカウントあたり）。 メトリクスレベル: Summary 単位: カウント  | 
| Success |  回数 `PeriodicShardSyncManager` は、コンシューマーアプリケーションが処理しているデータストリーム内の部分リースを正常に識別できました。 メトリクスレベル: Summary 単位: カウント  | 
| Time |  コンシューマーアプリケーションが処理しているデータストリームを調査し、シャードの同期が必要なデータストリームを特定するために、`PeriodicShardSyncManager` が要する時間 (ミリ秒単位)。 メトリクスレベル: Summary 単位: ミリ秒  | 

#### MultistreamTracker
<a name="multi-task"></a>

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


| メトリクス | 説明 | 
| --- | --- | 
| DeletedStreams.Count |  この期間に削除されたデータストリームの数。 メトリクスレベル: Summary 単位: カウント  | 
| ActiveStreams.Count |  処理されているアクティブなデータストリームの数。 メトリクスレベル: Summary 単位: カウント  | 
| StreamsPendingDeletion.Count |  `FormerStreamsLeasesDeletionStrategy` に基づいて削除が保留中のデータストリームの数。 メトリクスレベル: Summary 単位: カウント  | 

### ワーカーあたりのメトリクス
<a name="kcl-metrics-per-worker"></a>

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

**Topics**
+ [WorkerMetricStatsReporter](#worker-metrics-stats)
+ [LeaseDiscovery](#lease-discovery)
+ [RenewAllLeases](#renew-leases)
+ [TakeLeases](#take-leases)

#### WorkerMetricStatsReporter
<a name="worker-metrics-stats"></a>

`WorkerMetricStatReporter` オペレーションは、現在のワーカーのメトリクスを定期的にワーカーメトリクステーブルに公開する役割を担います。これらのメトリクスは、`LeaseAssignmentManager` オペレーションによるリース割り当ての実行に使用されます。


| メトリクス | 説明 | 
| --- | --- | 
|  InMemoryMetricStatsReporterFailure  |  一部のワーカーメトリクスの失敗により、メモリ内ワーカーメトリクス値の取得に失敗した回数。 メトリクスレベル: Summary 単位: カウント  | 
|  WorkerMetricStatsReporter.Time  |  `WorkerMetricsStats` オペレーションにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 
|  WorkerMetricStatsReporter.Success  |  `WorkerMetricsStats` オペレーションが正常に完了した回数。 メトリクスレベル: Summary 単位: カウント  | 

#### LeaseDiscovery
<a name="lease-discovery"></a>

`LeaseDiscovery` オペレーションは、`LeaseAssignmentManager` オペレーションによって現在のワーカーに割り当てられた新しいリースを特定する役割を担います。このオペレーションのロジックには、リーステーブルのグローバルセカンダリインデックスを読み取ることで、現在のワーカーに割り当てられたリースを特定する処理が含まれます。


| メトリクス | 説明 | 
| --- | --- | 
|  ListLeaseKeysForWorker.Time  |  リーステーブルのグローバルセカンダリインデックスを呼び出し、現在のワーカーに割り当てられたリースキーを取得するまでの時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
|  FetchNewLeases.Time  |  リーステーブルからすべての新しいリースを取得するまでに要する時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
|  NewLeasesDiscovered  |  ワーカーに割り当てられた新しいリースの合計数。 メトリクスレベル: Detailed 単位: カウント  | 
|  Time  |  `LeaseDiscovery` オペレーションにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 
|  Success  |  `LeaseDiscovery` オペレーションが正常に完了した回数。 メトリクスレベル: Summary 単位: カウント  | 
|  OwnerMismatch  |  GSI の応答とリーステーブルの整合読み取り結果との間で発生した所有者の不一致の数。 メトリクスレベル: Detailed 単位: カウント  | 

#### RenewAllLeases
<a name="renew-leases"></a>

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


| メトリクス | 説明 | 
| --- | --- | 
| RenewLease.Success |  ワーカーによるリース更新の成功回数。 メトリクスレベル: Detailed 単位: カウント  | 
| RenewLease.Time |  リース更新オペレーションにかかった時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| CurrentLeases |  すべてのリースの更新後にワーカーによって所有されているシャードリースの数。 メトリクスレベル: Summary 単位: カウント  | 
| LostLeases |  ワーカーによって所有されているすべてのリースの更新を試みたときに失われたシャードリースの数。 メトリクスレベル: Summary 単位: カウント  | 
| Success |  ワーカーに対してリース更新オペレーションが正常に実行された回数。 メトリクスレベル: Summary 単位: カウント  | 
| Time |  ワーカーのすべてのリースを更新するのにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 

#### TakeLeases
<a name="take-leases"></a>

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


| メトリクス | 説明 | 
| --- | --- | 
| ListLeases.Success |  すべてのシャードリースがKCL アプリケーションのDynamoDB テーブルから正常に取得された回数。 メトリクスレベル: Detailed 単位: カウント  | 
| ListLeases.Time |  KCL アプリケーションの DynamoDB テーブルからすべてのシャードリースを取得する所要時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| TakeLease.Success |  ワーカーが他のKCL ワーカーからシャードリースを正常に取得した回数。 メトリクスレベル: Detailed 単位: カウント  | 
| TakeLease.Time |  ワーカーが取得したリースを使用してリーステーブルを更新するのにかかった時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| NumWorkers |  特定のワーカーにより識別されるワーカーの総数。 メトリクスレベル: Summary 単位: カウント  | 
| NeededLeases |  現在のワーカーがシャード処理の負荷を分散するのに必要なシャードリースの数。 メトリクスレベル: Detailed 単位: カウント  | 
| LeasesToTake |  ワーカーが取得を試みるリースの数。 メトリクスレベル: Detailed 単位: カウント  | 
| TakenLeases |  ワーカーが取得に成功したリースの数。 メトリクスレベル: Summary 単位: カウント   | 
| TotalLeases |  CL アプリケーションが処理しているシャードの総数。 メトリクスレベル: Detailed 単位: カウント  | 
| ExpiredLeases |  特定のワーカーによって識別されるどのワーカーでも処理されていないシャードの総数。 メトリクスレベル: Summary 単位: カウント  | 
| Success |  `TakeLeases` オペレーションが正常に完了した回数。 メトリクスレベル: Summary 単位: カウント  | 
| Time |  ワーカーの `TakeLeases` オペレーションにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 

### シャードあたりのメトリクス
<a name="kcl-metrics-per-shard"></a>

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

#### ProcessTask
<a name="process-task"></a>

`ProcessTask` オペレーションは、現在のイテレーター位置を使用して [GetRecords](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html) を呼び出すことにより、ストリームからレコードを取得して、レコードプロセッサの `processRecords` 関数を起動します。


| メトリクス | 説明 | 
| --- | --- | 
| KinesisDataFetcher.getRecords.Success |  Kinesis data stream シャードあたりの `GetRecords` オペレーションの成功回数。 メトリクスレベル: Detailed 単位: カウント  | 
| KinesisDataFetcher.getRecords.Time |  Kinesis data stream シャードの `GetRecords` オペレーションあたりの所要時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| UpdateLease.Success |  指定されたシャードのレコードプロセッサによってチェックポイントが正常に作成された回数。 メトリクスレベル: Detailed 単位: カウント  | 
| UpdateLease.Time |  指定されたシャードの各チェックポイントオペレーションにかかった時間。 メトリクスレベル: Detailed 単位: ミリ秒  | 
| DataBytesProcessed |  `ProcessTask` の各呼び出しで処理されたレコードのバイト単位の合計サイズ。 メトリクスレベル: Summary 単位: バイト  | 
| RecordsProcessed |  `ProcessTask` の各呼び出しで処理されたレコード数。 メトリクスレベル: Summary 単位: カウント  | 
| ExpiredIterator |  `GetRecords` を呼び出したときに受信した ExpiredIteratorException の数。 メトリクスレベル: Summary 単位: カウント  | 
| MillisBehindLatest | 現在のイテレーターがシャード内の最新のレコード (先端) から遅れている時間。この値は、応答の最新レコードと現在時間における時間差と同じかそれ以下です。これは、最新の応答レコードのタイムスタンプを比較するよりも、シャードが先端からどれくらい離れているかを示すより正確な反映です。この値は、各レコードの全タイムスタンプの平均ではなく、レコードの最新バッチに適用されます。メトリクスレベル: Summary単位: ミリ秒 | 
| RecordProcessor.processRecords.Time |  レコードプロセッサの `processRecords` メソッドにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 
| Success |  プロセスタスクオペレーションの成功回数。 メトリクスレベル: Summary 単位: カウント  | 
| Time |  プロセスタスクオペレーションにかかった時間。 メトリクスレベル: Summary 単位: ミリ秒  | 

# Amazon CloudWatch を使用した Kinesis Client Library を監視する
<a name="monitoring-with-kpl"></a>

 Amazon Kinesis Data Streams の [Amazon Kinesis Producer Library](https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-kpl.html) (KPL) は、お客様に代わってカスタム Amazon CloudWatch メトリクスを発行します。[CloudWatch console](https://console.aws.amazon.com/cloudwatch/) に移動し、[**カスタムメトリクス**] を選択すると、これらのメトリクスを表示できます。カスタムメトリクスに関する詳細については、*Amazon CloudWatch ユーザーガイド*の[カスタムメトリクスを発行する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html)を参照してください。

KPL によって CloudWatch にアップロードされたメトリクスには、小額の課金が発生します。具体的には、Amazon CloudWatch カスタムメトリクスと Amazon CloudWatch API リクエストの料金が適用されます。詳細については、「[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)」をご覧ください。ローカルメトリクスの収集では、CloudWatch の課金は発生しません。

**Topics**
+ [メトリクス、ディメンション、および名前空間](#kpl-metrics)
+ [メトリクスレベルと詳細度](#kpl-metrics-granularity)
+ [ローカルアクセスと Amazon CloudWatch のアップロード](#kpl-metrics-local-upload)
+ [メトリクスのリスト](#kpl-metrics-list)

## メトリクス、ディメンション、および名前空間
<a name="kpl-metrics"></a>

KPL の起動時にアプリケーション名を指定できます。これは、メトリクスをアップロードする際、名前空間の一部として使用されます。これはオプションであり、アプリケーション名を設定しない場合は、KPL によりデフォルト値が設定されます。

また、メトリクスに任意の追加ディメンションを追加するように KPL を設定できます。これは、より詳細なデータが CloudWatch メトリクスに必要な場合に便利です。たとえば、ディメンションとしてホスト名を追加でき、これによりフリート全体の均一でない負荷分散を特定できます。すべての KPL 構成設定は変更不可能なため、KPL インスタンスを初期化した後、これらの追加ディメンションを変更することはできません。

## メトリクスレベルと詳細度
<a name="kpl-metrics-granularity"></a>

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

*メトリクスレベル*  
これは、メトリクスの重要性を示すおおよその目安です。すべてのメトリクスにレベルが割り当てられます。レベルを設定すると、それより下のレベルのメトリクスは、CloudWatch に送信されません。このレベルとして、`NONE`、`SUMMARY`、`DETAILED` があります。デフォルト設定は `DETAILED` であり、すべてのメトリクスが対象です。`NONE`は、メトリクスが一切ないことを意味し、どのメトリクスもそのレベルに割り当てられません。

*詳細度*  
これは、追加の詳細度レベルで同じメトリクスが出力されるかどうかを制御します。このレベルとして、`GLOBAL`、`STREAM`、`SHARD` があります。デフォルト設定は `SHARD` で、最も詳細なメトリクスが含まれます。  
`SHARD` が選択されると、ストリーム名とシャード ID をディメンションとしてメトリクスが出力されます。また、同じメトリクスは、ストリーム名のディメンションのみを使用して出力されるため、そのメトリクスにはストリーム名がありません。つまり、ある特定のメトリクスについて、それぞれに 2 つのシャードがある 2 つのストリームから、7 つのCloudWatch メトリクスが生成されます。各シャードに 1 つ、各ストリームに 1 つ、全体に 1 つのメトリクスが生成され、これらはどれも同じ統計情報を記述していますが、詳細度のレベルは異なります。次の図は、これを説明するものです。  
異なる詳細度から階層が形成され、システム内のすべてのメトリクスから、メトリクス名をルートとするツリーが構成されます。  

```
MetricName (GLOBAL):           Metric X                    Metric Y
                                  |                           |
                           -----------------             ------------
                           |               |             |          |
StreamName (STREAM):    Stream A        Stream B      Stream A   Stream B
                           |               |
                        --------        ---------
                        |      |        |       |
ShardID (SHARD):     Shard 0 Shard 1  Shard 0 Shard 1
```
すべてのメトリクスをシャードレベルで使用できるわけではありません。一部のメトリクスはストリームレベルまたは本質的にグローバルです。これらは、シャードレベルのメトリクスを有効にしても、シャードレベルで生成されません (前の図の `Metric Y`)。  
追加のディメンションを指定すると、`tuple:<DimensionName, DimensionValue, Granularity>` に値を指定する必要があります。詳細度は、カスタムディメンションが階層のどこに挿入されたかを判断するのに使用されます。`GLOBAL`は、追加のディメンションがメトリクス名の後に挿入されたことを意味し、`STREAM` はストリーム名の後に、`SHARD` は ID シャードの後に挿入されたことをそれぞれ意味します。複数の追加ディメンションが詳細度レベルごとに指定された場合、それらは指定された順序で挿入されます。

## ローカルアクセスと Amazon CloudWatch のアップロード
<a name="kpl-metrics-local-upload"></a>

現在の KPL インスタンスのメトリクスはローカルでリアルタイムに使用できるため、いつでも KPL にクエリを実行してメトリクスを取得できます。 KPL では、CloudWatch の場合と同様に、すべてのメトリクスの合計、平均、最小値、最大値、および個数をローカルで計算します。

プログラムの開始から現在の時点までの累積として、または過去 *N* 秒間 (*N* は 1 から 60 までの整数) のローリングウィンドウを使用して統計情報を取得できます。

すべてのメトリクスは、CloudWatch へのアップロードに使用することができます。これは、複数のホスト、モニタリング、およびアラームの間でデータを集約するのに特に役立ちます。この機能は、ローカルでは使用できません。

前に説明したように、*メトリクスレベル*と*詳細度*の設定を使用してどのメトリクスをアップロードするかを選択できます。ローカルでメトリクスをアップロードしたり使用したりすることはできません。

データポイントを個別にアップロードするのは、高トラフィックの場合、毎秒数百万のアップロードが発生するためお勧めしません。そのため、KPL は、メトリクスをローカルで 1 分間のバケットに集約し、有効なメトリクスごとに 1 分あたり 1 回ずつ統計情報オブジェクトを CloudWatch にアップロードします。



## メトリクスのリスト
<a name="kpl-metrics-list"></a>


| メトリクス | 説明 | 
| --- | --- | 
| UserRecordsReceived |  入力オペレーションで KPL コアにより受信された論理ユーザーレコードの数。シャードレベルでは使用できません。 メトリクスレベル: Detailed  単位: 数   | 
| UserRecordsPending |  現在保留状態にあるユーザーレコード数の定期的なサンプリング。レコードが現在バッファ処理されていて送信待ちの場合、または、送信済みでバックエンドサービスで処理中の場合、そのレコードは保留状態です。シャードレベルでは使用できません。 KPL が提供する専用のメソッドを使用して、グローバルレベルでこのメトリクスを取得することで、お客様は PUT レートを管理できます。 メトリクスレベル: Detailed  単位: 数   | 
| UserRecordsPut |  入力に成功した論理ユーザーレコードの数。 KPL は、失敗したレコードに対してゼロを出力します。このため、平均が成功率に、個数が総試行回数に、個数と合計の差が失敗件数にそれぞれ対応します。 メトリクスレベル: Summary 単位: 数  | 
| UserRecordsDataPut |  入力に成功した論理ユーザーレコードのバイト数。 メトリクスレベル: Detailed  単位: バイト   | 
| KinesisRecordsPut |  入力に成功した Kinesis Data Streams レコードの数 (各 Kinesis Data Streams レコードには複数のユーザーレコードを含めることができます)。 KPL は、失敗したレコードに対してゼロを出力します。このため、平均が成功率に、個数が総試行回数に、個数と合計の差が失敗件数にそれぞれ対応します。 メトリクスレベル: Summary  単位: 数   | 
| KinesisRecordsDataPut |  Kinesis Data Streams レコードのバイト数。 メトリクスレベル: Detailed  単位: バイト   | 
| ErrorsByCode |  各種類のエラーコードの数。これにより、`ErrorCode` や `StreamName` などの通常のディメンションに加え、ディメンション `ShardId` が追加されます。シャードに対して、すべてのエラーを追跡することはできません。追跡できないエラーは、ストリームレベルまたはグローバルレベルでのみ出力されます。このメトリクスは、スロットリング、シャードマッピングの変更、内部エラー、サービス使用不可、タイムアウトなどに関する情報をとらえます。 Kinesis Data Streams API のエラーは、Kinesis Data Streams レコードごとに 1 回カウントされます。Kinesis Data Streams レコード内の複数のユーザーレコードで複数回のカウントが生じることはありません。 メトリクスレベル: Summary  単位: 数   | 
| AllErrors |  これは、**コード別のエラー**と同じエラーによってトリガーされますが、エラーの種類は区別されません。異なる種類のすべてのエラーから件数の合計を手計算する必要がなくなるため、これはエラー率の総合的なモニタリングに役立ちます。 メトリクスレベル: Summary  単位: 数   | 
| RetriesPerRecord |  ユーザーレコードあたりの再試行の実行回数。1 回の試行でレコードが成功した場合は、ゼロが出力されます。 ユーザーレコードが終了すると (成功した場合またはそれ以上再試行されない場合)、直ちにデータが出力されます。レコードの有効期限値が大きいと、このメトリクスの出力が大幅に遅延する場合があります。 メトリクスレベル: Detailed  単位: 数   | 
| BufferingTime |  ユーザーレコードが KPL に到着してからバックエンドに送信されるまでの時間。この情報は、レコード単位でユーザーに返されますが、集約された統計情報としても使用できます。 メトリクスレベル: Summary  単位: ミリ秒   | 
| Request Time |  `PutRecordsRequests` の実行にかかる時間。 メトリクスレベル: Detailed  単位: ミリ秒   | 
| User Records per Kinesis Record |  単一の Kinesis Data Streams レコードに集約された論理ユーザーレコードの数。 メトリクスレベル: Detailed  単位: 数   | 
| Amazon Kinesis Records per PutRecordsRequest |  単一の `PutRecordsRequest` に集約された Kinesis Data Streams レコードの数。シャードレベルでは使用できません。 メトリクスレベル: Detailed  単位: 数   | 
| User Records per PutRecordsRequest |  `PutRecordsRequest` に含まれているユーザーレコードの総数。これは、前の 2 つのメトリクスの積にほぼ一致します。シャードレベルでは使用できません。 メトリクスレベル: Detailed  単位: 数   | 