Flink 监控

tempy.
tempy.
tempy.
1
文章
0
评论
2020-10-1113:10:00 评论 97 1353字
摘要

基本的需求:1、监控 job 的内存、网络、CPU 的使用情况;2、监控 job 的状态,running or dead;3、监控 job exception

基本的需求

  • 监控 job 的内存、网络、CPU 的使用情况
  • 监控 job 的状态,running or dead
  • 监控 job exception

总之,我的目的是不能让 job 因内存、网络、cpu 不足造成的程序崩溃

了解什么是 Metric

看看下面这个 blog , 应该会有一个大概的了解:

http://wuchong.me/blog/2015/08/01/getting-started-with-metrics/

metric 的类型

  • 单值
  • counter:计数器,只能返回一个单个的 long 值
  • gauges: 比 counter 更加灵活,可以将类里面的成员变量的组合起来返回给 report
  • 复合值
  • meter: 返回的是一个平均值,例如 tps 值。meter 提供给我们了一个 mark(long) 这样的一个函数,我们可以使用这个函数在接收或者发送数据的时候,调用 mark(record number) meter 就会自动计算出总体 tps、前 5 分钟 tps、前 15 分钟 tps
  • Histograms: 将我们输入的数字集合的 最小值、最大值、中间值、中位数即算出了

scope 的概念

scope 是什么呢?简单的来说就 metric 所在的域。一共有两大类

  • User Scope:这个 Flink 提供给用户的 API,用户可以使用这些API 定义自己的 metric。可以理解为类 metric 是在 operator 中自定义的 metric
  • System Scope:这个是 Flink 系统层面提高的 metric,包括 JM、TM、JOB 的基本配置信息内存、CPU、网络的使用情况

metric REST api

Flink 的 REST API(https://flink-china.org/doc/blink/monitoring/rest_api.html)

提共了大量的接口,利用这些接口,我们可以得到在开头提到的需求。

整理了几个常用的接口:

遍历出所有的 job

http://JM_server_id:8081/jobs/overview

查看一个 job 的详情,可以显示任务的名称、状态、运行时长等

http://JM_server_id:8081/jobs/$job_id/

查询用户自定义的配置,包括自定义的参数、运行时的配置

http://JM_server_id:8081/jobs/$job_id/config

查看异常

http://JM_server_id:8081/jobs/$job_id/exceptions

查看 JM 的某几个指标

http://JM_server_id:8081/jobmanager/metrics?get=Status.JVM.Memory.Mapped.TotalCapacity,其他的指标ID

查看用户在 operator 中自定义的 metric

http://JM_server_id:8081/jobs/$job/vertices/$vertices/metrics?get=0.metric_map.MyGauge其中 $vertices,可以在 http://JM_server_id:8081/jobs/$job_id/ 的 vertices 标签获取到

End.爱数据网专栏作者:wang-possible作者介绍:6年零售大数据工作经验,技能持续精进

CSDN个人主页:bluedraam_pp

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: