智能基线能够及时捕捉导致基线上的任务无法按时完成的异常情况并提前预警,保障复杂依赖场景下重要数据能在预期时间内顺利产出,帮助您降低配置成本、避免无效报警、自动监控所有重要任务。

应用场景

  • 管理任务优先级

    在任务数量越来越多,而资源有限的情况下,当发生资源抢占时,您可以将重要任务添加至基线上,并为基线设置较高的优先级,以保证重要的任务可以优先分配到资源。

  • 计算任务预计完成时间

    任务的运行受到资源和上游任务运行情况的影响,您可以将任务添加至基线上,DataWorks将计算出该任务每天或每小时的预计完成时间,便于您查看任务的预计完成时间。

  • 保障任务在承诺时间前运行完成

    您可以将任务添加至基线上,并设置基线承诺时间,当系统预测到基线上任务无法在承诺时间前完成,或上游任务有出错或变慢的情况,将发送报警信息,您可以根据报警信息及时处理问题,保障任务在承诺时间前运行完成。

相关概念

  • 基线:用户将重要任务加到基线上并设置承诺时间后,系统将根据任务运行情况计算基线任务的预计完成时间。当系统判断基线任务可能无法在承诺时间前完成,系统将发出告警。
  • 承诺时间:任务运行成功的最晚时间点。即面向数据应用,任务承诺在该时间点前完成。如果希望为运维人员预留一定的时间处理异常,您可以为基线设置预警余量,则系统会将承诺时间-预警余量作为触发报警的预警时间,判断任务能否在预警时间前运行成功。
  • 预警时间:即承诺时间-预警余量
  • 基线任务:被添加到基线上的任务。
  • 基线实例:系统使用基线实例计算任务每次运行的预计完成时间。基线实例的状态包括:安全、预警、破线。
    • 安全:预计完成时间<预警时间
    • 预警:预警时间<预计完成时间<承诺时间
    • 破线:预计完成时间>承诺时间
  • 关键路径:影响基线任务的多条路径中,运行耗时最长的路径。
  • 事件:基线任务及其上游任务出错,或关键路径上的任务变慢时,会产生事件。事件会影响基线任务的按时完成。

功能介绍

将重要任务添加到基线上后,DataWorks将根据基线的优先级保障基线任务的资源,并根据基线任务的上下游依赖关系确定监控范围,根据该监控范围内任务的运行情况触发基线报警或事件报警。

智能基线
如上图所示,智能基线的主要功能如下。
  1. 新建并管理基线
    您可以在基线管理页面新建和管理基线:
    • 将需要重保的任务移动至基线,设置基线承诺时间等基本信息,并设置基线的报警策略(报警发送的方式、接收人等),后续会依据基线的设置对需要监控的任务进行监控预警。
    • 您也可以指定基线的优先级,基线优先级可以决定任务运行的优先程度,基线优先级越高,基线上任务的优先级也会越高。优先级高的任务,在调度资源紧张的情况下,将优先获得调度资源。
      说明
      • 该优先级在满足以下两个条件的情况下将映射为MaxCompute计算任务的优先级。
        • MaxCompute Project开启优先级功能。
        • MaxCompute Project使用包年包月计算资源。
      • MaxCompute作业优先级=9-DataWorks基线优先级。
    基线新建及管理的操作详情请参见基线管理
  2. 确定监控范围

    DataWorks会结合基线上任务的依赖关系确定需要监控的范围,将可能会影响基线数据产出的所有任务都进行监控。详情请参见下文的核心逻辑介绍:监控范围

  3. 触发报警并发送报警信息
    • 基线报警
      1. 推算时间

        DataWorks会根据基线设置的承诺时间,结合基线上任务一段时间内的平均运行时长,推算出基线上任务的最晚开始时间和最晚完成时间,并逐步推算出监控范围内所有任务的相关时间。详情请参见核心逻辑介绍:基线报警

        进行时间推算所需的计算资源由基线实例提供,开启状态的基线每天会生成基线实例,用于推算监控范围内所有任务每次运行的相关时间。您可以在基线实例页面查看基线实例列表和运行情况,详情请参见:基线实例

      2. 触发报警

        DataWorks会根据基线配置的报警策略、推算出的时间,结合实际监控范围内任务的运行情况,自动触发报警并发送给报警接收人。当预测到基线上任务无法在承诺时间内完成时,系统将会根据定义的报警方式发送基线报警信息,详情请参见核心逻辑介绍:基线报警

    • 事件报警

      监控范围确定后,当基线任务及其上游任务出错,或关键路径上的任务变慢时,将会产生相应的事件,并发送事件报警信息,您可以在DataWorks的事件管理页面查看当前已存在的事件列表,详情请参见事件管理

费用说明

  • 基线实例个数:所有开启状态的基线都会产生基线实例,DataWorks根据当天23:59产生的基线实例数量收取费用。详情请参见:基线实例计费说明
  • 报警短信和报警电话个数:基线报警将产生短信和电话费用,详情请参见:报警短信与报警电话计费

使用限制

仅DataWorks标准版及以上版本支持使用智能基线功能。低版本用户请先升级再使用该功能,详情请参见:DataWorks各版本详解

核心逻辑介绍:监控范围

基线创建完成后,某个任务被移动至基线后,智能基线不会监控基线上任务的所有上下游任务,对该任务相关的上下游监控范围如下:
  • 上游任务:影响基线上任务数据产出的上游任务会被纳入基线监控范围。
  • 下游任务:下游任务不会被纳入基线监控范围,即基线任务的下游任务及上游任务的其他分支下游任务运行出错时不会触发报警。
