1 应用

1.1 动态窗口函数

2 监控运行状态

2.1 工具

Flink自带的REST API接口
REST API | Apache Flink

2.2 调用方法

2.2.1 前提

job代码中设置了延迟追踪间隔

env.getConfig().setLatencyTrackingInterval(毫秒);

2.2.2 具体方法

  • 功能描述
/jobs

请求类型:GET
返回
在这里插入图片描述


  • 功能描述
/jobs/*aa82978ba0f67324f3a128c3daa744ae

请求参数:jobid
请求类型:GET
返回
在这里插入图片描述
注:会返回指定job里的jobid以及每个“任务块”的id(红框标注部分)


  • 功能描述
/jobs/metrics

请求类型:GET
返回
在这里插入图片描述
注:id中的source_id和operator_id是每个“任务块”的id


  • 功能描述
/jobs/metrics/?get=*latency.source_id.bd9c186e89cc37a76d776844dfa8ccba.operator_id.362318de9231e607a30994b2501e8697.operator_subtask_index.0.latency_max

请求参数:metrics返回id
请求类型:GET
返回
在这里插入图片描述***

  • 功能描述
 /jobs/*aa82978ba0f67324f3a128c3daa744ae*/metrics/

请求参数:jobid
请求类型:GET
返回
在这里插入图片描述


  • 功能描述
/jobs/aa82978ba0f67324f3a128c3daa744ae/metrics/?get=*latency.source_id.bd9c186e89cc37a76d776844dfa8ccba.operator_id.362318de9231e607a30994b2501e8697.operator_subtask_index.0.latency_max

请求参数:jobid
请求类型:GET
返回
在这里插入图片描述

2.2.3 踩坑!!!

  • 代码不变时,job内的source_id和operator_id不会改变,重启作业只会更新jobid
  • 当存在使用相同代码,同时在运行的job时(例如:同一套代码,启动脚步中传入的参数不同),获取/jobs/metrics结果,会发现两个job对应的source_id和operator_id相同!!!。所以如果想要监控指定job的metrics时,一定要调用/jobs/<jobid>/metrics/?get=<vertices-id>!!!

2.3 可视化

可以借助Grafana仪表板
一口气搞懂Flink Metrics监控指标和性能优化

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