当将Flink指标暴露于Prometheus等外部系统时,我们可以看到Flink使用Pushgateway而不是Prometheus的常规拉模型进行常规指标收集。
@Override
public void report() {
try {
pushGateway.push(CollectorRegistry.defaultRegistry, jobName);
} catch (Exception e) {
log.warn("Failed to push metrics to PushGateway with jobName {}.", jobName, e);
}
}
但是,下面的Prometheus官方文件指出:“ Prometheus直接或通过中介推送网关从已插桩工作中抽取指标,用于 短期工作 ”,显然,Flink Streaming作业不是短暂的作业,那么为什么Flink使用Pushgateway而不是Prometheus的常规拉模型进行常规指标收集?
答案 0 :(得分:2)
Flink同时提供PrometheusPushGatewayReporter和通常更合适的基于拉的PrometheusReporter。 Prometheus已在Flink用户中变得非常流行,并且社区对支持这两种类型的连接都非常感兴趣。