为什么Flink使用Pushgateway而不是Prometheus的常规拉模型进行常规指标收集?

时间:2018-08-19 12:39:57

标签: apache-flink flink-streaming

当将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);
    }
}

https://github.com/apache/flink/blob/master/flink-metrics/flink-metrics-prometheus/src/main/java/org/apache/flink/metrics/prometheus/PrometheusPushGatewayReporter.java

但是,下面的Prometheus官方文件指出:“ Prometheus直接或通过中介推送网关从已插桩工作中抽取指标,用于 短期工作 ”,显然,Flink Streaming作业不是短暂的作业,那么为什么Flink使用Pushgateway而不是Prometheus的常规拉模型进行常规指标收集?

https://prometheus.io/docs/introduction/overview/

1 个答案:

答案 0 :(得分:2)

Flink同时提供PrometheusPushGatewayReporter和通常更合适的基于拉的PrometheusReporter。 Prometheus已在Flink用户中变得非常流行,并且社区对支持这两种类型的连接都非常感兴趣。