我的拓扑结构有一两个瓶颈。StormUI中的容量度量对于识别这些问题很有用,但我更感兴趣的是bolt队列的大小。我的理解是,每个bolt有两个队列,一个用于等待执行的元组,另一个用于等待发出的元组。是否可以监视这些队列的大小?我在网上找到了一些关于在bolts中添加itaskhook实现的东西,但还不清楚如何使用它来监视队列大小。itaskhook中的方法是否可以用于监视此情况?
66bbxpm51#
您应该能够使用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}
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}
1条答案
按热度按时间66bbxpm51#
您应该能够使用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}