Apache flink 使用Flink中的计数器获取NumofRecords
我想为Flink中的一个运营商展示numRecordsIn,为此,我一直在关注数据工匠的ppt。计数器代码如下所示Apache flink 使用Flink中的计数器获取NumofRecords,apache-flink,flink-streaming,flink-cep,Apache Flink,Flink Streaming,Flink Cep,我想为Flink中的一个运营商展示numRecordsIn,为此,我一直在关注数据工匠的ppt。计数器代码如下所示 public static class mapper extends RichMapFunction<String,String>{ public Counter counter; @Override public void open(Configuration parameters) throws Exceptio
public static class mapper extends RichMapFunction<String,String>{
public Counter counter;
@Override
public void open(Configuration parameters) throws Exception {
super.open(parameters);
this.counter = getRuntimeContext()
.getMetricGroup()
.counter("numRecordsIn");
}
@Override
public String map(String s) throws Exception {
counter.inc();
System.out.println("counter val " + counter.toString());
return null;
}
}
公共静态类映射器扩展了RichMapFunction{
公众柜台;
@凌驾
公共void open(配置参数)引发异常{
super.open(参数);
this.counter=getRuntimeContext()
.getMetricGroup()
.计数器(“numRecordsIn”);
}
@凌驾
公共字符串映射(字符串s)引发异常{
counter.inc();
System.out.println(“counter val”+counter.toString());
返回null;
}
}
问题是,如何指定要显示的运算符?公制计数器通过Flink的公制系统公开。为了查看它们,您必须配置度量报告器。可以找到如何注册度量报告器的说明。Flink包括许多内置度量,包括numRecordsIn。所以,如果这就是您想要度量的,那么就不需要编写任何代码来实现特定的度量。同样,NumRecordsInsperSecond和许多其他人也是如此 您询问的代码导致使用度量的运算符的numRecordsIn计数器递增 更好地理解度量系统的一个好方法是打开一个简单的流作业,并查看Flink的web ui中的度量。我还发现在作业运行时查询监控RESTAPI非常有用