Apache Flink Dashboard не показывает метрики - PullRequest
3 голосов
/ 02 марта 2020

У меня есть следующий очень простой Apache Flink Pipeline, для которого я хотел бы получить некоторые метрики, как описано в документации Apache Flink , через Apache Flink Dashboard:

import org.apache.flink.api.common.functions.RichMapFunction;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.metrics.Counter;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.source.RichSourceFunction;

public class Pipeline {

    public static void main(String[] args) throws Exception {
        final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

        env.addSource(new RichSourceFunction<String>() {
            private static final long serialVersionUID = 3990963645875188158L;
            private boolean notCanceled = true;

            @Override
            public void run(SourceContext<String> ctx) throws Exception {
                while (notCanceled) {
                    ctx.collect("test");
                }
            }

            @Override
            public void cancel() {
                notCanceled = false;
            }
        }).map(new RichMapFunction<String, String>() {
            private static final long serialVersionUID = 1L;
            private transient Counter counter;

            @Override
            public void open(Configuration parameters) throws Exception {
                super.open(parameters);
                this.counter = getRuntimeContext()
                        .getMetricGroup()
                        .counter("myCounter");
            }

            @Override
            public String map(String value) throws Exception {
                this.counter.inc();
                return "mappedtext";
            }
        }).print();

        env.execute();
    }

}

Я запускаю этот конвейер, используя Docker Setup, доступный через Docker -Hub . Все использует Apache Flink 1.10.0. Трубопровод работает нормально, но когда я пытаюсь просмотреть свои метри c, я получаю только: Metric is not showing

Теперь я спрашиваю себя, что я делаю не так? Есть какой-то параметр конфигурации, который мне не хватает, или это неправильное место для просмотра этого показателя c на панели инструментов? Может кто-нибудь посоветовать или хотя бы указать мне ресурс, где я мог бы получить больше информации?

1 Ответ

1 голос
/ 02 марта 2020

Я считаю, что вы добавили метрику оператора c к оператору карты, но веб-интерфейс отображает метрики задач. (В случае этого простого, смущающего параллельного задания операторы источника, карты и приемника были объединены в одну задачу.)

Для проверки добавленной вами метрики c вы могли бы используйте REST API или любой из репортеров метрик. Я думаю, что это также может отображаться в веб-интерфейсе, если вы отключите цепочку операторов через

    env.disableOperatorChaining();
...