Flink Dashboard:算子吞吐量

Flink Dashboard: Operator Throughput

  1. 我有一个使用 flink (1.9) 的程序,我想借助仪表板检查 Map 运算符实例的吞吐量。从现有的指标来看,numRecordsInPerSecond 似乎是最有前途的,但我猜它不涉及处理时间。我错了吗?

  2. 我已经定义了我自己的指标(吞吐量),它本质上是通过将处理的记录数除以 OUT 映射(IN 值)函数的总执行时间来计算平均吞吐量。但这不算地图函数之外发生的任何事情。

  3. 另一个想法是在 map 函数的末尾添加一个计量器,但我想如果源生成记录的速度不够快,计算的吞吐量会更差,因为运算符仍然存在闲置很多时间。这是正确的吗?

请具体回答1和2。另外,你们程序中通常是如何计算吞吐量的?

Flink 的所有 Meter 指标,例如 numRecordsInPerSecond,都是根据处理时间测量速率。

我通常满足于依靠这些 built-in 指标来衡量吞吐量。但是您可能想在接收器中添加自定义指标,因为 Flink 总是 returns numRecordsOut 为 0,接收器为 numRecordsOutPerSecond。