flinkmetric库的使⽤和⾃定义metric-reporter
简单介绍
怎样蒸鸡蛋羹flink内部实现了⼀套metric数据收集库。 同时flink⾃⾝系统有⼀些固定的metric数据, 包括系统的⼀些指标,CPU,内存, IO 或者各个task运⾏的⼀些指标。具体包含那些指标可以查看官⽅⽂档:
同时我们也可以利⽤系统的metric库在⾃⼰的代码中进⾏打点收集metrics数据。此外, flink提供了外部接⼝,可以⽤来导出这些metrics数据. flink-metric库的使⽤
在官⽅的⽂档中有介绍, 需要继承Richfunction 才能获得对应的metric对象, ⽤法如下:
public class MyMapper extends RichMapFunction<String, String> {
private transient Counter counter;
@Override
public void open(Configuration config) {
.getMetricGroup()
.counter("myCounter");
}
@Override
未来机器人public String map(String value) throws Exception {
return value;
}
}
flink-metrics导出到外部系统
在flink中, 提供了⽅便的metric数据导出的库,通过实现⾃⼰的reporter,可以将metrics数据导出到不同的系统.
官⽅提供有多种reporter库,JMX, Graphite, 等等. 同时,我们可以⾃定义实现metric库,来导⼊到⾃⼰的系统.
⾃定义reporter类宽带账号
实现MetricReporter类中的open,clo, notifyOfAddedMetric, notifyOfRemovedMetric⽅法
实现Scheduled的report⽅法,在刚⽅法中实现写⼊到其他系统的逻辑黄美美
实现CharacterFilter的 filterCharacters⽅法, ⽤于对scope进⾏过滤.
public class FalconReporter implements MetricReporter, CharacterFilter, Scheduled {
private static final Logger LOG =Logger(FalconReporter.class);
private final Map<Gauge<?>, MetricTag> gauges = new ConcurrentHashMap<>();
断断续续private final Map<Counter, MetricTag> counters = new ConcurrentHashMap<>();
private final Map<Histogram, MetricTag> histograms = new ConcurrentHashMap<>();
private final Map<Meter, MetricTag> meters = new ConcurrentHashMap<>();
李恒光@Override
public String filterCharacters(String s) {
return s;
}
@Override
public void open(MetricConfig metricConfig) {
}
@Override
public void clo() {
}
@Override
怎么提升情商
public void notifyOfAddedMetric(Metric metric, String s, MetricGroup metricGroup) {
}
@Override
public void notifyOfRemovedMetric(Metric metric, String s, MetricGroup metricGroup) {
}
@Override
public void report() {
}
}
配置reporter浏览的意思
在flink-conf.yaml中配置即可,配置如下