【问题标题】:How to send latency metrics from Apache Storm to a Graphite server?如何将延迟指标从 Apache Storm 发送到 Graphite 服务器?
【发布时间】:2023-08-06 20:02:01
【问题描述】:

我已将 Apache Storm 配置为使用 version 2 将指标发送到 Graphite 服务器。它正在发送我所有螺栓和喷嘴的count 参数。我想发送螺栓和喷嘴通信之间的延迟,以及处理它们上的每个元组的时间。但是,我在 Graphite 服务器上找到的所有内容都是与螺栓和喷嘴上的 count 元组相关的指标。文档说可以收集直方图、计时器等。但没有说明如何收集它。

# Metrics v2 configuration (optional)
storm.metrics.reporters:
  # Graphite Reporter
  - class: "org.apache.storm.metrics2.reporters.GraphiteStormReporter"
    daemons:
        - "supervisor"
        - "nimbus"
        - "worker"
    report.period: 30
    report.period.units: "SECONDS"
    graphite.host: "127.0.0.1"
    graphite.port: 2003

【问题讨论】:

    标签: apache-storm graphite


    【解决方案1】:

    我在所有 Bolts 上都添加了 Meter,现在它显示在 Graphite 网络服务器上。

    public class MqttSensorDetailSpout extends BaseRichSpout {
        ...
        private Meter tupleMeter;
        public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) {
            this.tupleMeter = context.registerMeter("meterSpout-" + this.topic);
        }
        public void nextTuple() {
            this.tupleMeter.mark();
            ...
        }
    }
    

    【讨论】: