智能诊断模块当前支持展示异常任务列表和异常实例列表,同时也支持将任务加入诊断白名单:

  1. 异常任务列表中,展示对调度依赖诊断Spark性能诊断两个纬度的诊断异常任务结果
  2. 异常实例列表中,展示未按时就绪就绪超时阻塞下游三类异常实例列表

异常实例诊断

展示阻塞下游、就绪超时和未按时就绪三类异常实例,提供统一入口,方便用户直观了解异常实例情况。

阻塞下游

展示上游已运行成功,而当前实例运行状态非成功,导致下游依赖实例未按时就绪或运行的实例。

就绪超时

展示就绪时长已超过5分钟的实例列表,超时规则支持自定义。

未按时就绪

展示已到计划执行时间但仍未就绪的实例列表,若一个任务有多个超时未就绪实例,仅展示计划执行时间最新的那一个实例。

异常任务诊断

智能诊断 - 图1

调度依赖诊断

调度依赖诊断支持诊断SQL节点是否存在多余依赖和缺少依赖的情况。对于多余依赖和缺少依赖的判断依据如下:

调度依赖诊断规则说明

  1. 调度依赖诊断仅针对SQL节点,若SQL节点的输入表与上游依赖节点的输出表不一致,则认为存在多余依赖;
  2. 若节点的输入表对应的产出任务非本节点的依赖上游,则认为缺少对应依赖。
  3. 节点的输入表与输出表支持在任务内传递,即同一任务内的上游节点的输出表会视作下游节点的输出表,下游节点的输入表会作为上游节点的输入表。
  4. 需注意,任务之间的依赖关系不支持传递,建议用户按照实际依赖情况添加依赖关系,便于直观地查看和管理血缘。

注意: 当前仅支持判断“SQL”节点的上游依赖情况,推荐数据来源于任务的运行实例,因此请确保上游表的产出任务至少在线上调度运行过一次。

Snipaste_2023-07-10_15-09-57.png

点击“查看完整输入输出”,可以查看多余依赖的上下游节点的实际输入输出表信息:
Snipaste_2023-07-10_15-12-42.png

Spark性能诊断

Spark性能诊断支持诊断Spark节点、Hive-Spark节点的Spark执行性能,目前已支持的诊断内容包括Task长尾、数据膨胀等14种异常情况:
Snipaste_2023-07-10_15-16-14.png

在任务详情页面,点击诊断结果标签,可查看具体指标以及相关建议:
Snipaste_2023-07-10_15-19-24.png

Snipaste_2023-07-10_15-20-23.png

资源使用率诊断

资源使用率诊断的对象为任务最近一次线上调度执行成功的实例中的SQL节点(执行引擎为Spark或Hive)、Spark节点、MR节点。展示内存使用和CPU使用异常的任务列表。 智能诊断 - 图7 在任务详情页面,点击诊断详情,可前往项目中心(新)查看具体诊断内容和优化建议。

注意: 当前仅支持部署了高级版本easyeagle的客户才可使用“Spark性能诊断”和“资源使用率诊断”功能。

诊断白名单

针对一些特殊业务场景下确实不需添加依赖的任务,任务运维中心也支持将任务加入白名单,加入白名单后的任务将不再出现在异常任务列表中。加入白名单的入口有两处,分别是任务诊断的任务列表中,以及任务详情页的任务诊断标签页中。
Snipaste_2023-07-10_16-05-33.png

注意: 加入诊断白名单需由项目管理员或负责人审批;申请审批通过后,将不再进行诊断,若需要修改白名单诊断内容或将任务从白名单中删除,需联系管理员前往任务诊断-白名单管理中操作。