Flink常用监控API

Posted 白夜鸦羽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink常用监控API相关的知识,希望对你有一定的参考价值。

通常,我们可以通过Flink WebUI来查看和监控Flink任务的运行状态,如图


但如果我们要基于Flink自建一个实时计算平台,则不能依赖于Flink WebUI,而需要自己实现Flink任务状态的查看和监控了。
实际上,Flink有一套自己的监控REST API,Flink WebUI也是基于这套监控API实现的,我们可以通过调用集群地址+Flink监控API,来实现跟Flink WebUI一样的功能。


集群地址在上图中是http://hadoop-master:8088/proxy/applicationId,常用的Flink监控REST API如下:

请求方法接口功能参数
GET/jobmanager/config获取集群配置
GET/jobmanager/metrics获取JM的metricsget:获取指定metric的值,有多个值时用逗号隔开
GET/jobs获取所有任务id及其运行状态
GET/jobs/metrics获取所有任务的metricsget:获取指定metric的值,有多个值时用逗号隔开;其他支持参数:agg、jobs
GET/jobs/overview获取所有任务的概况
GET/jobs/:jobid获取指定jobid的任务详情jobid(例如e0e129bfb8c68d6a774d493e2d8f0ada)
GET/jobs/:jobid/checkpoints获取指定jobid的检查点统计信息jobid
GET/jobs/:jobid/checkpoints/config获取指定jobid的检查点配置jobid
GET/jobs/:jobid/checkpoints/details/:checkpointid获取指定jobid和checkpointid的检查点详情jobid、checkpointid
GET/jobs/:jobid/config获取指定jobid的任务配置jobid
GET/jobs/:jobid/exceptions获取指定jobid的异常信息jobid、maxExceptions
GET/jobs/:jobid/metrics获取指定jobid的metricsjobid
GET/jobs/:jobid/vertices/:vertexid获取指定jobid和vertexid的算子节点的信息jobid、vertexid(例如bc764cd8ddf7a0cff126f51c16239658)
GET/jobs/:jobid/vertices/:vertexid/backpressure获取指定jobid和vertexid的算子节点的反压情况jobid、vertexid
GET/jobs/:jobid/vertices/:vertexid/taskmanagers获取任务管理器汇总的任务信息jobid、vertexid
GET/overview获取集群概况
GET/taskmanagers获取所有TM的概况
GET/taskmanagers/metrics获取TM的metricsget:获取指定metric的值,有多个值时用逗号隔开
GET/taskmanagers/:taskmanagerid获取指定taskmanagerid的详情taskmanagerid(例如container_1600830023237_0002_01_000002)
GET/taskmanagers/:taskmanagerid/metrics获取指定taskmanagerid的metricstaskmanagerid
POST/jobs/:jobid/stop停止指定jobid的任务,并保存一个savepointjobid、drain(默认false)、targetDirectory(savepoint存储位置)
GET/jobs/:jobid/yarn-cancel停止指定jobid的任务jobid

踩坑:使用POST请求调用接口/jobs/:jobid/stop时,报错405 HTTP method POST is not supported by this URL
原因:从http://hadoop-master:8088/proxy/application_1606890926991_0001/#/overviewproxy就可以看出,我们是通过Yarn的代理来访问Flink监控API的。这时候使用POST请求调用接口/jobs/:jobid/stop,会出现302跳转,而302跳转的时候会更改请求方法,此时服务端可能不能识别,则报405错误。
解决:改用GET /jobs/:jobid/yarn-cancel来停止Flink任务

更多Flink监控接口详见:
Flink监控REST API(官方文档)
Yarn RM REST API(Flink on Yarn使用)

以上是关于Flink常用监控API的主要内容,如果未能解决你的问题,请参考以下文章

Flink 监控指南 被动拉取 Rest API

flink常用的API

flink常用的API

Flink学习笔记Flink常用API详解

从 0 到 1 搭建一套 Flink 的监控系统

flink与hbase交互