我有一个Flink作业,该作业从Kafka(v0.9)中读取并写入Redis。我想监视Flink应该能够转发的Kafka发出的records-consumed-rate
和records-lag-max
指标。在这种情况下,我将转发到Datadog。
当我以1的并行度开始工作时,我看到此度量标准很好地发出了。但是,如果我将并行度设置为大于1,则不再转发该指标。当并行度> 1时,作业正在运行,因为我可以看到条目已写入Redis。
我正在AWS EMR上运行Flink(v1.6.2):
并行性由streamExecutionEnvironment.setParallelism()设置。每个Kafka使用者都会使用相同的group.id和唯一的client.id实例化。
DD代理在群集上运行良好。正在发出许多指标,例如numberOfCompletedCheckpoints和upTime等。
如果并行度大于1,Flink是否有理由不从Kafka转发这些指标?
更新:
我还尝试从Redis RichSinkFunction发送自定义DD指标(counter.inc()
)。当parallelism = 1时,度量标准发送良好。当parallelism = 7时,不发送度量标准,但是会调用它(添加了调试行)。因此,似乎它不仅限于从Kafka转发的指标。
答案 0 :(得分:0)
问题是HTTPRequest的大小越大,并行性就越高。我返回了“请求实体太大”,但是异常未正确注销,所以我错过了。
似乎Flink DatadogHttpReporter在构建请求时并未考虑到请求的大小。我对Reporter进行了修改,将每个请求的指标数限制为1000。现在,指标显示得很好。