监控范围

如上图所示,假设整个DataWorks有6个任务节点,任务D和任务E是基线上的任务,则影响任务D和任务E数据产出的上游任务,即上图中的任务A、任务B、任务D和任务E,均会被纳入监控范围,监控范围内的任务出现异常(出错或变慢),均会被智能基线察觉,而任务C和任务F不受智能基线所监控。

核心逻辑介绍:基线报警

您可以将重要任务添加到基线上,设置基线承诺时间预警余量后:
  • DataWorks会将承诺时间-预警余量作为预警时间,结合监控范围内任务的历史平均运行时长,基线实例依次推算得出监控范围内各任务的最晚完成时间和最晚开始运行时间。
  • 任务实际运行时,当监控范围内的任务的运行状态可能会导致基线任务无法在预警时间前完成时,DataWorks会触发基线报警。

时间推算

  1. 基线的预计完成时间推算

    基线的预计完成时间是根据添加到基线的任务在历史一段时间内的平均完成时间估算得出,当基线任务有多个时,基线的预计完成时间以各基线任务平均完成时间中最晚的时间为准。

    基线时间推算推算结果:
    • 基线A的预计完成时间 = 任务D历史一段时间内的平均完成时间 = 5:00
    • 基线B的预计完成时间 = 任务E历史一段时间内的平均完成时间 = 6:00
      说明 基线B上有两个基线任务,其中任务E平均完成时间晚于任务F的平均完成时间,则任务E是影响基线B最晚完成时间的任务,所以基线B的预计完成时间由任务E的平均完成时间决定。
  2. 监控范围内任务的预计最晚完成时间和预计最晚开始时间推算时间推算
推算场景示例推算公式推算结果示例
基线任务最晚开始时间推算基线任务最晚开始时间=基线预计完成时间 - 基线任务平均运行时长
  • 任务D的最晚开始时间=基线A预计完成时间(5:00)- 任务D平均运行时长(20min)=4:40
  • 任务E的最晚开始时间=基线B预计完成时间(6:00)- 任务E平均运行时长(2h)=4:00
  • 任务F的最晚开始时间=基线B预计完成时间(6:00)- 任务F平均运行时长(1.5h)=4:30
基线上游任务时间推算
  • 基线上游任务最晚完成时间=下游任务最晚开始时间
  • 基线上游任务最晚开始时间=基线上游任务最晚完成时间- 基线上游任务平均运行时长
  • 任务C的最晚完成时间=任务D的最晚开始时间
  • 任务C的最晚开始时间=任务C最晚完成时间(5:00)- 任务C平均运行时长(20min)=4:40
被纳入多条基线监控范围内的共同上游任务时间推算多条基线任务共同的上游任务的最晚完成时间=下游基线任务中开始运行时间最早的时间4:00早于4:10,即任务B的最晚完成时间为4:00时,方可同时满足基线A和基线B。进而可以推算得出:任务B的最晚开始时间=任务B最晚完成时间(4:00)- 任务B平均运行时长(2h)=2:00。

报警机制

基线报警是对开启状态且打开告警开关的基线提供的一个报警提醒,您可以基于基线的预计完成时间配置基线的预警余量承诺时间。DataWorks将根据监控范围内任务历史运行情况推算出的任务预计最晚完成时间,并结合基线上任务的实际运行情况进行监控,当预测到基线上任务无法在基线预警时间(基线承诺时间-预警余量)内完成时,系统将根据该基线定义的基线报警接收人发送基线报警信息。
说明 预警余量和基线承诺时间设置不合理可能导致报警不符合预期,详情请参见:合理配置基线承诺时间和预警余量
基线预警
  • 任务运行前,基线报警策略:
    说明 基线在每日任务运行前,通过计算当日基线监控范围内任务历史一段时间内的平均完成时间,将无法在基线预警时间内完成的异常信息,第一时间发送给基线报警接收人员。在基线上的任务依赖关系错综复杂,并且依赖变更频繁场景下,基线可为您提前发现问题并预警。
    • 当基线根据基线任务历史一段时间内的平均完成时间,推算出基线任务预计完成时间晚于基线预警时间时,将会触发基线预警。您可以在基线管理界面查看计算出来的基线任务预计完成时间,详情请参见:创建基线
    • 当基线根据基线任务的上游任务历史一段时间内的平均完成时间,推算出上游任务预计完成时间晚于基线预警时间时,将会触发基线预警。
  • 任务运行过程中,基线报警策略:

    当基线上任务实际完成时间晚于基线预警时间时,将会触发基线预警。

核心逻辑介绍:事件报警

监控范围确定后,当监控范围内的任务出现异常时,智能监控会生成事件,并基于对该事件的分析触发报警。任务的异常包括:
  • 出错:任务运行失败。
  • 变慢:任务本次运行时间相比过去一段时间内的平均运行时间明显变长。
说明 如果一个任务先变慢、再出错,会生成两个事件。
您可以进入事件管理页面查看产生的事件详情。

核心逻辑介绍:关键路径与关键实例

基线上需要保障的任务,其依赖关系可能错综复杂,DataWorks提供甘特图功能帮助您快速定位阻塞基线上数据产出的关键路径与关键实例,其中影响基线任务产出的多条路径中,耗时最长的路径为基线关键路径。基线报警示例
甘特图用于反映目标任务的关键执行路径。以上述案例为例,关键路径展示及异常捕获时间如下所示:甘特图