问题描述
想知道是否有人可以在增强型扇出(KCL 2.x)应用程序中使用时澄清这两个指标之间的差异。
我相信KCL'MillisBehindLatest'可以衡量GetRecords调用中使用的迭代器年龄。但是,当使用KCL 2.x时,记录将改为通过HTTP / 2推送给使用者,并且应改为使用SubscribetoShardEvent.MillisBehindLatest
实际上,我们的KCL 2.x应用程序将这两个指标都发送给cloudwatch。目前尚不清楚,如果没有使用迭代器进行轮询,为什么会发出MillisBehindLatest。
解决方法
这两个指标之间的区别在于,SubscribeToShardEvent.MillisBehindLatest
指标定义了所有分片上消费者的距离,即所有分片上的最大延迟,而MillisBehindLatest
指标是 shard-level 特定,即每个特定shard的延迟。
例如,在3个分片的情况下,MillisBehindLatest
的{{1}}等于0,shardId-000000000000
等于120,shardId-000000000001
等于60,那么shardId-000000000002
的值为120。