Как отправить метрики задержки из Apache Storm на сервер Graphite? - PullRequest
0 голосов
/ 25 марта 2019

Я настроил Apache Storm для отправки метрик на сервер Graphite с использованием версии 2 . Он посылает 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

enter image description here

1 Ответ

0 голосов
/ 25 марта 2019

Я включил 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();
        ...
    }
}

enter image description here

...