数据曲线

登陆数据曲线页面

1.登录数栈-实时计算。
2.选择目标项目,点击运维中心,进入任务运维。
3.在任务运维列表点击 任务名称,在弹出的抽屉窗口中,切换展示数据曲线分页。

时间设定

数据曲线支持基于不同时间跨度和结束时间可浏览不同的数据曲线,在展示时,数据曲线将会基于结束时间向前,展示对应时间跨度内的数据情况。

时间跨度:支持手动输入数字和小写的“s、m、h、d、w、y”,以对应“秒、分钟、小时、天、周、年”;用户通过点击左右按键可在“10s、30s、1m、10m、30m、1h、2h、6h、1d、2d、1w、2w、4w、8w、1y、2y”等预设时间跨度中切换,默认时间跨度为"10m"。

结束时间:数据曲线图最右侧的时间节点,用户点击左右按键能够以 时间跨度 在当前结束时间的基础上进行加减,最晚结束时间不可晚于当前系统时间;

2 4 2021 17 20 09 PM

自定义Metric

在数据曲线中,您可以通过在输入框输入对应指标名称以添加自定义Metric对任务进行更多观察。

3 4 2021 10 22 36 AM

目前平台以支持如下自定义Metric曲线:

System metrics:
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

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

jobmanager 线程数: flink_jobmanager_Status_JVM_Threads_Count
taskmanager 线程数: flink_taskmanager_Status_JVM_Threads_Count

排队进入输入缓存区的数量:flink_taskmanager_job_task_buffers_inputQueueLength
排队进入输出缓存区的数量:flink_taskmanager_job_task_buffers_outputQueueLength

Cluster:
任务重启次数: flink_jobmanager_job_numRestarts
任务重启花费时间: flink_jobmanager_job_restartingTime
任务最后一次checkpoint花费时间: flink_jobmanager_job_lastCheckpointDuration
任务最后一次checkpoint大小: flink_jobmanager_job_lastCheckpointSize
任务最后一次checkpoint 路径: fflink_jobmanager_job_lastCheckpointExternalPath
任务checkpoint总数量: flink_jobmanager_job_totalNumberOfCheckpoints
任务checkpoint失败数量: 任务flink_jobmanager_job_numberOfFailedCheckpoints
barrier 对齐花费时间: flink_taskmanager_job_task_checkpointAlignmentTime

  1. 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

  2. 实时采集任务
    输入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

OverView

在数据曲线中,平台提供了当前任务的核心指标概览页面。您可以通过数据曲线对任务的运行情况进行一键式的诊断。

image.png

Failover

Failover曲线显示当前Job出现Failover(错误或者异常)的频率。计算方法为当前Failover时间点的前1分钟内出现Failover的累计次数除以60。(例如 ,最近1分钟Failover了一次,Failover的值为1/60=0.01667。)

业务延时

为了全面的了解实时计算全链路的时效状况和作业的性能,实时计算提供业务延时这一指标。业务延迟 = 当前系统时间 — 当前系统处理的最后一条数据的事件时间(Event time)。如果后续没有数据再进入上游存储,由于当前系统时间在不断往前推进,业务延时也会随之逐渐增大。
实时计算是分布式计算框架,业务延时首先是针对Source的单个分区(Shard/Partition等)进行计算,然后汇报所有分区中的最大值呈现到前端页面上,因此前端页面上显示的汇聚后的数据间隔时间并不精确等于业务延时 — 数据滞留时间。
如果Source中的某个分区没有新的数据,将会导致业务延迟逐渐增大。
目前底层算法实现时,当数据间隔时间小于10秒时,会将数据间隔时间设置为0,进行上报。

各Source的TPS数据输入

对实时计算作业所有的流式数据输入进行统计,记录每秒读取数据源表的Block的数,让您直观的了解数据存储TPS(Transactions Per Second)的情况。与TPS不同,RPS(Record Per Second)是读取数据源TPS的Block数解析后的数据,单位是条/秒。(例如,日志服务,1秒读取5个LogGroup,那么TPS=5,如果每个LogGroup解析出来8个日志记录,那么一共解析出40个日志记录,RPS=40。)

各Sink的数据输出

对实时计算作业所有的数据输出(并非是流式数据存储,而是全部数据存储)做出进行统计,让您直观的了解数据存储RPS(Record Per Second)的情况。通常,在系统运维过程中,如果出现没有数据输出的情况,除了检查上游是否存在数据输入,同样要检查下游是否真的存在数据输出。

各Source的RPS数据输入

对实时计算作业所有的流式数据输入进行统计,让您直观的了解数据存储RPS(Record Per Second)情况。通常,在系统运维过程中,如果出现没有数据输出的情况,需要查看该值,判断是否数据源输出数据存在异常。

各Source的数据流量输入

对实时计算作业所有的流式数据输入进行统计,记录每秒读取输入源表的流量的统计,让您直观的了解数据流量BPS(Byte Per Second)情况。

各Source的脏数据

为您显示实时计算Source各时间段脏数据条数。

WaterMark内容

image.png

具体参数说明如下:

数据曲线名称 说明

数据迟到丢弃TPS

每秒丢弃晚于Watermark时间到达Window的数据的数量。

数据迟到累计丢弃数

累计丢弃晚于Watermark时间到达Window的数据的数量。