Amazon Kinesis Data Firehose
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 CloudWatch 指标监控 Kinesis Data Firehose

Kinesis Data Firehose 与 Amazon CloudWatch 指标集成,因此您可以为您的 Kinesis Data Firehose 传输流 收集、查看和分析 CloudWatch 指标。例如,您可以监控 IncomingBytesIncomingRecords 指标,以跟踪从数据创建器进入 Kinesis Data Firehose 的数据。

您为 Kinesis Data Firehose 传输流 和代理配置的指标将每五分钟自动收集一次并推送给 CloudWatch。指标会存档两周。两周后,数据会被丢弃。

为 Kinesis Data Firehose 传输流 收集指标是免费的。有关 Kinesis 代理指标的更多信息,请参阅监控 Kinesis 代理的运行状况

服务级别 CloudWatch 指标

AWS/Firehose 命名空间包括以下服务级指标。

指标 说明
BackupToS3.Bytes

在指定时段内传送到 Amazon S3 以进行备份的字节数。当为 Amazon S3 或 Amazon Redshift 目标启用数据转换时,Kinesis Data Firehose 将发出此指标。

单位:字节

BackupToS3.DataFreshness

Kinesis Data Firehose 中的最旧记录的(从进入 Kinesis Data Firehose 至今)的年龄。任何大于此年龄的记录已传送到 Amazon S3 存储桶以进行备份。当为 Amazon S3 或 Amazon Redshift 目标启用数据转换时,Kinesis Data Firehose 将发出此指标。

单位:秒

BackupToS3.Records

在指定时段内传送到 Amazon S3 以进行备份的记录数。当为 Amazon S3 或 Amazon Redshift 目标启用数据转换时,Kinesis Data Firehose 将发出此指标。

单位:计数

BackupToS3.Success

成功的 Amazon S3 备份用 put 命令的总和相比所有 Amazon S3 备份用 put 命令的总和。当为 Amazon S3 或 Amazon Redshift 目标启用数据转换时,Kinesis Data Firehose 将发出此指标。

DataReadFromKinesisStream.Bytes

当数据源是 Kinesis 数据流时,此指标指示从该数据流读取的字节数。此数字包括由于故障转移而重新读取的数量。

单位:字节

DataReadFromKinesisStream.Records

当数据源是 Kinesis 数据流时,此指标指示从该数据流读取的记录数。此数字包括由于故障转移而重新读取的数量。

单位:计数

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 存储桶。

单位:秒

DeliveryToS3.Records

在指定时间段内传送到 Amazon S3 的记录数。

单位:计数

DeliveryToS3.Success

成功的 Amazon S3 put 命令的总和相比所有 Amazon S3 put 命令的总和。

DeliveryToSplunk.Bytes

在指定时段内传送到 Splunk 的字节数。

单位:字节

DeliveryToSplunk.DataAckLatency

Kinesis Data Firehose 向 Splunk 发送数据后,从 Splunk 接收确认所需的大致时间。此指标的增加或减少趋势比绝对近似值更有用。增长趋势可能表明 Splunk 索引器的索引和确认速度较慢。

单位:秒

DeliveryToSplunk.DataFreshness

Kinesis Data Firehose 中的最旧记录的(从进入 Kinesis Data Firehose 至今)的年龄。任何大于此年龄的记录已传送到 Splunk。

单位:秒

DeliveryToSplunk.Records

在指定时段内传送到 Splunk 的记录数。

单位:计数

DeliveryToSplunk.Success

成功建立索引的记录总数相比已尝试的记录总数。

IncomingBytes

在指定时段内进入 Kinesis Data Firehose 流的字节数。

单位:字节

IncomingRecords

在指定时段内进入 Kinesis Data Firehose 流的记录数。

单位:计数

KinesisMillisBehindLatest

当数据源是 Kinesis 数据流时,此指标指示最后一条读取记录落后于 Kinesis 数据流中的最新记录的毫秒数。

单位:毫秒

API 级别 CloudWatch 指标

