当前位置: 首页 > 知识库问答 >
问题:

为什么Flink使用Push网关而不是Prometheus通常用于一般指标收集的拉动模型?

阚小云
2023-03-14

我们可以看到,当将Flink指标暴露给外部系统(如Prometheus)时,Flink使用Push网关而不是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

然而,普罗米修斯下面的官方文件指出,“普罗米修斯直接或通过中间推送网关从工具化作业中获取短期作业的指标”,显然Flink流式作业不是短期作业,那么为什么Flink使用推送网关而不是普罗米修斯通常的拉式模型来收集一般指标呢?

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

共有1个答案

郎长卿
2023-03-14

Flink提供了PrometheusPushGatewayReporter和通常更合适的基于pull的PrometheusReporter。普罗米修斯(Prometheus)在Flink用户中很受欢迎,社区对支持这两种类型的连接很感兴趣。

 类似资料:
  • 问题内容: 也许对编译器进行优化后并不重要,但是在C / C ++中,我看到大多数人以以下形式进行for循环: 使用postfix 完成增量操作。我得到了两种形式之间的区别。i 返回i的当前值,但是在安静时将1加到i。++ i首先将1加到i,然后返回新值(比i大1)。 我认为i 需要做更多的工作,因为除了下一个值外,还需要存储一个前一个值:推 (&i)进行堆栈(或加载至寄存器);递增(&i)。与

  • 我想通过Spring Boot应用程序中的Pushgateway将指标(例如HTTP请求的处理时间或当前堆大小)推送到Prometheus。 我很挣扎,因为有很多文档,要么来自Spring Metrics,要么来自Prometheus,但它们都没有解决我的具体问题。 最简单的方法是在RestController类上使用定时注释,如下所述:http://projects.spring.io/spri

  • 为什么只适用于s而不适用于s?有什么特别的原因吗?

  • 问题内容: 这个来自json.Unmarshal docs的示例(为便于使用而不是进行了稍微修改)有效,没有错误: 工作示例的游乐场链接 但是这个经过稍微修改的示例却没有: 非工作示例的游乐场链接 它显示了这个实际上并没有帮助的模糊错误(看起来更像是一个函数调用,而不是错误的IMO): json:Unmarshal(nil * main.Animal) 这似乎是因为它是未初始化的指针。但是文档说(

  • 很多人问了此问题,说bzero已经被posix-2008废弃,为何还使用bzero。选择bzero而不是memset,有2个原因: bzero有2个参数,指针和长度,很明确就是将制定size的内存初始化为0。而memset有3个参数,需要记忆参数的位置,有不少人经常把长度和初始化值搞错。 bzero比memset的可读性要好。memset可以制定初始化的值,实际上绝大多数情况都是0。 一旦新版本g

  • 我正在学习Flink,其中一件令我困惑的事情是使用一个名为Collector的对象。例如在平面图函数中。这个Collector和它的方法收集了什么?以及为什么例如map函数不需要通过显式使用它来传递结果? 这里可以看到在flatmap函数中使用收集器的一些示例:https://www.programcreek.com/scala/org.apache.flink.util.Collector 此外