0

我们可以看到 Flink 在将 Flink Metrics 暴露给 Prometheus 等外部系统时,使用 Pushgateway 而不是 Prometheus 通常的 pull 模型进行一般指标收集。

@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而不是普罗米修斯通常用于一般指标收集的拉动模型?

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

4

1 回答 1

3

Flink 提供PrometheusPushGatewayReporter和通常更合适的基于 pull 的PrometheusReporter。Prometheus 在 Flink 用户中非常流行,社区对支持这两种类型的连接很感兴趣。

于 2018-08-19T14:02:36.050 回答