AWS/Firehose 命名空间包括以下 API 级指标。

指标 说明
DescribeDeliveryStream.Latency

在指定时段内测量的每个 DescribeDeliveryStream 操作所用的时间。

单位:毫秒

DescribeDeliveryStream.Requests

DescribeDeliveryStream 请求的总数。

单位:计数

ListDeliveryStreams.Latency

在指定时段内测量的每个 ListDeliveryStream 操作所用的时间。

单位:毫秒

ListDeliveryStreams.Requests

ListFirehose 请求的总数。

单位:计数

PutRecord.Bytes

在指定时段内使用 PutRecord 放置到 Kinesis Data Firehose 传输流的字节数。

单位:字节

PutRecord.Latency

在指定时段内测量的每个 PutRecord 操作所用的时间。

单位:毫秒

PutRecord.Requests

PutRecord 请求的总数,此数目等于来自 PutRecord 操作的记录的总数。

单位:计数

PutRecordBatch.Bytes

在指定时段内使用 PutRecordBatch 放置到 Kinesis Data Firehose 传输流的字节数。

单位:字节

PutRecordBatch.Latency

在指定时段内测量的每个 PutRecordBatch 操作所用的时间。

单位:毫秒

PutRecordBatch.Records

来自 PutRecordBatch 操作的记录的总数。

单位:计数

PutRecordBatch.Requests

PutRecordBatch 请求的总数。

单位:计数

ThrottledDescribeStream

当数据源是 Kinesis 数据源时,DescribeStream 操作受到限制的总次数。

单位:计数

ThrottledGetRecords

当数据源是 Kinesis 数据源时,GetRecords 操作受到限制的总次数。

单位:计数

ThrottledGetShardIterator

当数据源是 Kinesis 数据源时,GetShardIterator 操作受到限制的总次数。

单位:计数

UpdateDeliveryStream.Latency

在指定时段内测量的每个 UpdateDeliveryStream 操作所用的时间。

单位:毫秒

UpdateDeliveryStream.Requests

UpdateDeliveryStream 请求的总数。

单位:计数

数据转换 CloudWatch 指标

如果启用了使用 Lambda 进行的数据转换,AWS/Firehose 命名空间会包括以下指标。

指标 描述
ExecuteProcessing.Duration

为 Kinesis Data Firehose 所执行的每个 Lambda 函数调用花费的时间。

单位:毫秒

ExecuteProcessing.Success

成功 Lambda 函数调用的总和相比所有 Lambda 函数调用的总和。

SucceedProcessing.Records

在指定时段内成功处理的记录数。

单位:计数

SucceedProcessing.Bytes

在指定时段内成功处理的字节数。

单位:字节

Format Conversion CloudWatch Metrics

If format conversion is enabled, the AWS/Firehose namespace includes the following metrics.

Metric Description
SucceedConversion.Records

The number of successfully converted records.

Units: Count

SucceedConversion.Bytes

The size of the successfully converted records.

Units: Bytes

FailedConversion.Records

The number of records that could not be converted.

Units: Count

FailedConversion.Bytes

The size of the records that could not be converted.

Units: Bytes

Kinesis Data Firehose 的维度

要按传输流筛选指标,请使用 DeliveryStreamName 维度。

访问 Kinesis Data Firehose 的 CloudWatch 指标

您可使用 CloudWatch 控制台、命令行或 CloudWatch API 监控 Kinesis Data Firehose 的指标。以下过程介绍如何使用这些不同的方式访问指标。

使用 CloudWatch 控制台访问指标

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航栏中,选择一个区域。

  3. 在导航窗格中,选择 Metrics

  4. 选择 Firehose 命名空间。

  5. 选择 Delivery Stream MetricsFirehose Metrics

  6. 选择要添加到图表的指标。

使用 AWS CLI 访问指标

使用 list-metricsget-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

有关在警告进入 ALARM 状态时进行故障排查的信息,请参阅Amazon Kinesis Data Firehose 问题排查