apache-flink - 在 Flink 延迟指标中获取算子名称
问题描述
我正在尝试使用 Flink 导出的延迟指标来估计我的事件的端到端元组延迟(我正在使用 Prometheus 指标报告器)。一切都很好,我可以在我的 Grafana/Prom 仪表板中看到延迟指标。看起来像
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
.
map vs sink
现在我的问题是,仅通过查看指标就没有直观的方法来区分两者(找出哪个 operator_id 是)。所以我的问题基本上是:
- 我的假设正确吗?
- 区分这两个运算符的最佳方法是什么?我尝试为我的
map
和分配名称sink
。即使这些名称出现在其他指标中,例如numRecordsIn
,这些名称也不会出现在延迟指标中。 - 有没有办法获得和之间的
operator_id
映射operator_name
?
解决方案
当前operator_id
是一个哈希值,或者是从输入的哈希值和节点本身计算出来的,或者如果你uid
为一个操作符设置了一个 UID,它被计算为murmur3_128
这个 id 的哈希值。
请打开一个 JIRA 问题以将此功能添加到 Flink。
推荐阅读
- spring-boot - 测试百里香叶加工
- java - 如何更改饼图 JAVAFX 的字幕
- python - python循环遍历数据框,求和和删除
- c - C. recursion initializing a variable
- dart - 如何让 Dart 根据定义为相同类型的属性推断 Widget Generic Type?
- python - 熊猫数据框将多行和多列转换为单行[键]和列[键]
- java - ExecutorService 应该等到一批 taksk 完成后再重新开始
- javascript - React Ant design Uncaught TypeError:无法读取未定义的属性“组件”
- amazon-aurora - 在 RDS Aurora 中创建数据库实例之前是否需要等待集群创建完成?
- python - 我不确定我是否已将字符串正确转换为整数?