如何判断阅读器已处理的Kinesis流中的数据百分比?我知道每个读者都有一个每个分片的检查点序列号,我也可以从describe-stream中获取每个分片的StartingSequenceNumber,但是,我不知道我的数据在读者目前是多远(我不知道)知道碎片的最新序列号.
我正在考虑为每个分片获取一个最新的迭代器并获取最后一个记录的序列号,但是如果自从我获得LATEST迭代器后没有新数据,这似乎不起作用.
在那里做任何想法或工具?
谢谢!
最佳答案 我建议您在应用程序中实施自定义指标或指标来跟踪此情况.
例如,您可以在Kinesis消息中附加消息发送时间,并在处理消息时,将时差记录为AWS CloudWatch自定义度量标准.这表明您的消费者与流的前端有多接近.
您还可以记录推送的消息数(在推送应用程序中)和在Kinesis消费者处收到的消息.如果您在CloudWatch的图表中对这些进行比较,您可以看到曲线大致相互跟随,表明消费者在跟上工作量方面做得很好.
你也可以尝试监控你的Kinesis消费者,看看它经常等待记录的频率(即Kinesis没有返回任何结果,暗示它在流的前面并且所有记录都被处理)
另请注意,由于Kinesis消息在24小时后过期(因此消息总数不断滚动),因此无法跟踪流中处理的“百分比”.还没有直接(API)函数来计算流中的消息数(除非您已按上述方式记录).