实例运行诊断

周期实例或补数据实例实际运行时,除受实例的定时运行时间影响外,还受多方因素影响。例如,上游实例任务的运行状态是否成功、所剩资源是否满足实例运行、实例是否命中限流规则等。为此,Dataphin提供实例运行诊断功能,对实例的运行流程及整体链路进行分析,当实例运行不符合预期时,您可以使用该功能快速定位问题。

使用限制

  • 仅支持离线周期实例和补数据实例(包括脚本实例、明细及汇总表实例、萃取实例)的运行诊断,不支持实时实例(包括实时计算和实时集成)、手动实例的运行诊断。

  • 明细及汇总表实例不支持字段级别的分析,仅支持按照物化节点进行分析。

功能概述

在运维中心,实例的运行状态按照不同的颜色及标识来辨识实例所处于运行流程中的哪个阶段。您可通过实例运行状态的颜色及标识,判断实例运行的阶段或检查实例未运行的原因。实例运行状态及实例运行流程如下:

运行状态标识

标识描述

运行流程图

test

未运行

image.png

test

等待调度时间

test

限流中

test

等待调度资源

test

运行中

test

成功

test

失败

实例是否能成功运行,受其上游依赖、调度时间、资源、实例本身运行情况等多方因素影响。当实例运行失败或长时间处于一个运行状态时,您可通过运行诊断功能,按照如下流程或基于以下维度对实例进行诊断分析:

检查项

描述

上游依赖

检查上游实例运行情况。上游实例运行失败时,将阻塞当前实例运行,您可以通过查看上游依赖诊断结果进一步排查失败原因。

定时时间

检查是否已到达任务设置的定时运行时间。

限流规则

您可以查看当前实例命中的限流规则以及当前队列中已下发的实例列表。

调度资源

您可以查看实例已等待调度资源的时长、以及当前占用所在资源组资源的全量实例列表,并根据诊断建议执行对应的操作。

实例执行

您可以查看实例运行结果以及执行日志。

运行诊断入口

  1. 请参见运维中心入口,进入运维中心页面。

  2. 运维中心页面,按照下图操作指引,进入目标实例的节点详情页面。

    下图以周期实例页面为例。image

  3. 在节点详情页面,单击运行诊断

    image

上游依赖

上游依赖诊断为您展示实例最近1次运行诊断结果及上游实例当前最新的状态,只有上游全部运行成功才会进入下一步检查,您可以通过查看上游依赖诊断结果进一步排查失败原因。最近1次运行已经通过上游依赖诊断的实例不会重新进行诊断,如果需要刷新最近1次运行结果或上游实例状态,可以单击刷新刷新图标。

  • 如果实例最近1次运行结果为成功,且非强制重跑,则诊断结果为通过image

    功能

    描述

    最近一次运行

    展示运行状态和运行通过时间。

    说明

    仅全部上游实例的运行状态均为成功时,当前实例才会开始调度。

    当前诊断结果

    展示诊断结果。

    • 调度类型:包含空跑运行正常运行暂停运行。当前实例为暂停运行时,需先恢复调度才能开始运行。

    • 起始阻断节点:展示导致当前节点无法开始运行的最上层节点。上游诊断通过的实例无起始阻断节点。

    • 直接上游列表:展示直接上游列表。支持按照节点名称、节点ID、实例ID进行搜索,同时支持按照运行状态负责人进行筛选。

  • 如果实例未开始运行且非暂停调度,则诊断结果的调度类型为正常运行。您可以根据提示,重点关注起始阻断节点,通过调整阻断节点的运行,使当前节点恢复运行。仅全部上游实例的运行状态均为成功时,当前实例才会开始调度。image

  • 如果实例当前为暂停运行状态,则不会继续进行诊断,诊断结果为暂停运行

    image

  • 强制重跑的实例不会校验上游是否全部运行成功,如果实例最近1次运行为强制重跑,则诊断结果为跳过image

定时时间

定时时间的诊断结果为每个实例的最近1次运行的诊断结果。实例需要到达定时运行时间才会开始调度,否则会处于等待调度时间状态。如需刷新诊断结果,可单击刷新刷新图标。

  • 如果实例当前未到达设置的定时调度时间且非暂停调度,则诊断结果为等待调度时间。在确保不会对下游数据质量产生影响的前提下,如需提前调度该实例,可执行强制重跑image

  • 如果实例当前状态为暂停运行且暂停调度,则诊断结果为暂停。如需运行,可单击恢复调度

    image

  • 如果实例最近1次运行已到达设置的定时调度时间且非强制重跑,则诊断结果为通过image

  • 强制重跑的起始节点不校验是否到达定时时间,直接开始运行,跳过诊断。如果实例最近1次运行是强制重跑,则诊断结果为跳过image

限流规则

如果您购买了智能运维增值功能,可配置限流规则。如何配置,请参见限流配置

所有实例运行都需要进行限流规则的诊断,上游依赖及定时时间诊断通过后,需要同时满足所有命中的限流规则才会下发到资源调度系统。如需刷新诊断结果,可单击刷新刷新图标。

  • 如果实例最近1次运行满足上游依赖以及定时时间,且同时满足所有命中的限流规则,则诊断结果为通过image

  • 如果实例当前被限流等待下发且非暂停调度,则诊断结果为限流中,并展示当前已等待的时长。image

    场景

    描述

    阻断规则

    展示当前实例命中的限流规则名称。您可以单击目标限流规则名称查看。

    已下发实例列表

    展示当前命中的限流规则队列中已下发的实例,您可以根据实例名称或ID搜索或筛选已下发的实例。

  • 如果实例当前为暂停运行状态且暂停调度,则诊断结果为暂停。此时需要恢复实例运行状态,才能下发资源调度。

调度资源

共享运行资源的实例通常情况受调度资源影响较小,独享运行资源的实例需要所属资源组有足够可分配的空闲资源才会开始调度,否则为等待调度资源状态。如需刷新诊断结果,可单击刷新刷新图标。

  • 如果实例最近一次运行所属资源组有足够可分配的空闲资源,且非暂停调度,则诊断结果为通过image

  • 如果当前实例无足够可分配的空闲调度资源,则诊断结果为等待调度资源。调度资源诊断页面为您展示等待资源时长、诊断建议以及占用资源实例列表。您可以根据页面展示的诊断建议,结合占用资源实例列表进行处理,以保证当前实例可获得充足资源正常运行。image

实例执行

到达执行环节的实例才会进入到实例执行诊断页面,并展示实例运行结果运行日志。如果运行结果失败,您可以根据运行日志排查问题并处理。如需刷新诊断结果,可单击刷新刷新图标。image