使用 CloudWatch 指标监控 Kinesis Data Firehose - Amazon Kinesis Data Firehose
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 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 Agent 指标的信息,请参阅。监控 Kinesis Agent 运行 Health 况.

动态分区 CloudWatch 指标

如果动态分区启用后,AWS/Firehose 命名空间包括以下指标。

指标 描述
PartitionCount

正在处理的分区数,换句话说,活动分区计数。此数字在 1 和分区计数限制 500 之间变化(默认值)。

单位:计数

PartitionCountExceeded

此指标表示您是否超过了分区计数限制。根据是否突破限制,它发出 1 或 0。

JQProcessing.Duration

返回在 JQ Lambda 函数中执行 JQ 表达式所花费的时间。

单位:毫秒

PerPartitionThroughput

指示每个分区正在处理的吞吐量。此指标使您能够监控每个分区的吞吐量。每个活动分区支持每秒 25 MB 的最大吞吐量。

单位:标准单位 .bytes 秒

DeliveryToS3.ObjectCount

指示传输到 S3 存储桶的对象数。

单位:计数

数据传输 CloudWatch 指标

Amazon/Firehose 命名空间包括以下服务级指标。如果你看到平均值小幅下降BackupToS3.SuccessDeliveryToS3.SuccessDeliveryToSplunk.SuccessDeliveryToAmazonOpenSearchService.Success,或者DeliveryToRedshift.Success,这并不表明存在数据丢失。Kinesis Data Firehose 会重试传输错误,并且在记录成功传输到配置的目标或备份 S3 存储桶之前,不会继续向前执行。

传输到 OpenSearch 服务

指标 描述
DeliveryToAmazonOpenSearchService.Bytes

在指定时段内针对 OpenSearch 服务建立索引的字节数。

单位:字节

DeliveryToAmazonOpenSearchService.DataFreshness

Kinesis Data Firehose 中的最旧记录(从进入至今)的存在时间。任何大于此年龄的记录已传送到 OpenSearch 服务中。

单位:秒

DeliveryToAmazonOpenSearchService.Records

在指定时段内针对 OpenSearch 服务建立索引的记录数。

单位:计数

DeliveryToAmazonOpenSearchService.Success

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

DeliveryToS3.Bytes

在指定时段内传送到 Amazon S3 的字节数。Kinesis Data Firehose 仅在为所有文档启用备份时,才会发出此指标。

单位:计数

DeliveryToS3.DataFreshness

Kinesis Data Firehose 中的最旧记录(从进入至今)的存在时间。任何大于此年龄的记录已传送到 S3 存储桶。Kinesis Data Firehose 仅在为所有文档启用备份时,才会发出此指标。

单位:秒

DeliveryToS3.Records

在指定时段内传送到 Amazon S3 的记录数。Kinesis Data Firehose 仅在为所有文档启用备份时,才会发出此指标。

单位:计数

DeliveryToS3.Success

成功的 Amazon S3 放入命令的总数相比所有 Amazon S3 put 命令的总数。Kinesis Data Firehose 始终会发出此指标,而无论是仅为失败的文档启用备份还是为所有文档启用备份。

配送至 Amazon Redshift

指标 描述
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 中的最旧记录(从进入至今)的存在时间。任何大于此年龄的记录已传送到 S3 存储桶。

单位:秒

DeliveryToS3.Records

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

单位:计数

DeliveryToS3.Success

成功的 Amazon S3 放入命令的总数相比所有 Amazon S3 put 命令的总数。

BackupToS3.Bytes

在指定时段内传送到 Amazon S3 以进行备份的字节数。启用备份到 Amazon S3 时,Kinesis Data Firehose 会发出此指标。

单位:计数

BackupToS3.DataFreshness

Kinesis Data Firehose 中的最旧记录(从进入至今)的年龄。任何大于此年龄的记录已传送到 Amazon S3 存储桶进行备份。启用备份到 Amazon S3 时,Kinesis Data Firehose 会发出此指标。

单位:秒

BackupToS3.Records

在指定时段内传送到 Amazon S3 进行备份的记录数。启用备份到 Amazon S3 时,Kinesis Data Firehose 会发出此指标。

单位:计数

BackupToS3.Success

成功的 Amazon S3 备份 put 命令的总和相比所有 Amazon S3 备份 put 命令的总和。启用备份到 Amazon S3 时,Kinesis Data Firehose 会发出此指标。

运送到 Amazon S3

下表中的指标与当是传输流的主要目标时,传输到 Amazon S3 的操作相关。

指标 描述
DeliveryToS3.Bytes

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

单位:字节

DeliveryToS3.DataFreshness

Kinesis Data Firehose 中的最旧记录(从进入至今)的存在时间。任何大于此年龄的记录已传送到 S3 存储桶。

单位:秒

DeliveryToS3.Records

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

单位:计数

DeliveryToS3.Success

成功的 Amazon S3 放入命令的总数相比所有 Amazon S3 put 命令的总数。

