任务监控
更新时间: 2024-12-18 14:40:55
阅读 22
本文为您介绍EasyStream实时开发中如何进行实时任务核心指标监控查看、监控指标含义、如何同构监控指标来判断任务状态。
背景信息
EasyStream实时开发产品中自研Monitor组件,实时任务统一通过Monitor进行指标上报与汇总,最终在平台内进行指标展示。
注意事项
- Source端的指标表现并不是判断问题根源的充分条件,只反映了Source当前的工作状况,您仍然需要其他辅助指标或工具来判断问题的根源。常见问题的指标表现如下:
场景 | 详情 |
---|---|
作业中某些算子存在反压 | 判断反压最直接的方式是使用Flink UI提供的反压检查功能,而不是通过指标判断。反压的存在会导致Source端数据发送至下游算子的速率下降,您可能会观察到sourceIdleTime 周期性上升,currentFetchEventTime 和currentEmitEventTimeLag 不断增长。极限情况下(某些算子卡死)sourceIdleTime 会持续上升。 |
Source是性能瓶颈点 | 如果仅是Source的吞吐量不足,那么您的作业中不应该检测到反压,sourceIdleTime 会维持在较低的值(Source一直在工作),currentFetchEventTimeLag 和currentEmitEventTimeLag 接近,但是两个指标均较高。 |
上游数据倾斜或某个分区为空 | 数据倾斜或空分区会导致某一个或者几个Source并行度处于闲置状态,您会观察到这些Source的sourceIdleTime 指标较大。 |
- 如果您发现作业的延迟较高,则可以使用以下指标帮您分析Flink当前的处理能力,以及数据在外部系统中的滞留情况。
场景 | 详情 |
---|---|
sourceIdleTime |
该指标反映Source是否有闲置,如果该指标较大,说明您的数据在外部系统中的产生速率较低。 |
currentFetchEventTimeLag 、currentEmitEventTimeLag |
均反映了Flink当前处理的延迟,您可以通过两个指标的差值(即数据在 Source中停留的时间)分析Source当前的处理能力。 - 如果两个延迟非常接近,说明Source从外部系统中拉取数据的能力(网络 I/O、并发数)不足。 - 如果两个延迟差值较大,说明Source的数据处理能力(数据解析、并发、反压)不足。 |
操作步骤
- 登录 EasyStream实时计算平台 。
- 快捷导航栏 选择 实时运维 ,若 快捷导航栏 中无相关选项可参考 快速导航栏 进行操作。
- 在任务列表中单击目标任务所在行的 监控 按键,跳转至当前任务的运维详情页-任务监控tab。
- 也可以单击 任务名,在展开的抽屉窗口中点击 任务监控 tab查看监控。
页面顶栏显示当前任务名称、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 的总大小等信息。
- 启停时间监控:展示最新任务的启停时间信息。
文档反馈
以上内容对您是否有帮助?