"No metrics available" indicates that either
a) metrics have not been queried yet or
b) metrics can not be transferred from the TaskManagers to the JobManager.
Regarding the first option, how long have you waited for metrics to show
up? It may take a bit for metrics to be available (around 10 seconds).
As for the second, you'll have to set the log level to DEBUG and search
for metric related errors.
On 19/04/2019 08:23, sora wrote:
Hi all,
I am trying to monitor my flink application, so I add two metric in my
application.
But I can not see any information on the web. The metric tab says "No
metrics available".
Do I miss any config?
My flink version: 1.7.2
My example code:
def main(args: Array[String]) {
val env = StreamExecutionEnvironment.getExecutionEnvironment
env.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime)
val text = env.socketTextStream("HOST", 6666)
val counts = text.flatMap(new RichFlatMapFunction[String, String] {
private var counter: Counter = _
private var meter: org.apache.flink.metrics.Meter = _
override def open(parameters: Configuration):Unit = {
super.open(parameters)
counter = getRuntimeContext.getMetricGroup.counter("recordCounter")
meter = getRuntimeContext.getMetricGroup.meter("recordMeter", new
DropwizardMeterWrapper(new com.codahale.metrics.Meter()))
}
override def flatMap(value:String, out: Collector[String]):Unit = {
val result = value.split("\\W+").filter(_.nonEmpty)
result.foreach(out.collect)
counter.inc(result.length)
meter.markEvent(result.length)
}
})
.map {
(_, 1L)
}
.keyBy(_._1)
.timeWindow(Time.seconds(5))
.sum(1)
.map {
_.toString()
}
counts.addSink(new SocketClientSink[String]("HOST", 7777, new
SimpleStringSchema))
env.execute("Scala SocketTextStreamWordCount Example")
}