标题几乎说明了一切,我有一些Storm拓扑,我想测量它们的延迟,即从Kafka传入消息到最后一点相关执行之间的时间量。螺栓。如果我可以钻取结果以查看每个螺栓的延迟,那么奖励积分。
这可以通过简单地调整Storm配置来完成吗?
如果没有,http://storm.incubator.apache.org/apidocs/backtype/storm/hooks/info/SpoutAckInfo.html backtype.storm.hooks.info.SpoutAckInfo.completeLatencyMs是我正在寻找的东西吗?
答案 0 :(得分:3)
对于一般情况分析,我们有一个风暴的分支,我让主管动态设置和打开等于工作端口高于1000的JMX端口(当然,这限制了我们可以分配的工作人员数量,但我们& #39;现在无处接近这个问题)。然后使用supervisor.childopts值分配worker的JMX端口并与Visual VM连接。
特定于您的指标问题,您可以使用BaseTaskHook将风暴指标推送到具有MBean的内容(我们使用codahale指标),然后再次通过JMX浏览值。我发布了一个示例gist。请注意,我们还没有提升到3.00的codahale指标。
使用Java 7工具,我相信您能够在正在运行的JVM 上启用JMX ,因此如果您使用的是Java 7+,那么这对您也有帮助。