你好,欢迎来到第 18 课时,本课时主要讲解如何进行生产环境作业监控。
在第 15 课时“如何排查生产环境中的反压问题”中提到过我们应该如何发现任务是否出现反压,Flink 的后台页面是我们发现反压问题的第一选择,其后台页面可以直观、清晰地看到当前作业的运行状态。
在实际生产中,Flink 的后台页面可以方便我们对 Flink JobManager、TaskManager、执行计划、Slot 分配、是否反压等参数进行定位,对单个任务来讲可以方便地进行问题排查。
但是,对于很多大中型企业来讲,我们对进群的作业进行管理时,更多的是关心作业精细化实时运行状态。例如,实时吞吐量的同比环比、整个集群的任务运行概览、集群水位,或者监控利用 Flink 实现的 ETL 框架的运行情况等,这时候就需要设计专门的监控系统来监控集群的任务作业情况。
Flink Metrics
针对上面的情况,我们就用了 Flink 提供的另一个强大的功能:Flink Metrics。
Flink Metrics 是 Flink 实现的一套运行信息收集库,我们不但可以收集 Flink 本身提供的系统指标,比如 CPU、内存、线程使用情况、JVM 垃圾收集情况、网络和 IO 等,还可以通过继承和实现指定的类或者接口打点收集用户自定义的指标。
通过使用 Flink Metrics 我们可以轻松地做到:
- 实时采集 Flink 中的 Metrics 信息或者自定义用户需要的指标信息并进行展示;
- 通过 Flink 提供的 Rest API 收集这些信息,并且接入第三方系统进行展示。