本文介绍可观测监控 Prometheus 版支持的Flink指标。
可观测监控 Prometheus 版按写入量或者按上报次数收费。指标分为两种类型:基础指标和自定义指标,非基础指标即是自定义指标。其中,基础指标不收费,自定义指标自2020年01月06日起开始收费。
指标说明
指标 | 含义 | 详情 | 单位 | 指标类型 |
| 作业错误恢复次数 | 作业出错重启次数,不包含JM Failover次数。 | 次数 | 自定义指标 |
| 业务延时 | 延时较大时,表示作业可能在拉取数据或者处理数据时存在延时。 | 毫秒(ms) | 自定义指标 |
| 传输延时 | 延时较大时,表示作业可能在拉取数据时存在延时。 | 毫秒(ms) | 自定义指标 |
| 所有Operator输入的记录总数 | 如果某个算子的numRecordsIn值长时间未增长,可能是由于上游吞掉了数据,因此未成功传递数据。此时,您需要查看上游数据。 | 条 | 自定义指标 |
| 输出记录总数 | 如果某个算子的numRecordsOut的值长时间未增长,可能是由于作业代码逻辑错误,导致数据被吞掉,因此未成功传递数据。此时,您需要查看作业代码逻辑。 | 条 | 自定义指标 |
| 输入字节总数 | 查看上游吞吐的输入情况,帮助您观察作业流量表现。 | Byte | 自定义指标 |
| 输出字节总数 | 查看上游吞吐的输出情况,帮助您观察作业流量表现。 | Byte | 自定义指标 |
| 所有Operator输入的记录总数 | 如果某个算子的numRecordsIn值长时间未增长,可能是由于上游吞掉了数据,因此未成功传递数据。此时,您需要查看上游数据。 | 条 | 自定义指标 |
| 整个数据流每秒输入的记录数 | 适用于需要监控整个数据流的处理速度的场景。 例如,您可以使用numRecordsInPerSecond观察整个数据流的处理速度是否达到了预期水平,以及在不同的输入数据负载下性能的变化情况。 | 条/秒 | 自定义指标 |
| 输出记录总数 | 如果某个算子的numRecordsOut的值长时间未增长,可能是由于作业代码逻辑错误,导致数据被吞掉,因此未成功传递数据。此时,您需要查看作业代码逻辑。 | 条 | 自定义指标 |
| 整个数据流每秒输出的记录数 | 适用于需要监控整个数据流输出速度的场景,可以测量整个数据流每秒输出的记录数。 例如,您可以使用numRecordsOutPerSecond观察整个数据流的输出速度是否达到了预期水平,以及在不同的输出数据负载下性能的变化情况。 | 条/秒 | 自定义指标 |
| 仅Source Operator的输入记录 | 查看上游数据输入情况。 | 条 | 自定义指标 |
| Sink端输出记录总数 | 查看上游数据输出情况。 | 条 | 自定义指标 |
| 整个数据流每秒输入的记录数 | 适用于需要监控整个数据流的处理速度的场景。 例如,您可以使用numRecordsInPerSecond观察整个数据流的处理速度是否达到了预期水平,以及在不同的输入数据负载下性能的变化情况。 | 条/秒 | 自定义指标 |
| 整个数据流每秒输出的记录数 | 适用于需要监控整个数据流输出速度的场景,可以测量整个数据流每秒输出的记录数。 例如,您可以使用numRecordsOutPerSecond观察整个数据流的输出速度是否达到了预期水平,以及在不同的输出数据负载下性能的变化情况。 | 条/秒 | 自定义指标 |
| 数据源Source端每秒输入的记录数 | 适用于需要了解每个数据源的生成速度的场景,可以测量每个数据源每秒生成的记录数。 例如,在一个数据流中,不同的数据源可能会产生不同数量的记录,使用numRecordsInOfSourcePerSecond可以帮助您了解每个数据源的生成速度,并对数据流进行调整以达到更好的性能。 同时,该数据用于监控告警。如果该值为0,可能是由于上游吞掉了数据。您需要查看是否由于上游数据一直未被消费,因此导致输出阻塞问题。 | 条/秒 | 自定义指标 |
| 数据目的Sink端每秒输出的记录数 | 适用于需要了解每个Sink的输出速度的场景,可以测量每个Sink端每秒输出的记录数。 例如,在一个数据流中,不同的Sink可能会输出不同数量的记录。使用numRecordsOutOfSinkPerSecond可以帮助您了解每个Sink的输出速度,并对数据流进行调整以达到更好的性能。 同时,该数据用于监控告警。如果该值为0,可能是作业代码逻辑错误,导致全部数据被过滤了。此时,您需要查看作业代码逻辑。 | 条/秒 | 自定义指标 |
| 每秒内本地消耗的数据缓冲区(buffer)数量 | 如果该指标值很高,表示任务之间的本地通信(即在相同节点上的通信)很频繁。 | 条/秒 | 自定义指标 |
| 每秒内从远程任务管理器接收到的缓冲区的数量 | 该指标反映了跨TaskManager通信的频率。 | 条/秒 | 自定义指标 |
| 每秒向其他任务发送的缓冲区的数量 | 该指标可以帮助您了解任务的输出压力以及网络带宽的使用情况。 | 条/秒 | 自定义指标 |
| 每秒输入字节(Local)总数 | 查看上游流速的输入情况,帮助您观察作业流量表现。 | Byte/秒 | 自定义指标 |
| 每秒输出字节总数 | 查看上游吞吐输出情况,帮助您观察作业流量表现。 | Byte/秒 | 自定义指标 |
| 源端未读取数据的条数 | 外部系统中尚未被Source拉取的数据条数。 | 条 | 自定义指标 |
| 源端未处理数据的时间 | 该指标反映Source是否有闲置。如果该指标值较大,表示数据在外部系统中的产生速率较低。 | 毫秒(ms) | 自定义指标 |
| 每秒输入字节总数 | 无 | Byte/秒 | 自定义指标 |
| 每秒输出字节总数 | 无 | Byte/秒 | 自定义指标 |
| 发送最新一条记录用时 | 无 | 毫秒 (ms) | 自定义指标 |
| 总Checkpoint数量 | 无 | 个 | 自定义指标 |
| 失败的Checkpoints数量 | 无 | 个 | 自定义指标 |
| 已完成的Checkpoints数量 | 无 | 个 | 自定义指标 |
| 进行中的Checkpoints数量 | 无 | 个 | 自定义指标 |
| 最近一个Checkpoint的持续时间 | 如果Checkpoint耗时过长或超时,可能是由于状态过大、临时网络原因、Barrier未对齐或数据存在反压。 | 毫秒(ms) | 自定义指标 |
| 最近一个Checkpoint的大小 | 最近一次实际上传的Checkpoint大小,您可以在Checkpoint有瓶颈时帮助分析Checkpoint性能。 | Byte | 自定义指标 |
| 单次状态清理延迟最大值 | 查看清理State的性能。 | 纳秒(ns) | 自定义指标 |
| 单次Value State访问延迟的最大值 | 查看算子访问Value State的性能。 | 纳秒(ns) | 自定义指标 |
| 单次Value State Update延迟的最大值 | 查看Value State Update性能。 | 纳秒(ns | 自定义指标 |
| 单次Aggregating State访问延迟的最大值 | 查看算子访问Aggregating State的性能。 | 纳秒(ns) | 自定义指标 |
| 单次Aggregating State Add延迟的最大值 | 查看Aggregating State Add性能。 | 纳秒(ns) | 自定义指标 |
| 单次Aggregating State Merge Namespace延迟的最大值 | 查看Aggregating State Merge Namespace性能。 | 纳秒(ns) | 自定义指标 |
| 单次Reducing State访问延迟的最大值 | 查看算子访问Reducing State的性能。 | 纳秒(ns) | 自定义指标 |
| 单次Reducing State Add延迟的最大值 | 查看Reducing State Add性能。 | 纳秒(ns) | 自定义指标 |
| 单次Reducing State Merge Namespace延迟的最大值 | 查看Reducing State Merge Namespace的性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State访问延迟的最大值 | 查看算子访问Map State的性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State Put延迟的最大值 | 查看Map State Put性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State Put All延迟的最大值 | 查看Map State Put All性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State Remove延迟的最大值 | 查看Map State Remove性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State Contains延迟的最大值 | 查看Map State Contains性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State EntriesInit延迟的最大值 | 查看Map State EntriesInit性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State KeysInit延迟的最大值 | 查看Map State KeysInit性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State ValuesInit延迟的最大值 | 查看Map State ValuesInit性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State IteratorInit延迟的最大值 | 查看Map State IteratorInit性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State Empty延迟的最大值 | 查看Map State Empty性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State IteratorHasNext延迟的最大值 | 查看Map State IteratorHasNext性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State IteratorNext延迟的最大值 | 查看Map State IteratorNext性能。 | 纳秒(ns) | 自定义指标 |
| 单次Map State IteratorRemove延迟的最大值 | 查看Map State IteratorRemove性能。 | 纳秒(ns) | 自定义指标 |
| 单次List State访问延迟的最大值 | 查看算子访问List State的性能。 | 纳秒(ns) | 自定义指标 |
| 单次List State Add延迟的最大值 | 查看List State Add性能。 | 纳秒(ns) | 自定义指标 |
| 单次List State Add All延迟的最大值 | 查看List State Add All性能。 | 纳秒(ns) | 自定义指标 |
| 单次List State Update延迟的最大值 | 查看List State Update性能。 | 纳秒(ns) | 自定义指标 |
| 单次List State Merge Namespace延迟的最大值 | 查看List State Merge Namespace性能。 | 纳秒(ns) | 自定义指标 |
| 单次Sorted Map State第一个条目访问延迟的最大值 | 查看算子访问Sorted Map State的性能。 | 纳秒(ns) | 自定义指标 |
| 单次Sorted Map State最后一个条目访问延迟的最大值 | 查看算子访问Sorted Map State的性能。 | 纳秒(ns) | 自定义指标 |
| 状态数据的大小 | 通过观测该指标,您可以:
| Byte | 自定义指标 |
| 状态数据文件的大小 | 通过观测该指标,您可以:
| Byte | 自定义指标 |
| 每个Task最近收到一条水印的时间 | TM收到数据的延时情况。 | 无 | 自定义指标 |
| Watermark延迟 | Subtask级别的作业延迟情况。 | 毫秒(ms) | 自定义指标 |
| 单个JM CPU的负载 | 如果该值长期大于100%,表示CPU很繁忙,负载很高。这可能会影响系统性能,导致系统卡顿或响应时间过长等。 | 无 | 基础指标 |
| JM的堆内存 | 无 | Byte | 基础指标 |
| JM提交的堆内存 | 无 | Byte | 基础指标 |
| JM的最大堆内存 | 无 | Byte | 基础指标 |
| JM的非堆内存 | 无 | Byte | 基础指标 |
| JM提交的非堆内存 | 无 | Byte | 基础指标 |
| JM的最大非堆内存 | 无 | Byte | 基础指标 |
| JM线程数 | JM线程数过多会导致占用过大的内存空间,从而降低作业稳定性。 | 个 | 基础指标 |
| JM GC次数 | GC次数过多会导致占用过大的内存空间,从而影响作业性能。该指标可以帮助您进行作业诊断,排查作业级别的故障原因。 | 次数 | 基础指标 |
| JM 年轻代 GC次数(G1垃圾回收器) | 无 | 次数 | 自定义指标 |
| JM 老年代 GC次数(G1垃圾回收器) | 无 | 次数 | 自定义指标 |
| JM 年轻代 GC时间(G1垃圾回收器) | 无 | 毫秒(ms) | 自定义指标 |
| JM 老年代 GC时间(G1垃圾回收器) | 无 | 毫秒(ms) | 自定义指标 |
| JM CMS垃圾回收器的回收次数 | 无 | 次数 | 基础指标 |
| 每次JM GC时间 | 长时间的GC会导致占用过大的内存空间,从而影响作业的性能。该指标可以帮助您进行作业诊断,排查作业级别的故障原因。 | 毫秒(ms) | 基础指标 |
| JM CMS垃圾回收器的回收耗时 | 无 | 毫秒(ms) | 基础指标 |
| JM所在的JVM在创建后,加载的类总数 | JM所在的JVM创建后,加载类的总数过大,会导致占用过大的内存空间,从而影响作业性能。 | 无 | 基础指标 |
| JM所在的JVM在创建后,卸载的类总数 | JM所在的JVM创建后,卸载类的总数过大,会导致占用过大的内存空间,从而影响作业性能。 | 无 | 基础指标 |
| 单个TM CPU的负载 | 指一段时间内CPU正在处理以及等待CPU处理的进程数之和,通常可以理解为CPU的繁忙程度。 CPU的繁忙程度和CPU核数有关。Flink中的CPU Load值为CPU Usage/CPU核数。 | 无 | 基础指标 |
| 单个JM CPU的CPU使用率 | 该指标值反映了Flink对CPU时间片的占用情况。
如果该值长期大于100%,说明CPU非常繁忙。 如果负载很高,但CPU使用率较低,可能是由于频繁的读写操作,导致不可中断睡眠状态的进程过多。 | 无 | 基础指标 |
| 单个TM CPU的CPU使用率 | 该指标值反映了Flink对CPU时间片的占用情况。
如果该值长期大于100%,说明CPU非常繁忙。 如果负载很高,但CPU使用率较低,可能是由于频繁的读写操作,导致不可中断睡眠状态的进程过多。 | 无 | 基础指标 |
| TM的堆内存 | 无 | Byte | 基础指标 |
| TM堆内存的已提交量 | 无 | Byte | 基础指标 |
| TM最大堆内存 | 无 | Byte | 基础指标 |
| TM的非堆内存 | 无 | Byte | 基础指标 |
| TM非堆内存的已提交量 | 无 | Byte | 基础指标 |
| TM最大非堆内存 | 无 | Byte | 基础指标 |
| 通过Linux获取整个进程的内存 | 查看进程内存的变化。 | Byte | 基础指标 |
| TM线程数 | TM线程数过多会导致占用过多内存,从而降低作业稳定性。 | 个 | 基础指标 |
| TM GC次数 | GC次数过多会导致占用过大的内存空间,从而影响作业性能。该指标可以帮助您进行作业诊断,排查作业Task级别的故障原因。 | 次数 | 基础指标 |
| TM 年轻代 GC次数(G1垃圾回收器) | 无 | 次数 | 自定义指标 |
| TM 老年代 GC次数(G1垃圾回收器) | 无 | 次数 | 自定义指标 |
| TM 年轻代 GC时间(G1垃圾回收器) | 无 | 毫秒(ms) | 自定义指标 |
| TM 老年代 GC时间(G1垃圾回收器) | 无 | 毫秒(ms) | 自定义指标 |
| TM CMS垃圾回收器的回收次数 | 无 | 次数 | 基础指标 |
| 每次TM GC时间 | 长时间GC会导致占用过大的内存空间,从而影响作业性能。该指标帮助您进行作业诊断,排查作业级别的故障原因。 | 毫秒(ms) | 基础指标 |
| JM CMS垃圾回收器的回收耗时 | 无 | 毫秒(ms) | 基础指标 |
| TM所在的JVM在创建后,加载的类总数 | TM所在的JVM创建后,加载类的总数过大,会导致占用过大的内存空间,从而影响作业性能。 | 无 | 基础指标 |
| TM所在的JVM在创建后,卸载的类总数 | TM所在的JVM创建后,卸载类的总数过大,会导致占用过大的内存空间,从而影响作业性能。 | 无 | 基础指标 |
| 作业运行时间 | 无 | 毫秒(ms) | 自定义指标 |
| 运行的作业数目 | 无 | 无 | 自定义指标 |
| 可用Task Slot数目 | 无 | 无 | 自定义指标 |
| Task Slot的总数 | 无 | 无 | 自定义指标 |
| 注册的TM数目 | 无 | 无 | 自定义指标 |
| 作业每秒从远程源读取的字节数 | 无 | Byte/秒 | 自定义指标 |
| 窗口延迟丢弃数 | 无 | 个 | 自定义指标 |
| 窗口延迟比率 | 无 | 无 | 自定义指标 |
| 作业是否在处理全量数据阶段 | 确定作业处理阶段。 | 无 | 自定义指标 |
| 作业是否在处理增量数据阶段 | 确定作业处理阶段。 | 无 | 自定义指标 |
| 全量阶段未处理表数量 | 查看剩余未处理的表数量。 | 个 | 自定义指标 |
| 全量阶段等待处理的表的个数 | 查看剩余未处理的表数量。 | 个 | 自定义指标 |
| 全量阶段已经处理的表的个数 | 查看已经处理的表数量。 | 个 | 自定义指标 |
| 全量阶段已经处理的分片的个数 | 查看已经处理的分片数。 | 个 | 自定义指标 |
| 全量阶段等待处理的分片的个数 | 查看未处理的分片数。 | 个 | 自定义指标 |
| 全量阶段等待处理的分片的个数 | 查看未处理的分片数。 | 个 | 自定义指标 |
| 当前读取到的最新数据的时间戳 | 查看目前最新的binlog数据时间。 | 毫秒(ms) | 自定义指标 |
| 全量阶段已经处理的数据条数 | 查看全量阶段已处理的数据量. | 条 | 自定义指标 |
| 每个表已经读取的数据条数 | 查看每个表已经处理的全部数据量。 | 条 | 自定义指标 |
| 每个表全量阶段已经处理的数据条数 | 查看每个表全量阶段已处理的数据量。 | 条 | 自定义指标 |
| 每个表增量阶处理的insert DML语句条数 | 查看每个表insert语句数据量。 | 条 | 自定义指标 |
| 每个表增量阶处理的update DML语句条数 | 查看每个表update语句数据量。 | 条 | 自定义指标 |
| 每个表增量阶处理的delete DML语句条数 | 查看每个表delete语句数据量。 | 条 | 自定义指标 |
| 每个表增量阶处理的DDL语句条数 | 查看每个表DDL语句数据量。 | 条 | 自定义指标 |
| 增量阶处理的insert DML语句条数 | 查看insert语句数据量 | 条 | 自定义指标 |
| 增量阶处理的update DML语句条数 | 查看update语句数据量。 | 条 | 自定义指标 |
| 增量阶处理的delete DML语句条数 | 查看delete语句数据量。 | 条 | 自定义指标 |
| 增量阶处理的DDL语句条数 | 查看DDL语句数据量。 | 条 | 自定义指标 |
指标常用Label
Label | 说明 |
| 项目空间名称。 |
| 部署作业名。 |
| 部署作业ID。 |
| Job ID。 |