数据曲线
该模块主要提供任务运行的一些数据曲线图,帮助运维人员分析任务的健康情况。
常用指标解释
FailOver History
Failover曲线显示当前Job出现Failover(错误或者异常)的频率。计算方法为当前Failover时间点的前1分钟内出现Failover的累计次数除以60。(例如 ,最近1分钟Failover了一次,Failover的值为1/60=0.01667。)
业务延时(FlinkSQL/Flink任务)
业务延时 = 当前系统时间 — 当前系统处理的最后一条数据的事件时间(Event time)。如果后续没有数据再进入上游存储,由于当前系统时间在不断往前推进,业务延时也会随之逐渐增大。
s- 底层计算逻辑是针对Source的单个分区(Shard/Partition等)进行计算,然后汇报所有分区中的最大值呈现到前端页面上,因此前端页面上显示的汇聚后的数据间隔时间并不精确等于业务延时 — 数据滞留时间。
- 当数据间隔时间小于10秒时,会将数据间隔时间设置为0,进行上报。来均衡分区计算、汇总、取最大值的计算消耗时间。
- 如果Source中的某个分区没有新的数据,也将会导致业务延迟逐渐增大。
BPS/RPS/TPS
BPS(Byte Per Second):如果是Source端,统计的是每秒读取源表的数据量
RPS(Record Per Second):如果是Source端,统计的是每秒读取源表的数据行数
TPS(Transactions Per Second):如果是Source端,统计的是每秒读取源表的Block数
noteTPS和RPS区别:
例如在读取Kafka日志数据时,1秒读取5个LogGroup,那么TPS=5;如果每个LogGroup解析出来8个日志记录,那么一共解析出40个日志记录,RPS=40
数据迟到丢弃
丢弃晚于Watermark时间到达Window的数据的数量。
数据延迟(FlinkSQL/Flink任务)
统计该任务涉及的kafka topic中堆积未被消费的数据量(条数),同时也支持查看topic中每个分区的堆积数量。
自定义Metric
基于实际运维需求,支持添加查看更多监控指标。主要分为如下几类:
实时采集任务指标:
- 输入rps:flink_taskmanager_job_task_operator_flinkx_numReadPerSecond
- 输出rps:flink_taskmanager_job_task_operator_flinkx_numWritePerSecond
- 输入bps:flink_taskmanager_job_task_operator_flinkx_byteReadPerSecond
- 输出bps:flink_taskmanager_job_task_operator_flinkx_byteWritePerSecond
- 累计输入记录数:flink_taskmanager_job_task_operator_flinkx_numRead
- 累计输出记录数:flink_taskmanager_job_task_operator_flinkx_numWrite
- 累计输入数据量:flink_taskmanager_job_task_operator_flinkx_byteRead
- 累计输出数据量:flink_taskmanager_job_task_operator_flinkx_byteWrite
FlinkSQL/Flink任务指标
- 业务延迟:flink_taskmanager_job_task_operator_dtEventDelay
- 各source tps数据输入:flink_taskmanager_job_task_operator_dtNumRecordsInRate
- 各source rps数据输入:flink_taskmanager_job_task_operator_dtNumRecordsInResolveRate
- 各source bps数据输入:flink_taskmanager_job_task_operator_dtNumBytesInRate
- 各source的脏数据:flink_taskmanager_job_task_operator_dtDirtyData
- 各sink rps输出:flink_taskmanager_job_task_operator_dtNumRecordsOutRate
- 各Sink的脏数据输出:flink_taskmanager_job_task_operator_dtNumBytesInRate
- 数据延迟:flink_taskmanager_job_task_operator_topic_partition_dtTopicPartitionLag
CPU指标
- jobmanager cpu负载: flink_jobmanager_Status_JVM_CPU_Load
- jobmanager cpu使用时间: flink_jobmanager_Status_JVM_CPU_Time
- taskmanager cpu负载: flink_taskmanager_Status_JVM_CPU_Load
- taskmanager cpu使用时间: flink_taskmanager_Status_JVM_CPU_Time
Memory指标
- jobmanager jvm最大堆内存: flink_jobmanager_Status_JVM_Memory_Heap_Max
- taskmanager jvm最大堆内存: flink_taskmanager_Status_JVM_Memory_Heap_Max
- jobmanager jvm堆内存使用量: flink_jobmanager_Status_JVM_Memory_Heap_Used
- taskmanager jvm堆内存使用量: flink_taskmanager_Status_JVM_Memory_Heap_Used
- jobmanager jvm最大非堆内存: flink_jobmanager_Status_JVM_Memory_NonHeap_Max
- taskmanager jvm最大非堆内存: flink_taskmanager_Status_JVM_Memory_NonHeap_Max
- jobmanager jvm非堆内存使用量: flink_jobmanager_Status_JVM_Memory_NonHeap_Used
- taskmanager jvm非堆内存使用量: flink_taskmanager_Status_JVM_Memory_NonHeap_Used
- jobmanager直接缓冲区总容量: flink_jobmanager_Status_JVM_Memory_Direct_TotalCapacity
- taskmanager直接缓冲区总容量: flink_taskmanager_Status_JVM_Memory_Direct_TotalCapacity
- jobmanager直接缓冲区内存使用量: flink_jobmanager_Status_JVM_Memory_Direct_MemoryUsed
- taskmanager直接缓冲区内存使用量: flink_taskmanager_Status_JVM_Memory_Direct_MemoryUsed
Threads指标
- jobmanager 线程数: flink_jobmanager_Status_JVM_Threads_Count
- taskmanager 线程数: flink_taskmanager_Status_JVM_Threads_Count
Network.Task指标
- 排队进入输入缓存区的数量:flink_taskmanager_job_task_buffers_inputQueueLength
- 排队进入输出缓存区的数量:flink_taskmanager_job_task_buffers_outputQueueLength
Availability.Job指标
- 任务重启次数: flink_jobmanager_job_numRestarts
- 任务重启花费时间: flink_jobmanager_job_restartingTime
Checkpoint指标
- 任务最后一次checkpoint花费时间: flink_jobmanager_job_lastCheckpointDuration
- 任务最后一次checkpoint大小: flink_jobmanager_job_lastCheckpointSize
- 任务最后一次checkpoint 路径: flink_jobmanager_job_lastCheckpointExternalPath
- 任务checkpoint总数量: flink_jobmanager_job_totalNumberOfCheckpoints
- 任务checkpoint失败数量: flink_jobmanager_job_numberOfFailedCheckpoints
- barrier 对齐花费时间: flink_taskmanager_job_task_checkpointAlignmentTime