如何知道每个Kinesis碎片的活动?

时间:2017-03-13 08:25:04

标签: amazon-cloudwatch amazon-kinesis

我将AWS Kinesis流与多个分片一起使用。我在流中放置记录时设置的分区键不是常量,用于将记录映射到每个分片。

为了确保使用每个分片的事实,我如何监控分片的活动?

我在AWS Cloudwatch的增强级别中看到,Kinesis的指标可以通过分片进行分割。这不是我的情况,因为我的需要只是偶尔的,我不想为此付出代价。

1 个答案:

答案 0 :(得分:3)

  1. 您可以根据需要启用分片级别指标,然后在不需要时启用。虽然您指定不需要此解决方案,但这是迄今为止最好的方法。
  2. 在消费者方面,您可以使用自定义日志记录。对于在IRecordProcessor实现中处理的每个记录批次,您可以计算每个分片的传入数据计数。 Sample code here。您甚至可以添加第三方指标平台(例如Prometheus)。
  3. 您可以自定义制作人,并记录PutRecordResponse。对于每个Put调用,它返回“您的数据置于XXX shard下”。 See AWS Documentation for details
  4. 通常,如果您的分片之间存在非均匀数据分布问题,最好的方法是在Kinesis Producer应用程序中发送数据时使用随机分区键。