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

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

使用 CloudWatch 指标监控 Kinesis Data Firehose

Kinesis Data Firehose 与亚马逊 CloudWatch 指标集成,因此您可以收集、查看和分析 Kinesis Data Firehose 交付流的 CloudWatch指标。例如,您可以监控IncomingBytesIncomingRecords指标,以跟踪数据生产者引入 Kinesis Data Firehose 的数据。

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

为 Kinesis Data Firehose 交付流收集的指标是免费的。有关 Kinesis 代理指标的信息,请参阅监控 Kinesis 代理Health

动态分区 CloudWatch 指标

如果启用了动态分区,AWS/FireHose 命名空间将包含以下指标。

指标 描述
PartitionCount

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

单位:计数

PartitionCountExceeded

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

JQProcessing.Duration

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

单位:毫秒

PerPartitionThroughput

表示每个分区正在处理的吞吐量。此指标使您能够监控每个分区的吞吐量。

单位: StandardUnit。 BytesSecond

DeliveryToS3.ObjectCount

表示要传输到您的 S3 存储桶的对象数量。

单位:计数

数据交付 CloudWatch 指标

Amazon/Firehose 命名空间包括以下服务级指标。如果您看到BackupToS3.Success、、DeliveryToS3.SuccessDeliveryToSplunk.SuccessDeliveryToAmazonOpenSearchService.Success或的平均值略有下降DeliveryToRedshift.Success,这并不表示存在数据丢失。Kinesis Data Firehose 会重试传送错误,直到将记录成功传送到配置的目标或备份 S3 存储桶后,才会向前移动。

交付到 OpenSearch 服务

指标 描述
DeliveryToAmazonOpenSearchService.Bytes

在指定时间段内索引到 S OpenSearch ervice 的字节数。

单位:字节

DeliveryToAmazonOpenSearchService.DataFreshness

Kinesis Data Firehose 中最古老记录的时代(从进入 Kinesis Data Firehose 到现在)。任何超过此年龄的记录都已交付给 OpenSearch 服务部门。

单位:秒

DeliveryToAmazonOpenSearchService.Records

在指定时间段内索引到 Serv OpenSearch ice 的记录数。

单位:计数

DeliveryToAmazonOpenSearchService.Success

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

DeliveryToS3.Bytes

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

单位:计数

DeliveryToS3.DataFreshness

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

单位:秒

DeliveryToS3.Records

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

单位:计数

DeliveryToS3.Success

成功的 Amazon S3 put 命令总和超过所有 Amazon S3 put 命令的总和。无论是仅为失败的文档启用备份,还是为所有文档启用备份,Kinesis Data Firehose 都会发出此指标。

交付到 OpenSearch 无服务器

指标 描述
DeliveryToAmazonOpenSearchServerless.Bytes

在指定时间段内索引到 OpenSearch Serverless 的字节数。

单位:字节

DeliveryToAmazonOpenSearchServerless.DataFreshness

Kinesis Data Firehose 中最古老记录的时代(从进入 Kinesis Data Firehose 到现在)。任何超过此年龄的记录都已传输到 OpenSearch Serverless。

单位:秒

DeliveryToAmazonOpenSearchServerless.Records

在指定时间段内索引到 OpenSearch Serverless 的记录数。

单位:计数

DeliveryToAmazonOpenSearchServerless.Success

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

DeliveryToS3.Bytes

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

单位:计数

DeliveryToS3.DataFreshness

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

单位:秒

DeliveryToS3.Records

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

单位:计数

DeliveryToS3.Success

成功的 Amazon S3 put 命令总和超过所有 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 中最古老记录的时代(从进入 Kinesis Data Firehose 到现在)。任何大于此年龄的记录已传送到 S3 存储桶。

单位:秒

DeliveryToS3.Records

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

单位:计数

DeliveryToS3.Success

成功的 Amazon S3 put 命令总和超过所有 Amazon S3 put 命令的总和。

BackupToS3.Bytes

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

单位:计数

BackupToS3.DataFreshness

