首页 > 解决方案 > 如何判断是否未处理运动流

问题描述

在处理 AWS Kinesis 流时,如何判断消费者是否不再处理流?例如,Kinesis 中是否有可用于警报的指标?

IteratorAgeMilliseconds有一个度量标准,但该度量标准仅在处理流时写入。因此,如果消费者关闭并且流正在备份消息,我们会知道这只有在我们恢复处理时才会发生。

标签: amazon-web-servicesamazon-cloudwatchamazon-kinesis

解决方案


您可以使用GetRecords.Bytes来确定是否正在读取流。

如果您只有一个消费者,您可以使用度量数学将其与PutRecords.Bytes和/或进行比较PutRecord.Bytes。如果有多个消费者,您需要将获取数除以消费者数量,如果消费者数量不定,则无法正常工作。

您还可以在流上启用异常检测。我没有这样做,所以不能告诉你它的效果如何。

但我更喜欢(并且已成功使用多次)的方法是让您的消费者编写自定义指标,例如处理的记录数。然后,您可以对未报告该指标的消费者设置警报。


推荐阅读