监控功能简述
对于正在运行(或者曾经成功运行过)的流计算作业,用户有两种方式查看监控信息。
通过 Oceanus 控制台查看
BETA 功能:在北京、广州、上海等主要地区,用户在监控页还可以查看 JobManager、TaskManager 和 Task 级别的细粒度指标。
通过腾讯云可观测平台查看
说明
Oceanus 控制台图文说明
在 Oceanus 控制台的作业管理页,可以查看作业的运行情况。


以上图的作业 high_cpu 任务为例,单击作业名称进入详情页。


在监控页签的概览页,可以选择不同的时间维度:
时间维度可选择近1小时、近1天、近7天,还可以自定义时间区间。
采样粒度有1分钟粒度与5分钟粒度两个选项,后者的曲线会更加平滑。


概览维度指标
在概览页面,我们可以查看作业运行时最关键的指标,例如每秒输入输出条数、算子计算总耗时、目的端 Watermark 与当前时间戳的延时、作业崩溃重启次数、TaskManager CPU、堆内存的平均使用率、老年代 GC 统计等,助力用户快速发现作业的常见异常。


Checkpoint 维度指标
当作业开启 checkpoint 功能后,Flink 作业运行信息会以 Checkpoint(历史快照)的方式进行保存,供后续恢复使用。本监控页面会显示如下指标:
上次 Checkpoint 大小(字节):上个快照存储的大小
Checkpoint 耗时(毫秒):上个快照存储所耗时间
Checkpoint 失败总次数(次):保存快照累计失败次数


JobManager 维度指标
一个 Flink 作业启动时只有一个 JobManager(简称 JM),所以这里展示的是该 JobManager 的各项指标:
JM CPU Load(%):对应 JobManager 的
Status.JVM.CPU.Load
代表 JVM 最近 CPU 利用率JM Heap Memory(字节):JobManager 维度的堆内存使用情况
JM GC Count(次):JobManager 维度的
Status.JVM.GarbageCollector.<GarbageCollector>.Count
,GC(垃圾回收)次数JM GC Time(毫秒):JobManager 维度的
Status.JVM.GarbageCollector.<GarbageCollector>.Time
,GC(垃圾回收)时间

TaskManager 维度指标
一个 Flink 作业启动时根据并发度设置,会有1个或多个 TaskManager。我们在列表中会展示出所有 TaskManager,用户可以选择观察哪个 TaskManager 的指标趋势。当前提供的 TaskManager 指标有:
CPU Load(%):对应 TaskManager 维度的
Status.JVM.CPU.Load
代表 JVM 最近 CPU 利用率Heap Memory(字节):TaskManager 维度的堆内存使用情况
GC Count(次): TaskManager 维度的
Status.JVM.GarbageCollector.<GarbageCollector>.Count
,GC(垃圾回收)次数GC Time(毫秒):TaskManager 维度的
Status.JVM.GarbageCollector.<GarbageCollector>.Time
,GC(垃圾回收)时间Pod Memory(%):TaskManager 所在的 TKE(容器服务)Pod 的内存使用量。该指标能反映出整个 Pod 内存的使用情况(包含 JVM 堆内存、堆外 Direct 内存、堆外原生内存、Pod 里其他辅助服务的内存使用量等)。如果占用过大,有被强制 OOM Killed 的风险
Pod CPU(%):TaskManager 所在的 TKE(容器服务)Pod 的 CPU 利用率。该指标能反映出整个 Pod 最近的 CPU 利用率(包含 JVM 自身的 CPU 用量、Pod 里其他辅助服务的 CPU 用量等)


Task 维度指标
Flink 作业的运行图中会有一个或多个 Task,用户可以通过趋势图查看具体某个 Task 的各项指标:
OutPoolUsage:输出队列百分比,达到100%时任务达到反压状态,反压状态需要通过一些方法(除却负载均衡情况,需要调大算子并发度来解决反压)解决
OutputQueueLength:有多少个输出队列
InPoolUsage:输入队列百分比,达到100%时任务达到反压状态,反压状态需要通过一些方法(除却负载均衡情况,需要调大算子并发度来解决反压)解决
InputQueueLength:有多少个输入队列
CurrentInputWatermark:当前水位

