CloudWatch メトリクスを使用した Kinesis Data Firehose のモニタリング - Amazon Kinesis Data Firehose

CloudWatch メトリクスを使用した Kinesis Data Firehose のモニタリング

Kinesis Data Firehose は Amazon CloudWatch メトリクスと統合して、Kinesis Data Firehose 配信ストリームの CloudWatch メトリクスを収集、表示、および分析できるようにします。たとえば、IncomingBytes および IncomingRecords メトリクスをモニタリングして、データプロデューサーから Kinesis Data Firehose に取り込まれるデータを追跡できます。

Kinesis Data Firehose 配信ストリームおよびエージェント用に設定するメトリクスは、自動的に収集され、5 分おきに CloudWatch にプッシュされます。2 週間分のメトリクスがアーカイブされ、その期間が経過したデータは破棄されます。

Kinesis Data Firehose 配信ストリーム用に収集されるメトリクスは無料です。Kinesis エージェントのメトリクスについては、「Kinesis エージェントの状態のモニタリング」を参照してください。

データ配信の CloudWatch メトリクス

AWS/Firehose 名前空間には、次のサービスレベルメトリクスが含まれます。BackupToS3.SuccessDeliveryToS3.SuccessDeliveryToSplunk.SuccessDeliveryToElasticsearch.Success、または DeliveryToRedshift.Success の平均値がわずかに下がっても、データ損失を示しているわけではありません。Kinesis Data Firehose は、配信エラーを再試行し、設定された配信先またはバックアップ S3 バケットのいずれかにレコードが正常に配信されるまで次の処理に移行しません。

Amazon ES への配信

メトリクス 説明
DeliveryToElasticsearch.Bytes

指定された期間に Amazon ES にインデックス作成されたバイト数。

単位: バイト

DeliveryToElasticsearch.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この経過時間より古いレコードはすべて Amazon ES に配信済みです。

単位: 秒

DeliveryToElasticsearch.Records

指定された期間に Amazon ES にインデックス作成されたレコード数。

単位: 個

DeliveryToElasticsearch.Success

インデックス作成が試みられたレコードの合計に対する正常にインデックス作成されたレコードの合計。

DeliveryToS3.Bytes

指定した期間に Amazon S3 に配信されたバイト数。Kinesis Data Firehose は、すべてのドキュメントのバックアップを有効にした場合にのみこのメトリクスを送信します。

単位: Count

DeliveryToS3.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この期間より古いレコードはすべて S3 バケットに配信済みです。Kinesis Data Firehose は、すべてのドキュメントのバックアップを有効にした場合にのみこのメトリクスを送信します。

単位: Seconds

DeliveryToS3.Records

指定した Amazon S3 期間にに配信されたレコード数。Kinesis Data Firehose は、すべてのドキュメントのバックアップを有効にした場合にのみこのメトリクスを送信します。

単位: Count

DeliveryToS3.Success

すべての Amazon S3 put コマンドの合計に対する正常に実行された Amazon S3 put コマンドの合計。Kinesis Data Firehose は、バックアップが失敗したドキュメントに対してのみ有効かすべてのドキュメントに対して有効かにかかわらず、常にこのメトリクスを送信します。

Amazon Redshift への配信

メトリクス 説明
DeliveryToRedshift.Bytes

指定された期間に Amazon Redshift にコピーされたバイト数。

単位: Count

DeliveryToRedshift.Records

指定された期間に Amazon Redshift にコピーされたレコード数。

単位: 個

DeliveryToRedshift.Success

すべての Amazon Redshift COPY コマンドの合計に対する正常に実行された Amazon Redshift COPY コマンドの合計。

DeliveryToS3.Bytes

指定された期間に Amazon S3 に配信されたバイト数。

単位: バイト

DeliveryToS3.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この経過時間より古いレコードは S3 バケットに配信済みです。

単位: Seconds

DeliveryToS3.Records

指定された期間に Amazon S3 に配信されたレコード数。

単位: 個

DeliveryToS3.Success

すべての Amazon S3 put コマンドの合計に対する正常に実行された Amazon S3 put コマンドの合計。

BackupToS3.Bytes

指定した期間にバックアップのために Amazon S3 に配信されるバイト数。Kinesis Data Firehose は、Amazon S3 へのバックアップが有効になっている場合に、このメトリクスを送信します。

単位: Count

BackupToS3.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この経過時間より古いレコードは、Amazon S3 バケットに配信されてバックアップされます。Kinesis Data Firehose は、Amazon S3 へのバックアップが有効になっているときに、このメトリクスを送信します。

