全部产品
阿里云办公

数据曲线

更新时间:2018-10-17 14:07:40

阿里云实时计算 Flink提供了当前作业的核心指标概览页面。您可以通过这个工具进行当前运行作业运行情况的一键诊断,未来实时计算 Flink还会提供更多的基于作业现状深度智能分析算法,以辅助您进行智能化、自动化诊断。目前的作业诊断如下图。

1

注意:

  1. 上述所有指标在实时计算 Flink作业运行状态下才提供显示,暂停以及停止状态均不提供显示。另外,作业指标是实时计算 Flink系统异步后台采集,有一定延迟。因此,在作业启动一分钟内,指标无法显示,等待一分钟后各项指标才能逐步采集到位。
  2. 如何判断作业是否正常可以参阅作业健康指数

概述

Failover Rate

Failover Rate指的是当前Job的出现Failover(错误或者异常)的频率。计算方法:当前Failover时间点的前一分钟内出现Failover的累计次数/60次。
您可以从Failover Rate的曲线中更好的分析job出现的问题。

业务延时

业务延时指当前实时计算 Flink处理时刻流式数据业务时间戳(如果业务时间不存在,使用上游系统中数据进入的系统时间戳。DataHub/LogHub等均会对进入的数据加入系统时间戳)之间的时间差。该数据集中反映出当前实时计算 Flink全链路的一个时效情况。例如,当前实时计算 Flink时间点为凌晨5点,但实时计算 Flink读取处理的数据存储时间戳为凌晨1点,意味着当前实时计算 Flink处理的数据还是1点的数据,即处理的数据相比于当前处理时间落后近4个小时,那么业务延时就是4小时。
业务延时用来监控全链路的数据进度,如果源头采集数据由于故障没有进入DataHub,业务延时也会随之主键增大。业务延时的图示如下。

业务延时

根据业务延时又分为四个细粒度的层次

Delay

delay

fetch_delay:数据停留数据源时间。即数据从进入数据源到进入Flink的时间差值。

no_data_delay :数据源数据缺失时间。即数据源两条连续数据间的时间间隔,代表用户没有数据的时间。

delay:业务延时。即用户作业的全链路延时。

处理延迟

2

当前时间减数据的时间,如果持续延迟很大,说明现在处理的是过去的数据。

最小延时

2

最小延时指的是个Source中所有并发里最小的业务延时值。

最大延时

3

最大延时指的是个Source中所有并发里最大的业务延时值。

平均延时

4

平均延时指的是个Source中所有并发里平均的业务延时值。

各Source的TPS数据输入

5

数据输入功能对实时计算 Flink作业所有的流式数据输入进行统计,记录每秒读取数据源表的Block的数,让您直观的了解数据存储TPS(Transactions Per Second)的情况。与RPS不同,RPS是读取数据源TPS的block数解析后的数据,单位是条/秒。(例如对于日志服务,一秒读取N个LogGroup,解析出来M个日志记录。而解析出的数据就是数据输入的RPS。)

各Sink的数据输出

6

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

各Source的RPS数据输入

7

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

各Source的数据流量输入

8

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

各Source的脏数据

3

各Source的脏数据,反映实时计算 Flink的Source段是否有脏数据的情况。

Advanced view

阿里云实时计算 Flink提供可以恢复数据流应用到一致状态的容错机制。容错机制的核心就是持续创建分布式数据流及其状态的一致快照。这些快照在系统遇到故障时,充当可以回退的一致性检查点(checkpoint)。

分布式快照的核心概念之一就是数据栅栏(barrier)。这些barrier被插入到数据流中,作为数据流的一部分和数据一起向下流动。barrier不会干扰正常数据,数据流严格有序。一个barrier把数据流分割成两部分:一部分进入到当前快照,另一部分进入下一个快照。每一个barrier都带有快照 ID,并且barrier之前的数据都进入了此快照。barrier不会干扰数据流处理,所以非常轻量。多个不同快照的多个 barrier会在流中同时出现,即多个快照可能同时创建。checkpoint

barrier在数据源端插入,当snapshot n的barrier插入后,系统会记录当前 snapshot 位置值 n (用Sn表示)。然后barrier继续往下流动,当一个operator从其输入流接收到所有标识snapshot n的 barrier时,它会向其所有输出流插入一个标识snapshot n的 barrier。当 sink operator (DAG 流的终点)从其输入流接收到所有barrier n时,operator向检查点协调器确认snapshot n 已完成。当所有sink都确认了这个快照,快照就被标识为完成。

checkpoint01

以下就是记录Checkpoint的各种参数配置。

Checkpoint Duration

11

Checkpoint Duration表示的是每次做checkpoint保存状态所花费的时间,单位是MS。

CheckpointSize

12

Checkpoint Size表示的是每次做checkpoint的Size的大小,单位是KIB。

CheckpointAlignmentTime

13

checkpoint Alignment Time表示当前节点做checkpoint的时候等待上游所有节点到达当前节点的时间,也就是当 sink operator (DAG 流的终点)从其输入流接收到所有 barrier n 时,它向 the checkpoint coordinator 确认 snapshot n 已完成。当所有 sink 都确认了这个快照,快照就被标识为完成。这个等待的时间就是checkpoint Alignment Time。

CheckpointCount

14

Get

15

在一定时间内每个SubTask Get操作ROCKSDB所花费的时间(最大值)。

Put

16

在一定时间内每个SubTask Put操作ROCKSDB所花费的时间(最大值)。

Seek

17

在一定时间内每个SubTask Seek操作ROCKSDB所花费的时间(最大值)。

State Size

18

衡量Job内部state存储大小(如果增量过快JOB是异常的)

CMS GC Time

19

衡量Job底层container进行GC花费的时间。

CMS GC Rate

20

衡量Job底层container进行GC的频率。

WaterMark Delay

4

WaterMark距离系统时间的差值。

Delay

Source SubTask 最大延迟 Top 15

21

Source SubTask指的是数据源端的每个并发,这个数据指标统计的是每个Source的并发的业务延时的时间。

Throughput

Task Input TPS

22

Task Input TPS指的是作业级别所有的Task的数据的输入。

Task Output TPS

23

Task Output TPS指的是作业级别所有的Task的数据的输出。

Queue

Input Queue Usage

24

Input Queue Usage指的是作业级别所有的Task的数据的输入队列。

Output Queue Usage

25

Output Queue Usage指的是作业级别所有的Task的数据的输出队列。

Tracing

以下为进阶参数。

Time Used In Processing Per Second

timeusedinprocessing

task级别的每秒处理所花费的时间。

Time Used In Waiting Oputput Per Second

Time Used In Waiting Oputput Per Second

task级别的每秒等待输出的时间。

TaskLatency Histogram Mean

TaskLatency

Job级别的每个task的计算延时的曲线。

WaitOutput Histogram Mean

WaitOutput Histogram Mean

task级别的等待输出的曲线。

WaitInput Histogram Mean

WaitInput Histogram Mean

task级别的等待输入的曲线。

PartitionLatency Mean

PartitionLatency Mean

Partition里每个并发的延时曲线。

Process

Process MEM Rss

Process MEM Rss

进程级别的每个进程内存的使用曲线。

CPU Usage

CPU Usage

进程级别的每个进程CPU的使用曲线。

JVM

Memory Heap Used

Memory Heap Used

整个Job使用的JVM heap存储量。

Memory NonHeap Used

Memory NonHeap Used

整个Job使用的JVM 非heap存储量。

Threads Count

Threads Count

整个Job的线程数。

GC(CMS)

GC(CMS)

整个Job GC的次数。