【问题标题】:Flink not forwarding Kafka metrics when parallelism greater than 1当并行度大于 1 时,Flink 不转发 Kafka 指标
【发布时间】:2019-04-19 03:06:04
【问题描述】:

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

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

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

  • 主节点:(1) m4.large
  • 核心节点:(1) c4.2xlarge
  • num.task.managers: 1
  • slots.per.task.manager: 7
  • 并行度:7

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

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

如果并行度大于 1,Flink 是否有任何理由不会从 Kafka 转发这些指标?

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

【问题讨论】:

  • 不确定 DataDog 是如何工作的,因为我从未使用过它,但是当您设置并行度 > 1 时,Flink 会为处理中涉及的每个 TaskManager 发送单独的指标,所以这可能是您的问题案子?我一直在使用 Flink 和 Prometheus,并行度 > 1 没有问题。

标签: apache-kafka apache-flink


【解决方案1】:

问题是 HTTPRequest 的大小越大,并行度越高,这是有意义的。我正在返回“请求实体太大”,但是异常没有正确注销,所以我错过了。

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

【讨论】:

    猜你喜欢
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 2018-03-02
    相关资源
    最近更新 更多