详细了解flinkUI界面界面的各种功能,排查问题解决问题的优先手段
Overview展示所有正在运行的flink任务。
点击进入一个filnk任务的详细界面。根据代码中的shuffl切分执行图。
Name:根据代码的中的shuffl来划分阶段,没发生一个宽依赖则生成一个stage。
Stauts:节点的运行状态
Byte Received:每个阶段接数据的字节数。flink对外部的系统的接受和输出均不显示。source的in为0,sink的out为0.
Record Received:接收的条数。等于上一个stage的发送的条数。
Byte Sent:发送的字节数。
Record Sent:发送的条数。
Parallelism:每个阶段的必行度。
Star Time:每个阶段启动的时间。
Duration:每个阶段的持续时间。
程序发生异常是可以再此查看程序的报错内容。
可以查看每个stage的运行情况,当任务发生错误时,可以定具体是哪个stage的问题。
代码中的checkpoint详情在这里可以展示。
代码中的各种配置信息可以在这个地方查看。
Status:运行状态。
Task:本阶段task的个数。
Parallelism:本阶段的并行度。
Records Sent:发送的字节数。
Start Time:启动时间。
Bytes Received:接收到的字节数。
End Time:当程序挂掉会显示结束时间。
Records Received:接收到的数据条数。
Duration:阶段已经运行的时间。
Bytes Sent:发送出去的字节数。
ID:当前阶段每个分区的编号。
Bytes Received:当前区区接收到的数据条数。可以查看是否发生数据倾斜。
Bytes Sent:当前分区发送出去的字节数。
Records Sent:当前分区发送出的数据条数。
Attempt:(暂时不清楚作用)
Status:当前分区的运行状态。
More :可以查看当前分区的日志信息。
Host:用到节点信息。
LOG:当前节点的日志信息。
Bytes received:当前节点接收到的数据量。
Records received:当前节点接收到的数据条数。可以在这里查看是否发生数据倾斜。
Bytes sent:当前节点发送出的字节数。
Records sent:当前节点发送出的数据条数。
Start Time:当前节点的启动时间。
End Time:当节点出现异常,这里会显示结束时间。
Duraton:节点的运行时常。
Tasks:当前阶段,task分布在各个节点的情况。
Status:节点的运行状态。
写的了一个双流join的demo。并行度设置为3,可以看到每个task中的watermarks的情况。watermarks的形成需要其种一条流中,每个分区都有数据进入。否则会显示如下:
这两部分还没有做测试。
可以查看当前阶段的压力情况。
idleTimeMsPerSecond:空闲
busyTimeMsPerSecond:繁忙
backPressuredTimeMsPerSecond:反压
backPressuredTimeMsPerSecond:此任务每秒背压(软或硬)的时间(以毫秒为单位)。它是软背压TimeMsPerSecond和硬背压TimeMsPermSecond的总和。
buffers.inPoolUsage:对输入缓冲区使用情况的估计。(忽略LocalInputChannels)
buffers.inputExclusiveBuffersUsage:独占输入缓冲区使用情况的估计值。(忽略LocalInputChannels)
buffers.inputFloatingBuffersUsage:对浮动输入缓冲区使用情况的估计。(忽略LocalInputChannels)
buffers.inputQueueLength:排队的输入缓冲区的数量。(忽略使用阻塞子分区的LocalInputChannels)
buffers.outPoolUsage:对输出缓冲区使用情况的估计。如果正在使用透支缓冲区,则池的使用率可以>100%。
buffers.outputQueueLength:排队的输出缓冲区的数量
busyTimeMsPerSecond:此任务每秒繁忙(既不空闲也不背压)的时间(以毫秒为单位)。如果无法计算该值,则可以是NaN。
checkpointAlignmentTime:上一次屏障对齐完成所需的时间(以纳秒为单位),或者到目前为止当前对齐所用的时间(单位为纳秒)。这是接收第一个和最后一个检查点屏障之间的时间
checkpointStartDelayNanos:从创建最后一个检查点到此任务启动检查点进程之间经过的时间(以纳秒为单位)。此延迟显示第一个检查点屏障到达任务所需的时间。高值表示背压。如果只有特定任务的启动延迟很长,那么最有可能的原因是数据偏斜。
currentInputWatermark:此操作员/任务接收到的最后一个水印(以毫秒为单位)。
注意:对于具有2个输入的操作员/任务,这是最后接收到的水印的最小值。
idleTimeMsPerSecond:此任务每秒空闲(没有要处理的数据)的时间(以毫秒为单位)。空闲时间不包括背压时间,所以如果任务是背压的,它就不是空闲的。
isBackPressured:任务是否有反压力。
numBuffersInLocal:此任务已从本地源读取的网络缓冲区总数。
numBuffersInLocalPerSecond:此任务每秒从本地源读取的网络缓冲区数。
numBuffersInRemote:此任务已从远程源读取的网络缓冲区总数。
numBuffersInRemotePerSecond:此任务每秒从远程源读取的网络缓冲区数。
numBuffersOut:此任务已发出的网络缓冲区总数。
numBuffersOutPerSecond:此任务每秒发出的网络缓冲区数。
numBytesInLocal:此任务已从本地源读取的字节总数。
numBytesInRemote:此任务已从远程源读取的字节总数。
numBytesInRemotePerSecond:此任务每秒从远程源读取的字节数。
numBytesOut:此任务已发出的字节总数。
numBytesOutPerSecond:此任务每秒发出的字节数。
numRecordsIn:任务已收到的记录总数。
numRecordsInPerSecond:任务每秒接收的记录数。
numRecordsOut:任务已发出的记录总数
numRecordsOutPerSecond:任务每秒发出的记录数。
Shuffle.Netty.Input.Buffers.inPoolUsage:对输入缓冲区使用情况的估计。(忽略LocalInputChannels)
Shuffle.Netty.Input.Buffers.inputExclusiveBuffersUsage:独占输入缓冲区使用情况的估计值。(忽略LocalInputChannels)
Shuffle.Netty.Input.Buffers.inputFloatingBuffersUsage:对浮动输入缓冲区使用情况的估计。(忽略LocalInputChannels)
Shuffle.Netty.Input.Buffers.inputQueueLength:排队的输入缓冲区的数量。
Shuffle.Netty.Input.numBuffersInLocal:此任务已从本地源读取的网络缓冲区总数。
Shuffle.Netty.Input.numBuffersInLocalPerSecond:此任务每秒从本地源读取的网络缓冲区数。
Shuffle.Netty.Input.numBuffersInRemote:此任务已从远程源读取的网络缓冲区总数。
Shuffle.Netty.Input.numBuffersInRemotePerSecond:此任务每秒从远程源读取的网络缓冲区数
Shuffle.Netty.Output.Buffers.outPoolUsage:对输出缓冲区使用情况的估计。如果正在使用透支缓冲区,则池的使用率可以>100%。
Shuffle.Netty.Output.Buffers.outputQueueLength:排队的输出缓冲区的数量。
一些其他的参数在官网上查询即可。连接放到下面了。
https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/ops/metrics/#cpu
版权归原作者 weixin_46175135 所有, 如有侵权,请联系我们删除。