Logview是MaxCompute作业运行状态信息记录与展现的一个工具,目前已经适配MaxFrame,本文为您介绍如何通过Logview 2.0查看MaxFrame作业的运行信息。
概述
Logview 2.0已适配MaxFrame,并支持以下功能:
查看MaxFrame Session中提交的所有DAG的执行记录、运行耗时等信息。
交互式查看每个DAG中的SubDAG的执行顺序、运行时间、算子拓扑和状态关系。
支持查看每个子实例的设置、运行状态、内存和CPU等资源使用情况。
Logview的通用能力可以查看文档使用Logview 2.0查看作业运行信息,本文主要介绍MaxFrame作业相关运行信息的查看。
Maxframe Logview入口
当您使用session = new_session(...)
创建任意Session之后,系统会自动生成一个以 https://logview.aliyun.com/logview
开头的URL地址。
在DataWorks使用MaxFrame提交作业后,直接单击URL地址就可以打开Maxframe Logview界面。
在本地环境使用MaxFrame提交作业时,您可以使用
session.get_logview_address()
方法来获取并打印URL地址,然后将该地址复制到浏览器中进行访问。
Maxframe Logview界面如下:
序号 | 区域 |
① | 标题与功能区,详情请参见标题与功能区。 |
② | Basic Info,详情请参见Basic Info。 |
③ | DAG列表,详情请参见DAG列表。 |
标题与功能区
标题与功能区包含您提交作业时生成的唯一作业ID及您自定义的作业名称,您还可以执行如下操作。
图标 | 功能 |
获取Maxframe Logview URL地址。 | |
将作业详情文件保存至本地设备。 | |
停止当前作业进程。 | |
打开本地保存的作业详情文件Logview_detail.txt。 | |
打开Job列表,查看指定项目下的Job信息。 | |
设置是否启用自动刷新,若启动后间隔10秒刷新一次。 |
DAG列表
DAG列表展示按照execute调用的先后顺序逆序排列,即最新提交的作业会显示在前面,基本信息如下表所示。
参数名 | 描述 |
Id | DAG ID,每次execute执行时产生的代表该执行的唯一Id。 |
Detail | 单击,查看对应Sub DAG详情。 |
Start Time | DAG提交的时间。 |
End Time | DAG运行结束的时间,如果为空表示当前仍然在运行中。 |
Duration | DAG运行时长,即自Start Time开始至结束时间或当前时间的时间。 |
Status | 作业的状态。取值说明如下:
|
Description | DAG的描述信息。 |
Sub DAG详情
Sub DAG详情页面如下图所示。
序号 | 区域 |
① | Sub DAG Graph显示区域,详情请参见Sub DAG Graph。 |
② | Sub DAG列表,详情请参见Sub DAG列表。 |
③ | Sub DAG的Instance列表,详情请参见Instance列表 |
④ | Sub DAG的Basic Info,详情请参见Basic Info。 |
Sub DAG Graph
Sub DAG Graph用于快速理解当前DAG的详情。
序号 | 描述 |
① | 当前的Sub DAG ID,单击可以返回到DAG列表页面。 |
② | 面包屑导航,用于切换Sub DAG任务层级。 |
③ | 排查问题辅助工具。包含Progress Chart、Input Heat Chart、Output Heat Chart、TaskTime Heart Chart和InstanceTime Heart Chart。 |
④ | 您可以在此区域刷新作业执行状态()、全屏或缩放显示作业执行图()、获取MaxCompute Studio文档()和切换至任务上一层级()。 |
⑤ | 缩放辅助工具。 |
⑥ | 表节点,代表一张ODPS Table。 |
⑦ | Sub DAG节点,主要包含如下内容:
|
⑧ | 数据流,表示STAGE之间或STAGE与表之间的数据流向。 |
⑨ | 画布预览空间。 |
Sub DAG列表
该列表展示了当前DAG中所有的Sub DAG的运行信息,按时间顺序排序。
参数 | 描述 |
Sub DAG | 当前Sub DAG名称。 |
Failed/Terminated/ALL | 当前Sub DAG中,处于不同状态的ODPS Instance的数量。 说明 如果遇到 (+X Fallback) 则表示有X个Instance发生了MCQA到Offline SQL的计算降级,并不是数据出错。 |
Status | 当前Sub DAG的运行状态。
|
Progress | Sub DAG的进度。 说明 如果在Running状态下达到100%仅表示当前需要处理的Instance已经全部完成,不代表 SubDAG已经执行完成。 |
Start Time | Sub DAG提交时间。 |
End Time | Sub DAG结束时间。 |
Duration | Sub DAG运行时长。 |
Timeline | 时间轴预览,可以通过该时间轴查看启动的先后顺序和耗时占用。 |
Instance列表
该列表展示了Sub DAG相关的ODPS Instance作业。
参数 | 描述 |
Instance ID | ODPS Instance作业ID。 |
Status | 作业运行状态。
|
Detail | 作业详情。 |
Start Time | 作业提交时间。 |
End Time | 作业结束时间。 |
Duration | 作业运行时长。 |
Timeline | 时间轴预览,可以通过该时间轴查看启动的先后顺序和耗时占用。 |
使用场景
查看执行耗时最长的阶段
在DAG列表、SubDAG列表和Instance列表中,都可以通过查看Timeline列,快速地找到当前层级耗时最长的DAG、SubDAG或Instance。
若您的列表过长并且需要进行分页,可以通过对Duration列进行逆序排序,以便快速找到耗时最长的项。
查看执行出错的原因
如果你发现DAG执行出错,或者客户端返回了异常日志,你可以前往MaxFrame Logview按照如下思路进行查看。
查看DAG列表中各DAG的状态。
查看最近一次Status为Failed的DAG记录,单击Detail列中查看详细信息。
您可以DAG详情页面,查看显示红色的Sub DAG 节点,如下图中的
STAGE_1
。您还可以在Result页面,查看错误信息。
单击失败的Sub DAG节点
STAGE_1
,然后单击Instance列表Detail列中查看详细信息,如下图可以找到对应的失败的Instance。
查看SubDAG包含的算子
目前有两种方法可以查看Sub DAG 包含的算子:
方式一:在DAG详情页面,单击SubDAG节点。
方式二:在DAG详情页面,双击SubDAG节点。
算子上会标记当前算子对应MaxFrame脚本的代码行。
一些算子可能带有
merged from
标识,通常是指优化器在DAG提交后合并多个算子,生成性能更高且功能相同的新算子。
查看表的数据情况
查看数据流结构
若您想查看的数据流结构信息,您可以在DAG详情页面,双击SubDAG节点,进入算子详情页,然后单击算子与算子之间的连接线,即可查看对应的数据类型、索引(Index)和列名格式。
上述参数介绍:
Type: dataframe,表示上游算子输出的是一个
dataframe
。DataFrame Index:索引。
None: int64,当前包含一个未命名的Index,类型为
int64
。DataFrame Columns:列信息。
<column name>: <dtype>,当前DataFrame包含的所有的列和列的类型。
DataFrame Level Names:当前DataFrame Level的名称。
查看数据表的结构
单击任意算子图或Sub DAG Graph中的ODPS Table节点。
查看作业详情
在DAG详情页面,单击Instance列表Detail列中查看作业详情。