如何监控Bolt挂起队列的大小?

时间:2015-12-08 17:38:06

标签: apache-storm

我的拓扑结构存在瓶颈或瓶颈。 Storm UI中的容量指标对于识别这些内容很有用,但我对Bolt的队列大小更感兴趣。

我的理解是每个螺栓有两个队列,一个用于待执行的元组,另一个用于待发出的元组。是否可以监控这些队列的大小?

我在网上发现了一些关于向Bolts添加ITaskHook实现的内容,但我不清楚如何使用它来监视队列大小。可以使用ITaskHook中的方法来监控它吗?

1 个答案:

答案 0 :(得分:4)

您应该能够使用metrics机制查看拓扑组件的队列长度。一种简单的方法是将conf.registerMetricsConsumer(LoggingMetricsConsumer.class)添加到拓扑的配置中。

以下是我为其中一个组件获取的示例

4:fetch __sendqueue {write_pos=12122, read_pos=12122, capacity=1024, population=0} 4:fetch __receive {write_pos=8588, read_pos=8587, capacity=1024, population=1}