単位: Seconds

BackupToS3.Records

指定した期間にバックアップのために Amazon S3 に配信されるレコード数。Kinesis Data Firehose は、Amazon S3 へのバックアップが有効になっている場合に、このメトリクスを送信します。

単位: Count

BackupToS3.Success

すべての Amazon S3 put コマンドの合計に対する、成功したバックアップの Amazon S3 put コマンドの合計。Kinesis Data Firehose は、Amazon S3 へのバックアップが有効になっているときに、このメトリクスを送信します。

Amazon S3 への配信

次の表のメトリクスは、配信ストリームのメイン送信先が Amazon S3 の場合に、その配信に関連するものです。

メトリクス 説明
DeliveryToS3.Bytes

指定された期間に Amazon S3 に配信されたバイト数。

単位: バイト

DeliveryToS3.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この経過時間より古いレコードは S3 バケットに配信済みです。

単位: Seconds

DeliveryToS3.Records

指定された期間に Amazon S3 に配信されたレコード数。

単位: 個

DeliveryToS3.Success

すべての Amazon S3 put コマンドの合計に対する正常に実行された Amazon S3 put コマンドの合計。

BackupToS3.Bytes

指定された期間にバックアップのために Amazon S3 に配信されるバイト数。Kinesis Data Firehose は、バックアップが有効になっているとき (データ変換も有効になっている場合にのみ可能) に、このメトリクスを送信します。

単位: Count

BackupToS3.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この経過時間より古いレコードは、Amazon S3 バケットに配信されてバックアップされます。Kinesis Data Firehose は、バックアップが有効になっているとき (データ変換も有効になっている場合にのみ可能) に、このメトリクスを送信します。

単位: Seconds

BackupToS3.Records

指定された期間にバックアップのために Amazon S3 に配信されるレコード数。Kinesis Data Firehose は、バックアップが有効になっているとき (データ変換も有効になっている場合にのみ可能) に、このメトリクスを送信します。

単位: Count

BackupToS3.Success

すべての Amazon S3 put コマンドの合計に対する、成功したバックアップの Amazon S3 put コマンドの合計。Kinesis Data Firehose は、バックアップが有効になっているとき (データ変換も有効になっている場合にのみ可能) に、このメトリクスを送信します。

Splunk への配信

メトリクス 説明
DeliveryToSplunk.Bytes

指定された期間に Splunk に配信されたバイト数。

単位: バイト

DeliveryToSplunk.DataAckLatency

Kinesis Data Firehose がデータを送信した後、Splunk から送達確認を受信するまでの概算時間。このメトリクスの増加または減少傾向は、絶対概算値よりも有用です。傾向が増加すると、Splunk インデクサからのインデックス作成および送達確認の速度が遅くなる可能性があります。

単位: Seconds

DeliveryToSplunk.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この経過時間より古いレコードは Splunk に配信済みです。

単位: Seconds

DeliveryToSplunk.Records

指定された期間に Splunk に配信されたレコード数。

単位: Count

DeliveryToSplunk.Success

インデックス作成が試みられたレコードの合計に対する正常にインデックス作成されたレコードの合計。

DeliveryToS3.Success

すべての Amazon S3 put コマンドの合計に対する正常に実行された Amazon S3 put コマンドの合計。このメトリクスは、Amazon S3 へのバックアップが有効な場合に発行されます。

BackupToS3.Bytes

指定された期間にバックアップのために Amazon S3 に配信されるバイト数。Kinesis Data Firehose は、配信ストリームがすべてのドキュメントをバックアップするように設定されている場合に、このメトリクスを送信します。

単位: Count

BackupToS3.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この期間より古いレコードはすべて Amazon S3 バケットに配信済みです。Kinesis Data Firehose は、配信ストリームがすべてのドキュメントをバックアップするように設定されている場合に、このメトリクスを送信します。

単位: Seconds

BackupToS3.Records

指定された期間にバックアップのために Amazon S3 に配信されるレコード数。Kinesis Data Firehose は、配信ストリームがすべてのドキュメントをバックアップするように設定されている場合に、このメトリクスを送信します。

単位: Count

BackupToS3.Success

すべての Amazon S3 put コマンドの合計に対する、成功したバックアップの Amazon S3 put コマンドの合計。Kinesis Data Firehose は、配信ストリームがすべてのドキュメントをバックアップするように設定されている場合に、このメトリクスを送信します。

