Flink 监控

基本的需求

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

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

metric 的类型

了解什么是 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 标签获取到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值