BackupToS3.Bytes

在指定时段内传送到 Amazon S3 以进行备份的字节数。当启用备份时,Kinesis Data Firehose 将发出此指标(只有在同时启用数据转换时才能启用备份)。

单位:计数

BackupToS3.DataFreshness

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

单位:秒

BackupToS3.Records

在指定时段内传送到 Amazon S3 进行备份的记录数。当启用备份时,Kinesis Data Firehose 将发出此指标(只有在同时启用数据转换时才能启用备份)。

单位:计数

BackupToS3.Success

成功的 Amazon S3 备份 put 命令的总和相比所有 Amazon S3 备份 put 命令的总和。当启用备份时,Kinesis Data Firehose 将发出此指标(只有在同时启用数据转换时才能启用备份)。

传输到 Splunk

指标 描述
DeliveryToSplunk.Bytes

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

单位:字节

DeliveryToSplunk.DataAckLatency

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

单位:秒

DeliveryToSplunk.DataFreshness

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

单位:秒

DeliveryToSplunk.Records

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

单位:计数

DeliveryToSplunk.Success

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

DeliveryToS3.Success

成功的 Amazon S3 放入命令的总数相比所有 Amazon S3 put 命令的总数。启用了对 Amazon S3 的备份时,会发出此指标。

BackupToS3.Bytes

在指定时段内传送到 Amazon S3 以进行备份的字节数。当传输流配置为备份所有文档时,Kinesis Data Firehose 将发出此指标。

单位:计数

BackupToS3.DataFreshness

Kinesis Data Firehose 中的最旧记录(从进入至今)的年龄。任何大于此年龄的记录已传送到 Amazon S3 存储桶进行备份。当传输流配置为备份所有文档时,Kinesis Data Firehose 将发出此指标。

单位:秒

BackupToS3.Records

在指定时段内传送到 Amazon S3 进行备份的记录数。当传输流配置为备份所有文档时,Kinesis Data Firehose 将发出此指标。

单位:计数

BackupToS3.Success

成功的 Amazon S3 备份 put 命令的总和相比所有 Amazon S3 备份 put 命令的总和。当传输流配置为备份所有文档时,Kinesis Data Firehose 将发出此指标。

交付到 HTTP 终端节点

指标 描述
DeliveryToHttpEndpoint.Bytes

成功传送到 HTTP 终端节点的字节数。

单位:字节

DeliveryToHttpEndpoint.Records

成功传送到 HTTP 终端节点的记录数。

单位:COUNT

DeliveryToHttpEndpoint.DataFreshness

Kinesis Data Firehose 中最古老纪录的时代。

单位:秒

DeliveryToHttpEndpoint.Success

向 HTTP 端点发送所有成功的数据请求的总和

单位:计数

DeliveryToHttpEndpoint.ProcessedBytes

尝试处理的字节数,包括重试次数。

DeliveryToHttpEndpoint.ProcessedRecords

尝试的记录数,包括重试次数。

数据摄取指标

通过 Kinesis Data Streams 摄取数据

指标 描述
DataReadFromKinesisStream.Bytes

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

单位:字节

DataReadFromKinesisStream.Records

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

单位:计数

ThrottledDescribeStream

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

单位:计数

ThrottledGetRecords

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

单位:计数

ThrottledGetShardIterator

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

单位:计数

通过直接 PUT 进行的数据摄取

指标 描述
BackupToS3.Bytes

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

单位:字节

BackupToS3.DataFreshness

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 将发出此指标。

BytesPerSecondLimit 在限制之前传输流当前每秒可以摄取的最大字节数。要请求提高此限制,请转至Amazon支持中心然后选择创建案例,然后选择提高服务限制.
DataReadFromKinesisStream.Bytes

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

单位:字节

DataReadFromKinesisStream.Records

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

单位:计数

DeliveryToAmazonOpenSearchService.Bytes

在指定时段内针对 OpenSearch 服务建立索引的字节数。

单位:字节

DeliveryToAmazonOpenSearchService.DataFreshness

Kinesis Data Firehose 中的最旧记录(从进入至今)的存在时间。任何大于此年龄的记录已传送到 OpenSearch 服务中。

单位:秒

DeliveryToAmazonOpenSearchService.Records

在指定时段内针对 OpenSearch 服务建立索引的记录数。

单位:计数

DeliveryToAmazonOpenSearchService.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 中的最旧记录(从进入至今)的存在时间。任何大于此年龄的记录已传送到 S3 存储桶。

单位:秒

DeliveryToS3.Records

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

单位:计数

DeliveryToS3.Success

成功的 Amazon S3 放入命令的总数相比所有 Amazon S3 put 命令的总数。

DeliveryToSplunk.Bytes

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

单位:字节

DeliveryToSplunk.DataAckLatency

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

单位:秒

DeliveryToSplunk.DataFreshness

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

单位:秒

DeliveryToSplunk.Records

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

单位:计数

DeliveryToSplunk.Success

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

IncomingBytes

