在 Flink 延迟指标中获取操作员名称



我正在尝试使用 Flink 导出的延迟指标估计事件的端到端元组延迟(我使用的是 Prometheus 指标报告器(。一切都很好,我可以在我的 Grafana/舞会仪表板中看到延迟指标。看起来像

flink_taskmanager_job_latency_source_id_source_subtask_index_operator_id_operator_subtask_index_latency{
host="",instance="",job="",
job_id="",job_name="",operator_id="",operator_subtask_index="0",
quantile="0.99",source_id="",source_subtask_index="0",tm_id=""}

我拥有的这个测试作业是一个简单的source->map->sink操作,并行度设置为 1。我可以从 Flink 仪表板中看到,所有这些都被链接到一个任务中。对于我的作业的一次运行,我看到两组延迟指标。每组显示所有分位数,如 (.5, .95..(。两组之间唯一的区别是operator_id.我认为这意味着一个operator_id属于map运算符,另一个属于sink

现在我的问题是,仅通过查看指标,就无法直观地区分两者(找出哪个operator_id是map vs sink(。所以我的问题基本上是:

  1. 我的假设正确吗?
  2. 区分这两个运算符的最佳方法是什么?我尝试为我的mapsink分配名称。即使这些名称显示在其他指标(如numRecordsIn(中,这些名称也不会显示在延迟指标中。
  3. 有没有办法获取operator_idoperator_name之间的映射?

operator_id当前是一个哈希值,要么是根据输入和节点本身的哈希值计算得出的,或者如果您通过uid为运算符设置了 UID,则将其计算为此 id 的murmur3_128哈希。

请打开 JIRA 问题以将此功能添加到 Flink。

相关内容

  • 没有找到相关文章