我正在尝试使用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
。
现在,我的问题是,仅通过查看指标,就不是一种直观的方式来区分两者(找出哪个operator_id是map vs sink
)。所以我的问题本质上是:
map
和sink
分配名称。即使这些名称以numRecordsIn
之类的其他指标显示,这些名称也不会显示在延迟指标中。operator_id
和operator_name
之间的映射?答案 0 :(得分:0)
operator_id
当前是一个哈希值,它是根据输入和节点本身的哈希值计算得出的,或者如果您已经通过uid
为操作员设置了UID,则其计算为{ {1}}此ID的哈希值。
请打开JIRA问题以将此功能添加到Flink。