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



我们可以看到 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 流作业不是短暂的工作,那么为什么 Flink 使用 Pushgateway 而不是 Prometheus 通常的拉取模型进行一般指标收集?

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

Flink 同时提供了 PrometheusPushGatewayReporter 和通常更合适的基于拉动的 PrometheusReporter。Prometheus 在 Flink 用户中非常受欢迎,社区也有兴趣支持这两种类型的连接。

相关内容

  • 没有找到相关文章

最新更新