データ取り込みメトリクス

Kinesis Data Streams によるデータ取り込み

メトリクス 説明
DataReadFromKinesisStream.Bytes

データソースが Kinesis データストリームである場合、このメトリクスは、そのデータストリームから読み取られたバイト数を示します。この数には、フェイルオーバーによる再読み取りが含まれます。

単位: バイト

DataReadFromKinesisStream.Records

データソースが Kinesis データストリームである場合、このメトリクスは、そのデータストリームから読み取られたレコード数を示します。この数には、フェイルオーバーによる再読み取りが含まれます。

単位: Count

ThrottledDescribeStream

データソースが Kinesis データストリームである場合に DescribeStream オペレーションが調整される合計回数。

単位: Count

ThrottledGetRecords

データソースが Kinesis データストリームである場合に GetRecords オペレーションが調整される合計回数。

単位: Count

ThrottledGetShardIterator

データソースが Kinesis データストリームである場合に GetShardIterator オペレーションが調整される合計回数。

単位: Count

Direct PUT によるデータ取り込み

メトリクス 説明
BackupToS3.Bytes

指定された期間にバックアップのために Amazon S3 に配信されるバイト数。Kinesis Data Firehose は、Amazon S3 または Amazon Redshift の送信先に対してデータ変換が有効になっているときに、このメトリクスを送信します。

単位: バイト

BackupToS3.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この経過時間より古いレコードは、Amazon S3 バケットに配信されてバックアップされます。Kinesis Data Firehose は、Amazon S3 または Amazon Redshift の送信先に対してデータ変換が有効になっているときに、このメトリクスを送信します。

単位: 秒

BackupToS3.Records

指定された期間にバックアップのために Amazon S3 に配信されるレコード数。Kinesis Data Firehose は、Amazon S3 または Amazon Redshift の送信先に対してデータ変換が有効になっているときに、このメトリクスを送信します。

単位: 個

BackupToS3.Success

すべての Amazon S3 put コマンドの合計に対する、成功したバックアップの Amazon S3 put コマンドの合計。Kinesis Data Firehose は、Amazon S3 または Amazon Redshift の宛先に対してデータ変換が有効になっているときに、このメトリクスを送信します。

BytesPerSecondLimit 配信ストリームがスロットリング前に取り込むことのできる 1 秒あたりの現在の最大バイト数。この制限の引き上げをリクエストするには、AWS サポートセンターに移動し、[ケースの作成]、[サービスの制限緩和] の順に選択します。
DataReadFromKinesisStream.Bytes

データソースが Kinesis データストリームである場合、このメトリクスは、そのデータストリームから読み取られたバイト数を示します。この数には、フェイルオーバーによる再読み取りが含まれます。

単位: バイト

DataReadFromKinesisStream.Records

データソースが Kinesis データストリームである場合、このメトリクスは、そのデータストリームから読み取られたレコード数を示します。この数には、フェイルオーバーによる再読み取りが含まれます。

単位: Count

DeliveryToElasticsearch.Bytes

指定された期間に Amazon ES にインデックス作成されたバイト数。

単位: バイト

DeliveryToElasticsearch.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この経過時間より古いレコードはすべて Amazon ES に配信済みです。

単位: 秒

DeliveryToElasticsearch.Records

指定された期間に Amazon ES にインデックス作成されたレコード数。

単位: 個

DeliveryToElasticsearch.Success

インデックス作成が試みられたレコードの合計に対する正常にインデックス作成されたレコードの合計。

DeliveryToRedshift.Bytes

指定された期間に Amazon Redshift にコピーされたバイト数。

単位: バイト

DeliveryToRedshift.Records

指定された期間に Amazon Redshift にコピーされたレコード数。

単位: 個

DeliveryToRedshift.Success

すべての Amazon Redshift COPY コマンドの合計に対する正常に実行された Amazon Redshift COPY コマンドの合計。

DeliveryToS3.Bytes

指定された期間に Amazon S3 に配信されたバイト数。

単位: バイト

DeliveryToS3.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この経過時間より古いレコードは S3 バケットに配信済みです。

単位: Seconds

DeliveryToS3.Records

指定された期間に Amazon S3 に配信されたレコード数。

単位: 個

DeliveryToS3.Success

すべての Amazon S3 put コマンドの合計に対する正常に実行された Amazon S3 put コマンドの合計。

DeliveryToSplunk.Bytes

指定された期間に Splunk に配信されたバイト数。

