本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用亚马逊监控 Kinesis 制作人库 CloudWatch
亚马逊 Kinesis Data Streams 的 Kinesis 制作器库 (KPL) 代表你发布自定义的亚马逊 CloudWatch 指标。您可以通过导航到CloudWatch 控制台
上传到 CloudWatch 的指标收取象征性费用KPL;具体而言,亚马逊 CloudWatch 自定义指标和亚马逊 CloudWatch API请求会收取费用。有关更多信息,请参阅 Amazon CloudWatch 定价
指标、维度和命名空间
您可以在启动时指定应用程序名称KPL,然后在上传指标时将其用作命名空间的一部分。这是可选的;如果未设置应用程序名称,则会KPL提供默认值。
您也可以配置KPL为向指标添加任意其他维度。如果您想在指标中包含更精细的数据,这很有用。 CloudWatch 例如,您可将主机名作为维度添加,随后该维度将允许您标识实例集中不均匀的负载分配。所有KPL配置设置都是不可变的,因此在KPL实例初始化后您无法更改这些额外维度。
指标级别和粒度
有两个选项可以控制上传到的指标数量 CloudWatch:
- 指标级别
-
这是对指标重要性的粗略估计。为每个指标分配了一个级别。当您设置级别时,级别低于该级别的指标不会发送到 CloudWatch。级别为
NONE
、SUMMARY
和DETAILED
。默认设置为DETAILED
;即,所有指标。NONE
表示没有任何指标,因此实际上未为该级别分配任何指标。 - 粒度
-
这可控制是否在其他粒度级别发出相同指标。级别为
GLOBAL
、STREAM
和SHARD
。默认设置为SHARD
,其中包含粒度最高的指标。选择
SHARD
后,发出将流名称和分片 ID 作为维度的指标。此外,还发出仅具有流名称维度的相同指标和不带流名称的指标。这意味着,对于一个特定的指标,两个各有两个分片的流将生成七个 CloudWatch 指标:每个分片一个,每个流一个,总体一个;所有指标描述的统计数据相同,但粒度级别不同。有关说明,请见下图。层次结构中的不同粒度级别与系统中的所有指标构成了一个基于指标名称的树:
MetricName (GLOBAL): Metric X Metric Y | | ----------------- ------------ | | | | StreamName (STREAM): Stream A Stream B Stream A Stream B | | -------- --------- | | | | ShardID (SHARD): Shard 0 Shard 1 Shard 0 Shard 1
并不会在分片级别提供所有指标;一些指标本来就属于流级别或全局级别。不会在分片级别生成这些指标,即使已启用分片级别指标(上图中的
Metric Y
)。指定其他维度时,必须为提供值
tuple:<DimensionName, DimensionValue, Granularity>
。粒度用于确定自定义维度在层次结构中的插入位置:GLOBAL
表示其他维度将插入到指标名称的后面;STREAM
表示其他维度将插入到流名称的后面;SHARD
表示其他维度将插入到分片 ID 的后面。如果为每个粒度级别提供多个其他维度,则这些维度将按给定顺序插入。
本地访问和 Amazon CloudWatch 上传
当前KPL实例的指标可在本地实时获取;您可以KPL随时查询以获取这些指标。KPL本地计算每个指标的总和、平均值、最小值、最大值和计数,如所 CloudWatch示。
您可获取从程序启动到当前时间点或在过去 N 秒内(其中 N 为介于 1 和 60 之间的整数)使用滚动窗口累积的统计数据。
所有指标均可上传至 CloudWatch。这在跨多台主机聚合数据、监控和警报时特别有用。此功能在本地不可用。
如前所述,您可选择使用指标级别 和粒度 设置来上传的指标。未上传的指标在本地可用。
不支持单独上传数据点,因为如果流量过高,则每秒会生成数以百万计的上传。出于这个原因,会在本地将指标KPL聚合到 1 分钟存储桶中,并将统计数据对象上传到每个启用的指标每分钟上传 CloudWatch 一次。
指标的列表
指标 | 描述 |
---|---|
UserRecordsReceived |
计算内KPL核收到的用于放置操作的逻辑用户记录的数量。在分片级别不可用。 指标级别:详细 单位:计数 |
UserRecordsPending |
当前挂起的用户记录的数目的定期取样。如果记录当前处于缓冲状态并等待发送,或者正在发送到后端服务,则该记录处于待处理状态。在分片级别不可用。 KPL提供了一种在全球范围内检索该指标的专用方法,便于客户管理其看跌期权。 指标级别:详细 单位:计数 |
UserRecordsPut |
已成功放置的逻辑用户记录的计数。 KPL不计算该指标的失败记录。这允许用于提供成功率的平均值、用于提供总尝试数的计数以及用于提供失败计数的计数与总和之间的差值。 指标级别:汇总 单位:计数 |
UserRecordsDataPut |
逻辑用户记录成功放置的字节数。 指标级别:详细 单位:字节 |
KinesisRecordsPut |
已成功放置的 Kinesis Data Streams 记录的计数(每条 Kinesis Data Streams 记录均可包含多条用户记录)。 对于失败的记录,KPL输出为零。这允许用于提供成功率的平均值、用于提供总尝试数的计数以及用于提供失败计数的计数与总和之间的差值。 指标级别:汇总 单位:计数 |
KinesisRecordsDataPut |
Kinesis Data Streams 记录中的字节数。 指标级别:详细 单位:字节 |
ErrorsByCode |
每种错误代码的计数。这引入了 每条 Kinesis Data API Streams 记录都会计算一次 Kinesis Data Streams 的错误。Kinesis Data Streams 记录中的多条用户记录不会生成多个计数。 指标级别:汇总 单位:计数 |
AllErrors |
这是由与 Errors by Code 相同的错误引发的,但并不区分类型。这在常规监控错误率而不需要手动汇总所有不同类型错误的计数时非常有用。 指标级别:汇总 单位:计数 |
RetriesPerRecord |
每个用户记录执行的重试次数。为一次性尝试成功的记录发出零。 在用户记录完成时(成功时或不再能够重试时)发出数据。如果记录值 time-to-live很大,则该指标可能会延迟很长时间。 指标级别:详细 单位:计数 |
BufferingTime |
从用户记录到达后端到KPL离开后端之间的时间。此信息将基于记录传回给用户,还可用作聚合的统计数据。 指标级别:汇总 单位:毫秒 |
Request Time |
执行 指标级别:详细 单位:毫秒 |
User Records per Kinesis Record |
已聚合到单条 Kinesis Data Streams 记录中的逻辑用户记录的数目。 指标级别:详细 单位:计数 |
Amazon Kinesis Records per
PutRecordsRequest |
已聚合到单个 指标级别:详细 单位:计数 |
User Records per
PutRecordsRequest |
包含在 指标级别:详细 单位:计数 |