本文为您介绍EasyStream实时开发中如何进行实时任务核心指标监控查看、监控指标含义、如何同构监控指标来判断任务状态。

背景信息

EasyStream实时开发产品中自研Monitor组件,实时任务统一通过Monitor进行指标上报与汇总,最终在平台内进行指标展示。

注意事项

  • Source端的指标表现并不是判断问题根源的充分条件,只反映了Source当前的工作状况,您仍然需要其他辅助指标或工具来判断问题的根源。常见问题的指标表现如下:
场景 详情
作业中某些算子存在反压 判断反压最直接的方式是使用Flink UI提供的反压检查功能,而不是通过指标判断。反压的存在会导致Source端数据发送至下游算子的速率下降,您可能会观察到sourceIdleTime周期性上升,currentFetchEventTimecurrentEmitEventTimeLag不断增长。极限情况下(某些算子卡死)sourceIdleTime会持续上升。
Source是性能瓶颈点 如果仅是Source的吞吐量不足,那么您的作业中不应该检测到反压,sourceIdleTime会维持在较低的值(Source一直在工作),currentFetchEventTimeLagcurrentEmitEventTimeLag接近,但是两个指标均较高。
上游数据倾斜或某个分区为空 数据倾斜或空分区会导致某一个或者几个Source并行度处于闲置状态,您会观察到这些Source的sourceIdleTime指标较大。
  • 如果您发现作业的延迟较高,则可以使用以下指标帮您分析Flink当前的处理能力,以及数据在外部系统中的滞留情况。
场景 详情
sourceIdleTime 该指标反映Source是否有闲置,如果该指标较大,说明您的数据在外部系统中的产生速率较低。
currentFetchEventTimeLagcurrentEmitEventTimeLag 均反映了Flink当前处理的延迟,您可以通过两个指标的差值(即数据在 Source中停留的时间)分析Source当前的处理能力。
- 如果两个延迟非常接近,说明Source从外部系统中拉取数据的能力(网络 I/O、并发数)不足。
- 如果两个延迟差值较大,说明Source的数据处理能力(数据解析、并发、反压)不足。

操作步骤

  1. 登录 EasyStream实时计算平台
  2. 快捷导航栏 选择 实时运维 ,若 快捷导航栏 中无相关选项可参考 快速导航栏 进行操作。
  3. 在任务列表中单击目标任务所在行的 监控 按键,跳转至当前任务的运维详情页-任务监控tab。
  4. 也可以单击 任务名,在展开的抽屉窗口中点击 任务监控 tab查看监控。
    任务监控 - 图1

页面顶栏显示当前任务名称、FlinkJobId、LimitTime 信息,更改 LimitTime 可以调整曲线图显示的时间周期。监控页面主要有以下几项内容:

  • 吞吐量/延迟:展示任务数据滞留延迟、数据滞留量、输入输出 QPS 等数据信息。
  • 窗口延迟:展示任务中有窗口函数时,窗口丢弃数据量、丢弃数据TPS、Watermark延迟的监控信息。
  • Failover:展示任务启动耗时及 Failover 次数。
  • CheckPoint:展示上一次 CheckPoint 大小、上一次 CheckPoint 持续时间、Compeleted CheckPoint 个数等信息。
  • CPU/内存:展示 TaskManager CPU 负载、TaskManager Heap 内存用量、TaskManager Direct 内存用量以及 TM GC 信息。
  • 反压:展示 InPoolUsage 与 OutPoolUsage 信息。
  • RocksDB:展示当前延迟写速率、写入是否停止、MemTable 的总大小、block cache 的总大小等信息。
  • 启停时间监控:展示最新任务的启停时间信息。