当并行度大于1时,Flink不转发Kafka指标

问题描述 投票:0回答:1

我有一个Flink工作,从Kafka(v0.9)读取并写入Redis。我想监视Kafka发出的records-consumed-raterecords-lag-max指标,Flink应该能够转发。在这种情况下,我转发到Datadog。

当我以1的并行度开始工作时,我看到这个指标发射得很好。但是,如果我使并行度大于1,则不再转发此度量标准。当并行度> 1时,作业正在运行,因为我可以看到正在写入Redis的条目。

我在AWS EMR上运行Flink(v1.6.2):

  • Nodier大师:(1)先生。
  • 核心节点:(1)c4.2xlarge
  • num.task.managers:1
  • slots.per.task.manager:7
  • 并行性:7

并行性由streamExecutionEnvironment.setParallelism()设置。每个Kafka使用者都使用相同的group.id和唯一的client.id进行实例化。

DD代理在群集上运行正常。正在发出许多指标,例如numberOfCompletedCheckpoints和upTime等。

如果并行度大于1,Flink是否会从Kafka转发这些指标?

更新:我还尝试从Redis RichSinkFunction发送自定义DD指标(counter.inc())。当并行度= 1时,度量标准被正确发送。当parallelism = 7时,不会发送度量值,但会调用它(添加调试行)。所以它似乎不仅限于来自Kafka的转发指标。

apache-kafka apache-flink
1个回答
0
投票

问题是HTTPRequest的大小越大,并行性就越有意义。我回来了“Request Entity Too Large”,但异常没有正确登出,所以我错过了。

似乎Flink DatadogHttpReporter在构建时不考虑请求的大小。我修改了Reporter,将每个请求的指标数限制为1000.现在指标显示得很好。

© www.soinside.com 2019 - 2024. All rights reserved.