Я использовал JMX в качестве репортера метрик, чтобы получить метрики Flink, но есть ли способ получить их в качестве вывода в терминале?
Я хочу построить numRecordsInPerSecond
для каждого оператора для анализа производительности, как я могу это сделать?
Я видел несколько примеров аккумуляторов, но это не дало мне правильного представления о том, как мне проводить анализ производительности Flink. Я приведу здесь пример
Это план выполнения моей программы Flink, у меня несколько вопросов, но я хочу задать базовый.
как я могу измерить задержку для каждого оператора, а затем сложить ее, чтобы вычислить общую задержку для сложного события.
как мне измерить выходную пропускную способность? В настоящее время я написал код в функции выбора, который подсчитывает количество увиденных сложных событий и время работы движка Flink. Это лучший способ сделать это?
Но остается основной вопрос: как я могу получить выходные данные для системных показателей, упомянутых в Flink metrics с помощью кода, который будет отображаться в выводе терминала, поскольку я хочу построить график производительности, а проблема с JMX заключается в том, что он показывает мне показатели по запросу в в смысле, я вижу значения, когда нажимаю на эту конкретную метрику в консоли JMX, что не идеально подходит для анализа системы.
PS - Я нашел один вопрос, заданный в StackOverflow для вычислений. пропускная способность и задержка, и ответ был примерно таким
private static class MyMapper extends RichMapFunction<String, Object> {
private transient Meter meter;
@Override
public void open(Configuration parameters) throws Exception {
super.open(parameters);
this.meter = getRuntimeContext()
.getMetricGroup()
.meter("myMeter", new DropwizardMeterWrapper(new com.codahale.metrics.Meter()));
}
@Override
public Object map(String value) throws Exception {
this.meter.markEvent();
return value;
}
}
Я также добавил вышеуказанный класс в свой код, но не видел никаких выходных данных, и мне также интересно, как этот код покажет пропускную способность или задержку, поскольку мы не упомянули, для какого оператора мы хотим найти задержку? Например, я хочу найти пропускную способность для оператора где-то в середине плана выполнения, а не в конце плана, сделает ли это за меня приведенный выше код?