Kinesis Data Firehose 中最古老记录的年龄(从进入 Kinesis Data Firehose 到现在)。任何超过此期限的记录都将传送至 Simple Storage Service Service(Amazon 启用 Amazon S3 备份后,Kinesis Data Firehose 会发出此指标。

单位:秒

BackupToS3.Records

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

单位:计数

BackupToS3.Success

成功的用于备份的 Amazon S3 put 命令的总和与所有 Amazon S3 backup put 命令的总和。启用 Amazon S3 备份后,Kinesis Data Firehose 会发出此指标。

配送到Amazon S3

下表中的指标与在 Amazon S3 是传输流的主要目的地时传输到 Amazon S3 有关。

指标 描述
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 命令的总和。

BackupToS3.Bytes

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

单位:计数

BackupToS3.DataFreshness

Kinesis Data Firehose 中最古老记录的年龄(从进入 Kinesis Data Firehose 到现在)。任何超过此期限的记录都将传送至 Simple Storage Service Service(Amazon Kinesis Data Firehose 会在启用备份时发出此指标(只有在同时启用了数据转换时才有可能)。

单位:秒

BackupToS3.Records

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

单位:计数

BackupToS3.Success

成功的用于备份的 Amazon S3 put 命令的总和与所有 Amazon S3 backup put 命令的总和。Kinesis Data Firehose 会在启用备份时发出此指标(只有在同时启用了数据转换时才有可能)。

传输到 Splunk

指标 描述
DeliveryToSplunk.Bytes

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

单位:字节

DeliveryToSplunk.DataAckLatency

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

单位:秒

DeliveryToSplunk.DataFreshness

Kinesis Data Firehose 中最古老记录的年龄(从进入 Kinesis Data Firehose 到现在)。任何大于此年龄的记录已传送到 Splunk。

单位:秒

DeliveryToSplunk.Records

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

单位:计数

DeliveryToSplunk.Success

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

DeliveryToS3.Success

成功的 Amazon S3 put 命令总和超过所有 Amazon S3 put 命令的总和。此指标是在启用备份到 Amazon S3 时发出的。

BackupToS3.Bytes

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

单位:计数

BackupToS3.DataFreshness

Kinesis Data Firehose 中最古老记录的年龄(从进入 Kinesis Data Firehose 到现在)。任何超过此期限的记录都将传送至 Simple Storage Service Service(Amazon 当交付流配置为备份所有文档时,Kinesis Data Firehose 会发出此指标。

单位:秒

BackupToS3.Records

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

单位:计数

BackupToS3.Success

成功的用于备份的 Amazon S3 put 命令的总和与所有 Amazon S3 backup put 命令的总和。当交付流配置为备份所有文档时,Kinesis Data Firehose 会发出此指标。

传输到 HTTP 终端节点

指标 描述
DeliveryToHttpEndpoint.Bytes

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

单位:字节

DeliveryToHttpEndpoint.Records

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

单位:计数

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 中最古老记录的年龄(从进入 Kinesis Data Firehose 到现在)。任何超过此期限的记录都将传送至 Simple Storage Service Service(Amazon 当 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 backup put 命令的总和。当 Amazon S3 或 Amazon Redshift 目的地启用数据转换时,Kinesis Data Firehose 会发出此指标。

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

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

单位:字节

DataReadFromKinesisStream.Records

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

单位:计数

DeliveryToAmazonOpenSearchService.Bytes

在指定时间段内索引到 S OpenSearch ervice 的字节数。

单位:字节

DeliveryToAmazonOpenSearchService.DataFreshness

Kinesis Data Firehose 中最古老记录的时代(从进入 Kinesis Data Firehose 到现在)。任何超过此年龄的记录都已交付给 OpenSearch 服务部门。

单位:秒

DeliveryToAmazonOpenSearchService.Records

在指定时间段内索引到 Serv OpenSearch ice 的记录数。

单位:计数

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 中最古老记录的时代(从进入 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 索引器的索引和确认速度较慢。

单位:秒

DeliveryToSplunk.DataFreshness

Kinesis Data Firehose 中最古老记录的年龄(从进入 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 FirehosePutRecord 传输流的字节数。

单位:字节

PutRecord.Latency

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

单位:毫秒

PutRecord.Requests

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

单位:计数

PutRecordBatch.Bytes

指定时间段中传入 Kinesis Data FirehosePutRecordBatch 传输流的字节数。

单位:字节

PutRecordBatch.Latency

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

单位:毫秒

PutRecordBatch.Records

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

单位:计数

PutRecordBatch.Requests

PutRecordBatch 请求的总数。

单位:计数

PutRequestsPerSecondLimit

在限制之前传输流可以处理的每秒最大输入请求数。这个数字包括 PutRecord 和 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 /Usage 命名空间中,每分钟收集一次。

目前,此命名空间中 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. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 主机。

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

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

  4. 选择 Firehose 命名空间。

  5. 选择 Delivery Stream MetricsFirehose Metrics

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

使用 Amazon CLI 访问指标

使用列表指标get-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 状态时进行故障排查的信息,请参阅对 AAmazon Kinesis Data Firehose