本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon CloudWatch 监控 Amazon Kinesis Data Streams 服务
Amazon Kinesis Data Streams 已与 Amazon CloudWatch 集成,方便您收集、查看和分析 Kinesis 数据流的 CloudWatch 指标。例如,要跟踪分片使用情况,您可监控 IncomingBytes
和 OutgoingBytes
指标并将它们与流中分片数量进行比较。
系统每分钟会自动收集一次您为流配置的指标并将其推送到 CloudWatch。指标会存档两周。两周后,数据会被丢弃。
下表介绍了适用于 Kinesis Data Streams 的基本型流级别监控和增强型分片级别监控。
类型 | 描述 |
---|---|
基本 (流级) |
每分钟自动发送流级数据是免费的。 |
增强(分片级) |
每分钟发送分片级数据需要额外付费。要获取此级别的数据,您必须使用 EnableEnhancedMonitoring 操作专门针对该流启用它。 有关定价的更多信息,请参阅 Amazon CloudWatch 产品页面 |
Amazon Kinesis Data Streams 维度和指标
Kinesis Data Streams 在两个级别向 CloudWatch 发送指标;流级别和分片级别(可选)。流级别指标适用于一般条件下的最常见的监控使用案例。分片级别指标用于特定的监控任务,通常是与问题排查相关的任务,通过 EnableEnhancedMonitoring 操作启用。
有关从 CloudWatch 指标收集的统计数据的说明,请参阅《Amazon CloudWatch 用户指南》中的 CloudWatch 统计数据。
基本的流级指标
Amazon/Kinesis
命名空间包括以下流级指标。
Kinesis Data Streams 每分钟向 CloudWatch 发送一次流级别指标。这些指标始终可用。
指标 | 描述 |
---|---|
GetRecords.Bytes |
在指定时段内测量的从 Kinesis 流中检索的字节数。统计数据 Minimum、Maximum 和 Average 表示指定时段内流的单个 分片级别指标名称: 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:字节 |
GetRecords.IteratorAge |
此指标已弃用。使用 |
GetRecords.IteratorAgeMilliseconds |
在指定时段内测量的,对某个 Kinesis 流进行的所有 分片级别指标名称: 维度:StreamName 统计数据:Minimum、Maximum、Average、Samples 单位:毫秒 |
GetRecords.Latency |
在指定时段内测量的每个 维度:StreamName 统计数据:Minimum、Maximum、Average 单位:毫秒 |
GetRecords.Records |
在指定时段内测量的从分片中检索的记录数。统计数据 Minimum、Maximum 和 Average 表示指定时段内流的单个 分片级别指标名称: 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
GetRecords.Success |
在指定时段内测量的每个流中的成功 维度:StreamName 统计数据:Average、Sum、Samples 单位:计数 |
IncomingBytes |
在指定时段内成功放入 Kinesis 流的字节数。该指标包含来自 分片级别指标名称: 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:字节 |
IncomingRecords |
在指定时段内成功放入 Kinesis 流的记录数。该指标包含来自 分片级别指标名称: 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
PutRecord.Bytes |
在指定时段内使用 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:字节 |
PutRecord.Latency |
在指定时段内测量的每个 维度:StreamName 统计数据:Minimum、Maximum、Average 单位:毫秒 |
PutRecord.Success |
在指定时段内测量的每个 Kinesis 流中的成功 维度:StreamName 统计数据:Average、Sum、Samples 单位:计数 |
PutRecords.Bytes |
在指定时段内使用 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:字节 |
PutRecords.Latency |
在指定时段内测量的每个 维度:StreamName 统计数据:Minimum、Maximum、Average 单位:毫秒 |
PutRecords.Records |
此指标已弃用。使用 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
PutRecords.Success |
在指定时段内测量的,每个 Kinesis 流中至少有一条记录成功的 维度:StreamName 统计数据:Average、Sum、Samples 单位:计数 |
PutRecords.TotalRecords |
在指定时段内测量的,每个 Kinesis 数据流的 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
PutRecords.SuccessfulRecords |
在指定时段内测量的,每个 Kinesis 数据流的 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
PutRecords.FailedRecords |
在指定时段内测量的,每个 Kinesis 数据流的 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
PutRecords.ThrottledRecords |
在指定时段内测量的,每个 Kinesis 数据流的 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
ReadProvisionedThroughputExceeded |
在指定时段内针对流的受限的 当统计数据 Minimum 的值为 1 时,流的所有记录在指定时段内将受限。 当统计数据 Maximum 的值为 0(零)时,流的任何记录在指定时段内将不受限。 分片级别指标名称: 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
SubscribeToShard.RateExceeded |
当新订阅尝试失败时,将发出此指标,因为同一消费端已有活动订阅,或者超过了此操作允许的每秒调用数,也将发出此指标。 维度:StreamName、ConsumerName |
SubscribeToShard.Success |
此指标记录 SubscribeToShard 订阅是否已成功建立。订阅最多只能有效 5 分钟。因此,该指标至少每 5 分钟发送一次。 维度:StreamName、ConsumerName |
SubscribeToShardEvent.Bytes |
在指定时段内测量的从分片中接收的字节数。统计数据 Minimum、Maximum 和 Average 表示指定时段内单个事件中的已发布字节数。 分片级别指标名称: 维度:StreamName、ConsumerName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:字节 |
SubscribeToShardEvent.MillisBehindLatest |
当前时间和 SubscribeToShard 事件的最后一个记录之间的差异写入流中。 维度:StreamName、ConsumerName 统计数据:Minimum、Maximum、Average、Samples 单位:毫秒 |
SubscribeToShardEvent.Records |
在指定时段内测量的从分片中接收的记录数。统计数据 Minimum、Maximum 和 Average 表示指定时段内单个事件中的记录数。 分片级别指标名称: 维度:StreamName、ConsumerName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
SubscribeToShardEvent.Success |
每次成功发布事件时都会发出此指标。只有在有活动订阅时,才会发出它。 维度:StreamName、ConsumerName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
WriteProvisionedThroughputExceeded |
在指定时段内因流限制而被拒绝的记录数。该指标包含来自 当统计数据 Minimum 的值不为零时,流的记录在指定时段内将受限。 当统计数据 Maximum 的值为 0(零)时,流的任何记录在指定时段内将不受限。 分片级别指标名称: 维度:StreamName 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
增强的分片级指标
Amazon/Kinesis
命名空间包括以下分片级指标。
Kinesis 每分钟向 CloudWatch 发送以下分片级别指标一次。每个指标维度创建 1 个 CloudWatch 指标,每月进行大约 43200 次 PutMetricData
API 调用。默认情况下,这些指标未启用。系统会对 Kinesis 发出的增强型指标收费。有关更多信息,请参阅 Amazon CloudWatch 自定义指标标题下的 Amazon CloudWatch 定价
指标 | 描述 |
---|---|
IncomingBytes |
在指定时段内成功放置到分片的字节数。该指标包含来自 流级别指标名称: 维度:StreamName、ShardId 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:字节 |
IncomingRecords |
在指定时段内成功放置到分片的记录数。该指标包含来自 流级别指标名称: 维度:StreamName、ShardId 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
IteratorAgeMilliseconds |
对某个分片进行的所有 流级别指标名称: 维度:StreamName、ShardId 统计数据:Minimum、Maximum、Average、Samples 单位:毫秒 |
OutgoingBytes |
在指定时段内测量的从分片中检索的字节数。统计数据 Minimum、Maximum 和 Average 表示单个 流级别指标名称: 维度:StreamName、ShardId 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:字节 |
OutgoingRecords |
在指定时段内测量的从分片中检索的记录数。统计数据 Minimum、Maximum 和 Average 表示单个 流级别指标名称: 维度:StreamName、ShardId 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
ReadProvisionedThroughputExceeded |
在指定时段内针对分片的受限的 当统计数据 Minimum 的值为 1 时,分片的所有记录在指定时段内将受限。 当统计数据 Maximum 的值为 0(零)时,分片的任何记录在指定时段内将不受限。 流级别指标名称: 维度:StreamName、ShardId 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
WriteProvisionedThroughputExceeded |
在指定时段内因分片限制而被拒绝的记录数。此指标包括来自 当统计数据 Minimum 的值不为零时,分片的记录在指定时段内将受限。 当统计数据 Maximum 的值为 0(零)时,分片的任何记录在指定时段内将不受限。 流级别指标名称: 维度:StreamName、ShardId 统计数据:Minimum、Maximum、Average、Sum、Samples 单位:计数 |
Amazon Kinesis Data Streams 指标的维度
维度 |
描述 |
---|---|
StreamName
|
Kinesis 流的名称。所有可用统计数据按 |
Amazon Kinesis Data Streams 推荐指标
Kinesis Data Streams 的客户可能会对 Amazon Kinesis Data Streams 的几个指标特别感兴趣。以下列表提供了推荐的指标及其用法。
指标 | 使用说明 |
---|---|
|
跟踪流中所有分片和消费端的读取位置。如果某个迭代器的寿命超过了保留期的 50%(默认值为 24 小时,可配置为最高 7 天),则存在由于记录过期造成数据丢失的风险。我们建议您针对 Maximum 统计数据使用 CloudWatch 警报,以便在此问题构成风险之前提醒您。要了解使用此指标的示例情景,请参阅消费端记录处理滞后。 |
|
当您的消费端端记录处理滞后时,有时难以确定瓶颈的位置。使用此指标可确定读取操作是否由于超出了读取吞吐量上限而受到限制。此指标的最常用的统计数据为 Average。 |
WriteProvisionedThroughputExceeded |
这与 ReadProvisionedThroughputExceeded 指标的用途相同,但是此指标用于流的创建者 (put) 端。此指标的最常用的统计数据为 Average。 |
PutRecord.Success ,
PutRecords.Success |
我们建议针对 Average 统计数据使用 CloudWatch 警报,以指示将记录放入流失败的时间。根据创建器所使用的对象选择一种或两种 put 类型。如果使用的是 Kinesis Producer Library (KPL),请使用 PutRecords.Success 。 |
GetRecords.Success |
我们建议针对 Average 统计数据使用 CloudWatch 警报,以指示从流中读取记录失败的时间。 |
访问 Kinesis Data Streams 的 Amazon CloudWatch 指标
您可以使用 CloudWatch 控制台、命令行或 CloudWatch API 监控 Kinesis Data Streams 的指标。以下过程介绍如何使用这些不同的方式访问指标。
使用 CloudWatch 控制台访问指标
访问 https://console.aws.amazon.com/cloudwatch/
打开 CloudWatch 控制台。 -
在导航栏中,选择一个区域。
-
在导航窗格中,选择指标。
-
在 CloudWatch Metrics by Category (按类别显示的 CloudWatch 指标) 窗格中,选择 Kinesis Metrics (Kinesis 指标)。
-
单击相关行可查看指定的 MetricName 和 StreamName 的统计数据。
注意:大部分控制台统计数据名称与上面列出的对应 CloudWatch 指标名称匹配,但读取吞吐量和写入吞吐量除外。这些统计数据按照 5 分钟的间隔计算:写入吞吐量监控
IncomingBytes
CloudWatch 指标,读取吞吐量监控GetRecords.Bytes
。 -
(可选)在图形窗格中,选择一个统计数据和时间段,然后使用这些设置创建 CloudWatch 警报。
使用 Amazon CLI 访问指标
使用 list-metrics 和 get-metric-statistics 命令。
使用 CloudWatch CLI 访问指标
使用 mon-list-metrics 和 mon-get-stats 命令。
使用 CloudWatch API 访问指标
使用 ListMetrics 和 GetMetricStatistics 操作。