単位: バイト

DeliveryToSplunk.DataAckLatency

Kinesis Data Firehose がデータを送信した後、Splunk から送達確認を受信するまでの概算時間。このメトリクスの増加または減少傾向は、絶対概算値よりも有用です。傾向が増加すると、Splunk インデクサからのインデックス作成および送達確認の速度が遅くなる可能性があります。

単位: Seconds

DeliveryToSplunk.DataFreshness

Kinesis Data Firehose の最も古いレコードの経過時間 (Kinesis Data Firehose に入ってから現在まで)。この経過時間より古いレコードは Splunk に配信済みです。

単位: Seconds

DeliveryToSplunk.Records

指定された期間に Splunk に配信されたレコード数。

単位: Count

DeliveryToSplunk.Success

インデックス作成が試みられたレコードの合計に対する正常にインデックス作成されたレコードの合計。

IncomingBytes

スロットリング後、指定した期間に配信ストリームに正常に取り込まれたバイト数。

単位: バイト

IncomingPutRequests

スロットリング後、指定した期間に成功した PutRecord および PutRecordBatch リクエストの数。

単位: Count

IncomingRecords

スロットリング後、指定した期間に配信ストリームに正常に取り込まれたレコード数。

単位: Count

KinesisMillisBehindLatest

データソースが Kinesis データストリームである場合、このメトリクスは、前回の読み取りレコードから Kinesis データストリームの最新レコードまでの時間差 (ミリ秒単位) を示します。

単位: ミリ秒

RecordsPerSecondLimit

配信ストリームがスロットリング前に取り込むことのできる 1 秒あたりの現在の最大レコード数。

単位: Count

ThrottledRecords

データ取り込みが配信ストリームの制限の 1 つを超えたために調整されたレコードの数。

単位: Count

API レベルの CloudWatch メトリクス

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

メトリクス 説明
DescribeDeliveryStream.Latency

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

単位: ミリ秒

DescribeDeliveryStream.Requests

DescribeDeliveryStream リクエストの総数。

単位: Count

ListDeliveryStreams.Latency

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

単位: ミリ秒

ListDeliveryStreams.Requests

ListFirehose リクエストの総数。

単位: Count

PutRecord.Bytes

指定された期間に PutRecord を使用して Kinesis Data Firehose 配信ストリームに送信されたバイト数。

単位: バイト

PutRecord.Latency

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

単位: ミリ秒

PutRecord.Requests

PutRecord オペレーションのレコード総数に等しい、PutRecord リクエストの総数。

単位: Count

PutRecordBatch.Bytes

指定された期間に PutRecordBatch を使用して Kinesis Data Firehose 配信ストリームに送信されたバイト数。

単位: バイト

PutRecordBatch.Latency

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

単位: ミリ秒

PutRecordBatch.Records

PutRecordBatch オペレーションのレコード総数。

単位: Count

PutRecordBatch.Requests

PutRecordBatch リクエストの総数。

単位: Count

PutRequestsPerSecondLimit

配信ストリームがスロットリング前に処理できる 1 秒あたりの最大 put リクエスト数。この数には、PutRecord および PutRecordBatch リクエストが含まれます。

単位: Count

ThrottledDescribeStream

データソースが Kinesis データストリームである場合に DescribeStream オペレーションが調整される合計回数。

単位: Count

ThrottledGetRecords

データソースが Kinesis データストリームである場合に GetRecords オペレーションが調整される合計回数。

単位: Count

ThrottledGetShardIterator

データソースが Kinesis データストリームである場合に GetShardIterator オペレーションが調整される合計回数。

単位: Count

UpdateDeliveryStream.Latency

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

単位: ミリ秒

UpdateDeliveryStream.Requests

UpdateDeliveryStream リクエストの総数。

単位: Count

データ変換の CloudWatch メトリクス

Lambda によるデータ変換が有効な場合、AWS/Firehose 名前空間には以下のメトリクスが含まれます。

メトリクス 説明
ExecuteProcessing.Duration

Kinesis Data Firehose によって実行される各 Lambda 関数呼び出しにかかる時間。

単位: ミリ秒

ExecuteProcessing.Success

Lambda 関数呼び出しの合計に対する成功した Lambda 関数呼び出しの合計。

SucceedProcessing.Records

指定した期間中に正常に処理されたレコードの数。

単位: カウント

SucceedProcessing.Bytes

指定した期間中に正常に処理されたバイトの数。

単位: バイト

形式変換 CloudWatch メトリクス