发生限制后在指定时间段内成功接收到传输流中的字节数。

单位:字节

IncomingPutRequests

发生限制后在指定时间段内成功的 PutRecord 和 PutRecordBatch 请求的数量。

单位:计数

IncomingRecords

发生限制后在指定时间段内成功接收到传输流中的记录数。

单位:计数

KinesisMillisBehindLatest

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

单位:毫秒

RecordsPerSecondLimit

在限制之前传输流当前每秒可以摄取的最大记录数。

单位:计数

ThrottledRecords

由于数据摄取超过其中一个传输流限制而受到限制的记录数。

单位:计数

API 级别 CloudWatch 指标

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

指标 描述
DescribeDeliveryStream.Latency

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

单位:毫秒

DescribeDeliveryStream.Requests

DescribeDeliveryStream 请求的总数。

单位:计数

ListDeliveryStreams.Latency

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

单位:毫秒

ListDeliveryStreams.Requests

ListFirehose 请求的总数。

单位:计数

PutRecord.Bytes

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

单位:字节

PutRecord.Latency

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

单位:毫秒

PutRecord.Requests

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

单位:计数

PutRecordBatch.Bytes

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

单位:字节

PutRecordBatch.Latency

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

单位:毫秒

PutRecordBatch.Records

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

单位:计数

PutRecordBatch.Requests

PutRecordBatch 请求的总数。

单位:计数

PutRequestsPerSecondLimit

在限制之前传输流可以处理的每秒最大输入请求数。此数字包括 PuttRecord 和 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

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

单位:字节

格式转换 CloudWatch 指标

如果启用了格式转换,AWS/Firehose 命名空间会包括以下指标。

指标 描述
SucceedConversion.Records

成功转换的记录的数量。

单位:计数

SucceedConversion.Bytes

成功转换的记录的大小。

单位:字节

FailedConversion.Records

未能转换的记录的数量。

单位:计数

FailedConversion.Bytes

未能转换的记录的大小。

单位:字节

服务器端加密 (SSE) CloudWatch 指标

Amazon/Firehose 命名空间包括以下与 SSE 相关的指标。

指标 描述
KMSKeyAccessDenied

服务遇到传输流的 KMSAccessDeniedException 的次数。

单位:计数

KMSKeyDisabled

服务遇到传输流的 KMSDisabledException 的次数。

单位:计数

KMSKeyInvalidState

服务遇到传输流的 KMSInvalidStateException 的次数。

单位:计数

KMSKeyNotFound

服务遇到传输流的 KMSNotFoundException 的次数。

单位:计数

Kinesis Data Firehose 的尺寸

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

Kinesis Data Firehose 使用指标

您可以使用 CloudWatch 用量指标来提供账户资源使用情况的可见性。使用这些指标在 CloudWatch 图表和控制面板上可视化当前服务用量。

服务配额使用指标位于Amazon/Use 命名空间并且每分钟收集一次。

目前,CloudWatch 发布的此命名空间中唯一的指标名称是ResourceCount. 此指标与 ServiceClassTypeResource 维度一同发布。

指标 描述
ResourceCount

您账户中运行的指定资源的数量。资源由与指标关联的维度定义。

此指标最有用的统计数据是 MAXIMUM,这表示 1 分钟期间内使用的最大资源数。

以下维度用于优化由 Kinesis Data Firehose 发布的用量指标。

维度 描述
Service

包含该资源的 Amazon 服务的名称。对于 Kinesis Data Firehose 用量指标,此维度的值为Firehose.

Class

所跟踪的资源的类。Kinesis Data Firehose API 使用指标使用此维度(值为)None.

Type

所跟踪的资源的类型。当前,当服务维度为 Firehose 时,类型的唯一有效值为 Resource

Resource

Amazon 资源的名称。目前,当服务维度为 Firehose 时,资源的唯一有效值为 DeliveryStreams

访问 Kinesis Data Firehose 的 CloudWatch 指标

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

使用 CloudWatch 控制台访问指标

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

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

  3. 在导航窗格中,选择 Metrics(指标)

  4. 选择 Firehose 命名空间。

  5. 选择 Delivery Stream MetricsFirehose Metrics

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

使用 Amazon CLI 访问指标

使用 list-metricsget-metric-statistics 命令。

aws cloudwatch list-metrics --namespace "Amazon/Firehose"
aws cloudwatch get-metric-statistics --namespace "Amazon/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

  • DeliveryToAmazonOpenSearchService.DataFreshness

此外,还要基于以下指标数学表达式创建警报。

  • IncomingBytes (Sum per 5 Minutes) / 300 接近 BytesPerSecondLimit 百分比。

  • IncomingRecords (Sum per 5 Minutes) / 300 接近 RecordsPerSecondLimit 百分比。

  • IncomingPutRequests (Sum per 5 Minutes) / 300 接近 PutRequestsPerSecondLimit 百分比。

我们建议作为根据发出警报的另一个指标是 ThrottledRecords

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