我正在使用[codahale-metrics]獲取Storm的螺栓和噴嘴的指標,并發送到Graphite服務器。我如何有時間在螺栓和噴嘴之間發送消息?例如。此代碼僅用于每個執行器上的指標:import com.codahale.metrics.Histogram;import com.codahale.metrics.Meter;import com.codahale.metrics.Timer;public class MqttSensorDetailSpout extends BaseRichSpout { private Meter tupleMeter; private Timer tupleTimer; private Histogram tupleHistogram; public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) { this.context = context; this.collector = collector; this.tupleMeter = context.registerMeter("meterSpout-" + this.topic); this.tupleTimer = context.registerTimer("timerSpout-" + this.topic); this.tupleHistogram = context.registerHistogram("histogramSpout-" + this.topic); } public void nextTuple() { final Timer.Context timeContext = this.tupleTimer.time(); this.tupleMeter.mark(); try { … } finally { timeContext.stop(); } }}我想知道在執行器之間發送消息所經過的時間。我將如何實現它?謝謝,費利佩
1 回答

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
Storm不會為消息添加時間戳,因為我們無法確定人們是否在其服務器上設置了NTP或類似的東西。如果想知道將元組從一個執行器發送到另一個執行器需要多長時間,則應手動向發送的元組添加時間戳。您可以像添加任何其他元組字段一樣添加它。然后,下游 bolt 可以讀取輸入元組的時間戳,并計算傳輸所需的時間。
添加回答
舉報
0/150
提交
取消