Apache flink 获取Flink延迟度量中的运算符名称

Apache flink 获取Flink延迟度量中的运算符名称,apache-flink,Apache Flink,我试图使用Flink导出的延迟度量来估计事件的端到端元组延迟(我使用的是Prometheus metrics reporter)。一切都很好,我可以在Grafana/Prom仪表板中看到延迟度量。看起来像 flink_taskmanager_job_latency_source_id_source_subtask_index_operator_id_operator_subtask_index_latency{ host="",instance="",job="", job_id="",

我试图使用Flink导出的延迟度量来估计事件的端到端元组延迟(我使用的是Prometheus metrics reporter)。一切都很好,我可以在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..)。这两组之间唯一不同的是
运算符\u id
。我假设这意味着一个
操作符\u id
属于
map
操作符,另一个属于
sink

现在我的问题是,仅仅通过查看指标并不能直观地区分这两者(找出哪个操作符id是
映射还是sink
)。所以我的问题基本上是:

  • 我的假设正确吗
  • 区分这两个操作符的最佳方法是什么?我尝试为我的
    地图
    接收器
    分配名称。即使这些名称显示在其他度量中,如
    numRecordsIn
    ,这些名称也不会显示在延迟度量中
  • 有没有办法获得
    操作员\u id
    操作员\u name
    之间的映射

  • operator\u id
    当前是一个散列值,可以根据输入和节点本身的散列值计算,也可以通过
    UID
    为运算符设置UID,将其计算为该id的
    3\u 128
    散列


    请打开一期JIRA,将此功能添加到Flink。

    谢谢。我添加了一个Jira问题,但似乎已经有了。请问您如何将任务相关指标导出到普罗米修斯?默认情况下,它似乎只是将与作业管理器相关的指标导出到普罗米修斯。还需要配置什么?