形式の変換が有効な場合、AWS/Firehose 名前空間には以下のメトリクスが含まれます。

メトリクス 説明
SucceedConversion.Records

正常に変換されたレコードの数。

単位: カウント

SucceedConversion.Bytes

正常に変換されたレコードのサイズ。

単位: バイト

FailedConversion.Records

変換できなかったレコードの数。

単位: カウント

FailedConversion.Bytes

変換できなかったレコードのサイズ。

単位: バイト

サーバー側の暗号化 (SSE) CloudWatch のメトリクス

AWS/Firehose 名前空間には、SSE に関連する以下のメトリクスが含まれます。

メトリクス 説明
KMSKeyAccessDenied

サービスが、配信ストリームの KMSAccessDeniedException を検出した回数。

単位: Count

KMSKeyDisabled

サービスが、配信ストリームの KMSDisabledException を検出した回数。

単位: Count

KMSKeyInvalidState

サービスが、配信ストリームの KMSInvalidStateException を検出した回数。

単位: Count

KMSKeyNotFound

サービスが、配信ストリームの KMSNotFoundException を検出した回数。

単位: Count

Kinesis Data Firehose のディメンション

配信ストリームでメトリクスをフィルタするには、DeliveryStreamName ディメンションを使用します。

Kinesis Data Firehose 使用状況に関するメトリクス

CloudWatch 使用状況メトリクスを使用して、アカウントのリソースの使用状況を把握できます。これらのメトリクスを使用して、CloudWatch グラフやダッシュボードで現在のサービスの使用状況を可視化できます。

サービスクォータの使用状況メトリクスは AWS/Usage 名前空間にあり、1 分ごとに収集されます。

現在、この名前空間で CloudWatch が発行する唯一のメトリクス名は ResourceCount です。このメトリクスは、ServiceClassType、および Resource のディメンションで発行されます。

メトリクス 説明
ResourceCount

アカウントで実行されている指定されたリソースの数。リソースは、メトリクスに関連付けられたディメンションによって定義されます。

このメトリクスで最も役に立つ統計は MAXIMUM です。これは、1 分間の期間中に使用されるリソースの最大数を表します。

以下のディメンションは、Kinesis Data Firehose によって発行される使用量メトリクスを絞り込むために使用されます。

ディメンション 説明
Service

リソースを含む AWS のサービスの名前。Kinesis Data Firehose 使用量メトリクスの場合、このディメンションの値は Firehose です。

Class

追跡されるリソースのクラス。Kinesis Data Firehose API 使用状況メトリクスでは、値が None のこのディメンションを使用します。

Type

追跡されるリソースのタイプ。現在、Service ディメンションが Firehose である場合、Type の有効な値は Resource のみです。

Resource

AWS リソースの名前。現在、Service ディメンションが Firehose である場合、Resource の有効な値は DeliveryStreams のみです。

Kinesis Data Firehose の CloudWatch メトリクスへのアクセス

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

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

  1. https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

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

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

  4. Firehose の名前空間を選択します。

  5. [ストリームメトリクスの配信] または [Firehose メトリクス] を選択します。

  6. グラフに追加するメトリクスを選択します。

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

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

aws cloudwatch list-metrics --namespace "AWS/Firehose"
aws cloudwatch get-metric-statistics --namespace "AWS/Firehose" \ --metric-name DescribeDeliveryStream.Latency --statistics Average --period 3600 \ --start-time 2017-06-01T00:00:00Z --end-time 2017-06-30T00:00:00Z

CloudWatch アラームに関するベストプラクティス

以下のメトリクスがバッファリングの制限 (最大 15 分) を超えたときの CloudWatch アラームを追加します。

  • DeliveryToS3.DataFreshness

  • DeliveryToSplunk.DataFreshness

  • DeliveryToElasticsearch.DataFreshness

また、次のメトリクス数式に基づいてアラームを作成します。

  • IncomingBytes (Sum per 5 Minutes) / 300BytesPerSecondLimit の割合に近づく。

  • IncomingRecords (Sum per 5 Minutes) / 300RecordsPerSecondLimit の割合に近づく。

  • IncomingPutRequests (Sum per 5 Minutes) / 300PutRequestsPerSecondLimit の割合に近づく。

アラームを推奨するもう 1 つのメトリクスは ThrottledRecords です。

アラームが ALARM 状態になった場合のトラブルシューティングについては、「Amazon Kinesis Data Firehose のトラブルシューティング」を参照してください。