Hi,

There are several possibilities:
1. Please check if reporter is set up ( guide
<https://ci.apache.org/projects/flink/flink-docs-release-1.4/monitoring/metrics.html#jmx-orgapacheflinkmetricsjmxjmxreporter>
 )
For example, I would make sure my local JMXReporter service is up and
running by checking taskmanager.log and search for the line:

2017-09-18 15:18:57,174 INFO  org.apache.flink.metrics.jmx.JMXReporter
                - Started JMX server on port 28781.
2017-09-18 15:18:57,175 INFO  org.apache.flink.metrics.jmx.JMXReporter
                - Configured JMXReporter with {port:28780-28790}

If for any reason the JMX server does not start up, your might see some
errors:

2017-09-18 15:26:04,743 INFO
org.apache.flink.runtime.metrics.MetricRegistry               - Configuring
JMXReporter with {port=28781, class=org.apac
he.flink.metrics.jmx.JMXReporter}.
2017-09-18 15:26:04,760 ERROR
org.apache.flink.runtime.metrics.MetricRegistry               - Could not
instantiate metrics reporter jmx. Metrics migh
t not be exposed/reported.
java.lang.RuntimeException: Could not start JMX server on any configured
port. Ports: 28781
        at
org.apache.flink.metrics.jmx.JMXReporter.open(JMXReporter.java:126)
        at
org.apache.flink.runtime.metrics.MetricRegistry.<init>(MetricRegistry.java:131)
        at
org.apache.flink.runtime.taskexecutor.TaskManagerServices.fromConfiguration(TaskManagerServices.java:188)
        at
org.apache.flink.runtime.taskmanager.TaskManager$.startTaskManagerComponentsAndActor(TaskManager.scala:1984)
        at
org.apache.flink.runtime.taskmanager.TaskManager$.runTaskManager(TaskManager.scala:1823)
        at
org.apache.flink.runtime.taskmanager.TaskManager$$anonfun$1.apply$mcV$sp(TaskManager.scala:1926)
        at
org.apache.flink.runtime.taskmanager.TaskManager$$anonfun$1.apply(TaskManager.scala:1904)
        at
org.apache.flink.runtime.taskmanager.TaskManager$$anonfun$1.apply(TaskManager.scala:1904)
        at scala.util.Try$.apply(Try.scala:192)


Here is my local setup for conf/flink-conf.yaml for example:
metrics.reporters: jmx
metrics.reporter.jmx.class: org.apache.flink.metrics.jmx.JMXReporter
metrics.reporter.jmx.port: 28780-28790

2. You might want to try a real streaming example which could execute
continuously. If I remember correctly, when the task is completed, the
manager would seem to release the associated resource and object. In your
example, it is only processing a few strings, which would finish in matter
of milliseconds, before bringing up jconsole manually.

Hope some of these help,



On Mon, Sep 18, 2017 at 12:22 PM, Jiewen Shao <jiewens...@gmail.com> wrote:

> Thanks, When I started jconsole, it listed 
> com.apache.flink.runtime.jobmanager..:[port]
> as one of the Local Process, i was able to connect to it with insecure
> connection, but i was not able to locate the Counter metrics, I only saw
> some system metrics.
>
> On Sun, Sep 17, 2017 at 7:39 PM, Michael Fong <mcfong.o...@gmail.com>
> wrote:
>
>> Hi,
>>
>> You may enable metrics reporter to see the output of your metrics;
>> counter in your example.
>>
>> There is a brief documentation regarding to metrics and reporter setup at
>> link
>> <https://ci.apache.org/projects/flink/flink-docs-release-1.4/monitoring/metrics.html>.
>> The easiest approach, in my opinion, is to set up a JMX reporter so that
>> you may see your metrics via JConsole.
>>
>> Hope this helps.
>>
>> Regrads,
>>
>>
>> On Mon, Sep 18, 2017 at 10:27 AM, Jiewen Shao <jiewens...@gmail.com>
>> wrote:
>>
>>> I'm new to flink and I have read https://ci.apache.org/pro
>>> jects/flink/flink-docs-release-1.3/monitoring/metrics.html, I am still
>>> unclear where do I read the metrics I added.
>>>
>>> for example,
>>>
>>> public static void main(String[] args) throws Exception {
>>>
>>>
>>>         StreamExecutionEnvironment env = StreamExecutionEnvironment.get
>>> ExecutionEnvironment();
>>>
>>>         env.setParallelism(2);
>>>
>>>
>>>
>>>         List<String> wordList = Arrays.asList("Hive", "Presto", "Impala",
>>> "Parquet","ORC","Hadoop", "Flink", "Spark", "Storm", "Tez", "Flink");
>>>
>>>
>>>         DataStreamSource<String> source = env.fromCollection(wordList);
>>>
>>>         DataStream<Tuple2<String, Integer>> dataStream = env
>>> .fromCollection(wordList).map(new WordLengthCounter());
>>>
>>>         dataStream.print();
>>>
>>>         env.execute();
>>>
>>>     }
>>>
>>>
>>> and
>>>
>>>
>>> public class WordLengthCounter extends RichMapFunction<String,
>>> Tuple2<String, Integer>> {
>>>
>>>
>>> private static final long serialVersionUID = 1L;
>>>
>>> private Counter counter;
>>>
>>>
>>> @Override
>>>
>>>   public void open(Configuration config) {
>>>
>>>     this.counter = getRuntimeContext()
>>>
>>>       .getMetricGroup()
>>>
>>>       .counter("myCounter");
>>>
>>>   }
>>>
>>>
>>> @Override
>>>
>>> public Tuple2<String, Integer> map(String value) throws Exception {
>>>
>>> this.counter.inc();
>>>
>>> return new Tuple2<String, Integer>(value, value.length());
>>>
>>> }
>>>
>>> }
>>>
>>>
>>> Now, where do I see the counter? Sorry for the naive question
>>>
>>> can anyone point me to any good end-to-end "hello world" example for
>>> flink metrics.
>>>
>>
>>
>

Reply via email to