【问题标题】:Can't expose Flink metrics to Prometheus无法向 Prometheus 公开 Flink 指标
【发布时间】:2020-09-17 08:31:22
【问题描述】:

我正在尝试向 Prometheus 公开 Flink 的内置指标,但不知何故,Prometheus 无法识别目标 - JMX 和 PrometheusReporter。

prometheus.yml 中定义的抓取如下所示:

scrape_configs:
  - job_name: node
    static_configs:
      - targets: ['localhost:9100']

  - job_name: 'kafka-server'
    static_configs:
      - targets: ['localhost:7071']

  - job_name: 'flink-jmx'
    static_configs:
      - targets: ['localhost:8789']

  - job_name: 'flink-prom'
    static_configs:
      - targets: ['localhost:9249']

而我的flink-conf.yml 有以下几行:

#metrics.reporters: jmx, prom
metrics.reporters: jmx, prometheus

#metrics.reporter.jmx.factory.class: org.apache.flink.metrics.jmx.JMXReporterFactory
metrics.reporter.jmx.class: org.apache.flink.metrics.jmx.JMXReporter
metrics.reporter.jmx.port: 8789

metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter
metrics.reporter.prom.port: 9249

但是,当运行 WordCount 时,两个 Flink 目标都关闭了

  • 在 IntelliJ 中
  • 作为罐子:java -jar target/flink-word-count.jar --input src/main/resources/loremipsum.txt
  • 作为 Flink 工作:flink run target/flink-word-count.jar --input src/main/resources/loremipsum.txt

根据 Flink 文档,我不需要任何额外的 JMX 依赖项以及在 flink/lib/ 中为 Prometheus 报告者提供的 flink-metrics-prometheus-1.10.0.jar 的副本。

我做错了什么?缺少什么?

【问题讨论】:

    标签: java apache-flink prometheus jmx


    【解决方案1】:

    我相信,这项特定的工作将很快完成。一旦设置工作正常,可能没有有趣的指标,因为作业运行时间不够长,无法显示任何内容。

    当您使用小型集群(如java -jar ...)运行时,不会加载flink-conf.yaml 文件(除非您在工作中做了一些特别的事情来加载它)。另请注意,此文件通常具有.yaml 扩展名;如果改用.yml,我不确定它是否有效。

    您可以检查慢跑管理器和任务管理器日志以确保正在加载报告器。

    FWIW,我上次这样做时使用了这个设置,这样我就可以从多个进程中抓取:

    # flink-conf.yaml
    
    metrics.reporters: prom
    metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter
    metrics.reporter.prom.port: 9250-9260
    
    # prometheus.yml
    
    scrape_configs:
      - job_name: 'flink'
        static_configs:
          - targets: ['localhost:9250', 'localhost:9251']
    

    【讨论】:

    • 作业运行时间约为 23 秒,因为我实际上使用了五个大文件并将并行度设置为 1。除此之外,当作业运行时导航到 http://localhost:9249/metrics 时我应该能够看到指标,事实并非如此。作业管理器配置还显示了我在 flink-conf 中设置的报告器和端口。不幸的是,我在日志中找不到任何可疑的东西。
    • 我建议您切换到使用连续流式作业进行调试。
    猜你喜欢
    • 2022-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2022-08-11
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多