本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
利用 Amazon 监控 Kinesis 客户端库CloudWatch
这些区域有:Kinesis 客户端库Amazon Kinesis Data Streams) 发布自定义 AmazonCloudWatch指标代表您使用 KCL 应用程序的名称作命名空间。您可以通过导航至CloudWatch控制台
对于上传到的指标,存在象征性的少许费用。CloudWatch来自 KCL;具体而言,亚马逊CloudWatch自定义指标和亚马逊CloudWatchAPI 请求将收取费用。有关更多信息,请参阅 Amazon CloudWatch 定价
指标和命名空间
用于上传指标的命名空间是您在启动 KCL 时指定的应用程序名称。
指标级别和维度
可通过两个选项控制上传到 CloudWatch 的指标:
- 指标级别
-
每个指标分配有一个独立的级别。在您设置指标报告级别后,独立级别低于报告级别的指标将不会发送到 CloudWatch。级别如下:
NONE
、SUMMARY
和DETAILED
。默认设置为DETAILED
;即,所有指标都将发送到 CloudWatch。NONE
报告级别意味着不会发送任何指标。有关将哪些级别分配到哪些指标的信息,请参阅 指标的列表。 - 启用的维度
-
每个 KCL 指标都有一个也将发送到的关联维度。CloudWatch. 在 KCL 2.x 中,如果 KCL 配置为处理单个数据流,则所有指标维度(
Operation
、ShardId
, 和WorkerIdentifier
默认处于启用状态。另外,在 KCL 2.x 中,如果 KCL 配置为处理单个数据流,Operation
无法禁用维度。在 KCL 2.x 中,如果 KCL 配置为处理多个数据流,则所有指标维度(Operation
、ShardId
、StreamId
, 和WorkerIdentifier
默认处于启用状态。此外,在 KCL 2.x 中,如果 KCL 配置为处理多个数据流,则Operation
和StreamId
无法禁用维度。StreamId
维度仅对每个分片指标有效。在 KCL 1.x 中,只有
Operation
和ShardId
默认情况下已启用维度,WorkerIdentifier
维度已禁用。在 KCL 1.x 中,Operation
无法禁用维度。有关 的更多信息CloudWatch指标维度,请参阅维度亚马逊中的部分CloudWatch概念主题,在亚马逊CloudWatch用户指南.
当时
WorkerIdentifier
启用维度后,如果每次特定的 KCL 工作程序重新启动时使用的是不同的工作程序 ID 属性值,则会使用新的指标组和新的新的指标组。WorkerIdentifier
维度值被发送到CloudWatch. 如果需要WorkerIdentifier
维度值在特定的 KCL 工作程序重新启动时保持不变,则必须在每个工作程序初始化时显式指定相同的工作程序 ID 值。请注意,每个有效 KCL 工作程序的工作程序 ID 值在所有 KCL 工作程序中必须是唯一的。
指标配置
指标级别和启用的维度可使用KinesisClientLibConfiguration实例,该实例将在启动 KCL 应用程序时将传递给工作程序。在MultiLang守护进程案例,metricsLevel
和metricsEnabledDimensions
属性可在用于启动MultiLang守护程序 KCL 应用程序。
指标级别可分配三个值:无、摘要或详细。启用的维度值在 CloudWatch 指标允许的维度的列表中必须是以逗号分隔的字符串。KCL 应用程序使用的维度为Operation
、ShardId
, 和WorkerIdentifier
.
指标的列表
下表列出了按范围和操作分组的 KCL 指标。
每个 KCL 应用程序指标
这些指标跨应用程序范围内的所有 KCL 工作程序聚合一起,就像亚马逊所定义的那样。CloudWatch命名空间。
InitializeTask
这些区域有:InitializeTask
操作负责初始化 KCL 应用程序的记录处理器。此操作的逻辑包括从 Kinesis Data Stream 中获取分片迭代器并初始化记录处理程序。
指标 | 描述 |
---|---|
KinesisDatafetcher.getiterator。成功 |
成功的数量 指标级别:明细 单位:计数 |
KinesisDatafetcher.getiterator .Time |
每个需要的时间 指标级别:明细 单位:毫秒 |
RecordProcessor. 初始化 .time |
记录处理器的初始化方法所花费的时间。 指标级别:摘要 单位:毫秒 |
成功 |
成功的记录处理程序初始化的数目。 指标级别:摘要 单位:计数 |
Time |
KCL 工作程序初始化记录处理器所花费的时间。 指标级别:摘要 单位:毫秒 |
ShutdownTask
ShutdownTask
操作初始化分片处理的关闭顺序。这可能是因为分片被拆分或合并,或者当分片租赁从工作程序中丢失时。在这两种情况下,将调用记录处理程序 shutdown()
函数。在分片被拆分或合并的情况下也会发现新的分片,这将创建一个或两个新的分片。
指标 | 描述 |
---|---|
CreateLease.成功 |
新的子分片在父分片关闭后成功添加到 KCL 应用程序 DynamoDB 表的次数。 指标级别:明细 单位:计数 |
CreateLease.Time |
在 KCL 应用程序 DynamoDB 表中添加新的子分片信息所花费的时间。 指标级别:明细 单位:毫秒 |
UpdateLease.成功 |
记录处理程序关闭期间成功的最终检查点的数目。 指标级别:明细 单位:计数 |
UpdateLease.Time |
记录处理程序关闭期间检查点操作所花费的时间。 指标级别:明细 单位:毫秒 |
RecordProcessor.shutdown.Time |
记录处理器的关闭方法所花费的时间。 指标级别:摘要 单位:毫秒 |
成功 |
成功的关闭任务的数目。 指标级别:摘要 单位:计数 |
Time |
KCL 工作程序关闭任务所花费的时间。 指标级别:摘要 单位:毫秒 |
ShardSync任务
这些区域有:ShardSyncTask
操作会发现对 Kinesis 数据流的分片信息所做的更改,因此 KCL 应用程序可处理新的分片。
指标 | 描述 |
---|---|
CreateLease.成功 |
成功尝试将新分片信息添加到 KCL 应用程序 DynamoDB 表的次数。 指标级别:明细 单位:计数 |
CreateLease.Time |
在 KCL 应用程序 DynamoDB 表中添加新的分片信息所花费的时间。 指标级别:明细 单位:毫秒 |
成功 |
成功的分片同步操作的数目。 指标级别:摘要 单位:计数 |
Time |
分片同步操作所花费的时间。 指标级别:摘要 单位:毫秒 |
BlockOnParentTask
如果一个分片被拆分或与其他分片合并,则会创建新的子分片。这些区域有:BlockOnParentTask
操作确保新分片的记录处理在完全处理父分片之前不会开始。
指标 | 描述 |
---|---|
成功 |
父分片完成的成功检查的数目。 指标级别:摘要 单位:计数 |
Time |
父分片完成所花费的时间。 指标级别:摘要 单位:毫秒 |
PeriodicShardSyncManager
这些区域有:PeriodicShardSyncManager
负责检查 KCL 消费者应用程序正在处理的数据流,识别具有部分租用的数据流并将其移交以进行同步。
如果将 KCL 配置为处理单个数据流(然后是NumStreamsToSync和NumStreamsWithPartial租赁设置为 1) 以及当 KCL 配置为处理多个数据流时也会设置为。
指标 | 描述 |
---|---|
NumStreamsToSync |
数据流的数量(每Amazon账户)由包含部分租约且必须移交才能同步的消费者应用程序处理。 指标级别:摘要 单位:计数 |
NumStreamsWithPartial租赁 |
数据流的数量(每Amazon账户),消费者应用程序正在处理包含部分租赁。 指标级别:摘要 单位:计数 |
成功 |
次数 指标级别:摘要 单位:计数 |
Time |
的时间量(以毫秒为单位) 指标级别:摘要 单位:毫秒 |
MultistreamTracker
这些区域有:MultistreamTracker
接口使您能够构建可以同时处理多个数据流的 KCL 消费者应用程序。
指标 | 描述 |
---|---|
DeletedStreams.count |
此时段删除的数据流的数量。 指标级别:摘要 单位:计数 |
ActiveStreams.count |
正在处理的活动数据流的数量。 指标级别:摘要 单位:计数 |
StreamsPending删除。计数 |
等待删除的数据流数量基于 指标级别:摘要 单位:计数 |
Per-Worker 指标
这些指标跨使用 Kinesis 数据流(例如 Amazon EC2 实例)中的数据的所有记录处理程序进行聚合。
RenewAll租赁
RenewAllLeases
操作定期续订由特定工作程序实例拥有的分片租约。
指标 | 描述 |
---|---|
RenewLease.成功 |
工作程序成功续订租约的数目。 指标级别:明细 单位:计数 |
RenewLease.Time |
租约续订操作所花费的时间。 指标级别:明细 单位:毫秒 |
CurrentLeases |
续订所有租约后由工作程序拥有的分片租约数。 指标级别:摘要 单位:计数 |
LostLeases |
在尝试续订由工作程序拥有的所有租约后丢失的分片租约数。 指标级别:摘要 单位:计数 |
成功 |
工作程序的成功的租约续订操作次数。 指标级别:摘要 单位:计数 |
Time |
续订工作程序的所有租约所花费的时间。 指标级别:摘要 单位:毫秒 |
TakeLeases
这些区域有:TakeLeases
操作在所有 KCL 工作程序之间平衡记录处理。如果当前 KCL 工作程序拥有的分片租约少于所需的分片租约,则将从已过载的另一个工作程序中提取分片租约。
指标 | 描述 |
---|---|
ListLeases.成功 |
成功从 KCL 应用程序 DynamoDB 表中检索所有分片租约的次数。 指标级别:明细 单位:计数 |
ListLeases.Time |
从 KCL 应用程序 DynamoDB 表中检索所花费的时间。 指标级别:明细 单位:毫秒 |
TakeLease.成功 |
工作程序成功从其他 KCL 工作程序中获得分片租约的次数。 指标级别:明细 单位:计数 |
TakeLease.Time |
利用该工作程序提取的租约更新租约表所花费的时间。 指标级别:明细 单位:毫秒 |
NumWorkers |
工作程序总数,由特定工作程序标识。 指标级别:摘要 单位:计数 |
NeededLeases |
当前工作程序为平衡分片处理负载所需的分片租约数。 指标级别:明细 单位:计数 |
LeasesTo拿 |
工作程序将尝试提取的租约的数目。 指标级别:明细 单位:计数 |
TakenLeases |
工作程序已成功提取的租约的数目。 指标级别:摘要 单位:计数 |
TotalLeases |
KCL 应用程序正在处理的分片的总数。 指标级别:明细 单位:计数 |
ExpiredLeases |
未由任何工作程序处理的分片的总数,由特定工作程序标识。 指标级别:摘要 单位:计数 |
成功 |
指标级别:摘要 单位:计数 |
Time |
工作程序的 指标级别:摘要 单位:毫秒 |
Per-Shard 指标
这些指标跨单个记录处理程序聚合一起。
ProcessTask
ProcessTask
操作利用当前迭代器位置调用 GetRecords 以从流中检索记录并调用记录处理器 processRecords
函数。
指标 | 描述 |
---|---|
KinesisDataFetcher.获取记录。成功 |
成功的数量 指标级别:明细 单位:计数 |
KinesisDatafetcher.get Records.Time |
每个需要的时间 指标级别:明细 单位:毫秒 |
UpdateLease.成功 |
给定分片的记录处理程序完成的成功检查点的数目。 指标级别:明细 单位:计数 |
UpdateLease.Time |
给定分片的每个检查点操作所花费的时间。 指标级别:明细 单位:毫秒 |
DataBytes已处理 |
每个 指标级别:摘要 单位:字节 |
RecordsProcessed |
每个 指标级别:摘要 单位:计数 |
ExpiredIterator |
的数量ExpiredIterator通话时收到异常 指标级别:摘要 单位:计数 |
MillisBehind最新 | 当前迭代器晚于分片中最新记录 (tip) 的时间。此值为小于或等于响应中最新一条记录的时间和当前时间之间的时差。与比较最新一条响应记录中的时间戳相比,此指标可以更精确地反映分片相对于末端的距离。此值适用于最近一批记录,而不是每条记录中所有时间戳的平均值。 指标级别:摘要 单位:毫秒 |
RecordProcessor.Process Records.Time |
记录处理器的 指标级别:摘要 单位:毫秒 |
成功 |
成功处理任务操作的数目。 指标级别:摘要 单位:计数 |
Time |
处理任务操作所花费的时间。 指标级别:摘要 单位:毫秒 |