通过Logview 2.0查看MaxFrame作业

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界面如下:

image

序号

区域

标题与功能区,详情请参见标题与功能区

Basic Info,详情请参见Basic Info

DAG列表,详情请参见DAG列表

标题与功能区

标题与功能区包含您提交作业时生成的唯一作业ID及您自定义的作业名称,您还可以执行如下操作。

图标

功能

image

获取Maxframe Logview URL地址。

image

将作业详情文件保存至本地设备。

image

停止当前作业进程。

image

打开本地保存的作业详情文件Logview_detail.txt。

image

打开Job列表,查看指定项目下的Job信息。

image

设置是否启用自动刷新,若启动后间隔10秒刷新一次。

DAG列表

DAG列表展示按照execute调用的先后顺序逆序排列,即最新提交的作业会显示在前面,基本信息如下表所示。

参数名

描述

Id

DAG ID,每次execute执行时产生的代表该执行的唯一Id。

Detail

单击image,查看对应Sub DAG详情。

Start Time

DAG提交的时间。

End Time

DAG运行结束的时间,如果为空表示当前仍然在运行中。

Duration

DAG运行时长,即自Start Time开始至结束时间或当前时间的时间。

Status

作业的状态。取值说明如下:

  • Preparing:DAG解析中,尚未开始执行。

  • Runing:DAG运行中。

  • Succeeded:DAG执行成功。

  • Failed:DAG执行失败。

  • Cancelling:DAG正在取消中。

  • Cancelled:DAG已取消。

Description

DAG的描述信息。

Sub DAG详情

Sub DAG详情页面如下图所示。

image

序号

区域

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的详情。

image

序号

描述

当前的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_X:SubDAG的名称,序号代表执行顺序,从1开始编号,依次递增。

  • X/X/X(例如:0/5/5):代表当前SubDAG中ODPS Instance的不同状态的数量,分别为运行中的Instance个数/完成Instance个数/总Instance个数。

  • 起止时间。

  • MCSQL:表示当前SubDAG执行的引擎。

  • OP 1:表示当前SubDAG中包含一个算子,双击该节点可以查看算子图。

数据流,表示STAGE之间或STAGE与表之间的数据流向。

画布预览空间。

Sub DAG列表

该列表展示了当前DAG中所有的Sub DAG的运行信息,按时间顺序排序。

image

参数

描述

Sub DAG

当前Sub DAG名称。

Failed/Terminated/ALL

当前Sub DAG中,处于不同状态的ODPS Instance的数量。

说明

如果遇到 (+X Fallback) 则表示有X个Instance发生了MCQA到Offline SQL的计算降级,并不是数据出错。

Status

当前Sub DAG的运行状态。

  • Failed:执行失败。

  • Cancelled:已经取消。

  • Running:正在执行中。

  • Succeeded:已执行成功结束。

Progress

Sub DAG的进度。

说明

如果在Running状态下达到100%仅表示当前需要处理的Instance已经全部完成,不代表 SubDAG已经执行完成。

Start Time

Sub DAG提交时间。

End Time

Sub DAG结束时间。

Duration

Sub DAG运行时长。

Timeline

时间轴预览,可以通过该时间轴查看启动的先后顺序和耗时占用。

Instance列表

该列表展示了Sub DAG相关的ODPS Instance作业。

image.png

参数

描述

Instance ID

ODPS Instance作业ID。

Status

作业运行状态。

  • Failed:执行失败。

  • Cancelled:已取消。

  • Running:正在执行中。

  • Terminated:已执行成功结束。

  • Fallback:以一种降级的方式运行,会形成一条新的Instance记录。

  • Unknown_terminated:已经执行完成,但未检测到是成功或失败。

Detail

作业详情。

Start Time

作业提交时间。

End Time

作业结束时间。

Duration

作业运行时长。

Timeline

时间轴预览,可以通过该时间轴查看启动的先后顺序和耗时占用。

使用场景

查看执行耗时最长的阶段

在DAG列表、SubDAG列表和Instance列表中,都可以通过查看Timeline列,快速地找到当前层级耗时最长的DAG、SubDAG或Instance。

image

说明

若您的列表过长并且需要进行分页,可以通过对Duration列进行逆序排序,以便快速找到耗时最长的项。

查看执行出错的原因

如果你发现DAG执行出错,或者客户端返回了异常日志,你可以前往MaxFrame Logview按照如下思路进行查看。

  1. 查看DAG列表中各DAG的状态。

  2. 查看最近一次Status为Failed的DAG记录,单击Detail列中image查看详细信息。

    image

  3. 您可以DAG详情页面,查看显示红色的Sub DAG 节点,如下图中的 STAGE_1

    image

    您还可以在Result页面,查看错误信息。

    image

  4. 单击失败的Sub DAG节点STAGE_1,然后单击Instance列表Detail列中image查看详细信息,如下图可以找到对应的失败的Instance。

    image

查看SubDAG包含的算子

目前有两种方法可以查看Sub DAG 包含的算子:

  • 方式一:在DAG详情页面,单击SubDAG节点。

    image

  • 方式二:在DAG详情页面,双击SubDAG节点。

    image

说明
  • 算子上会标记当前算子对应MaxFrame脚本的代码行。

  • 一些算子可能带有merged from标识,通常是指优化器在DAG提交后合并多个算子,生成性能更高且功能相同的新算子。

查看表的数据情况

查看数据流结构

若您想查看的数据流结构信息,您可以在DAG详情页面,双击SubDAG节点,进入算子详情页,然后单击算子与算子之间的连接线,即可查看对应的数据类型、索引(Index)和列名格式。

image

上述参数介绍:

  • 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节点。

image

查看作业详情

在DAG详情页面,单击Instance列表Detail列中image查看作业详情。