0

当我使用 flink-metrics-prometheus_2.11-1.10.0.jar 向 prometheus 报告指标时,出现以下错误,我想知道这个问题的原因以及如何解决它:

    2020-04-20 15:32:17.940 [Flink-MetricRegistry-thread-1] WARN  org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter  - Failed to push metrics to PushGateway with jobName oceanus, groupingKey {}.
java.io.IOException: Response code from http://9.91.161.72:80/metrics/job/oceanus was 200
        at org.apache.flink.shaded.io.prometheus.client.exporter.PushGateway.doRequest(PushGateway.java:297)
        at org.apache.flink.shaded.io.prometheus.client.exporter.PushGateway.push(PushGateway.java:127)
        at org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter.report(PrometheusPushGatewayReporter.java:109)
        at org.apache.flink.runtime.metrics.MetricRegistryImpl$ReporterTask.run(MetricRegistryImpl.java:441)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
4

2 回答 2

0

似乎 flink-metrics-prometheus-1.10.0.jar 包含一个非常旧的 prometheus 客户端 java 版本(https://github.com/apache/flink/blob/master/flink-metrics/flink-metrics-prometheus/pom。 xml#L79https://github.com/apache/flink/blob/release-1.9.1/pom.xml#L125 - 0.3.0 版本)。

“200 OK”响应代码上恼人的 WARN 已修复为 0.8.0(https://github.com/prometheus/client_java/blob/parent-0.8.0/simpleclient_pushgateway/src/main/java/io/prometheus/client /exporter/PushGateway.java#L316)。自 Flink 1.11.0 ( https://github.com/apache/flink/blob/release-1.11.0/pom.xml#L127 ) 起就包含该版本。

所以解决方案是将 flink-metrics-prometheus-1.11.0.jar 作为类路径的一部分。

不要担心那里的 Flink 版本不兼容,因为我正在使用 Flink 1.9.1 和 flink-metrics-prometheus-1.11.0.jar 并且一切正常。我想 Flink 版本之间的那部分没有太多变化

于 2020-09-16T07:03:10.387 回答
0

似乎最近处理响应的方式发生了变化。

我怀疑您需要将 prometheus jar 与服务器版本匹配,反之亦然。

于 2020-05-07T07:11:41.843 回答