智能基线
智能基线能够及时捕捉导致基线上的任务无法按时完成的异常情况并提前预警,保障复杂依赖场景下重要数据能在预期时间内顺利产出,帮助您降低配置成本、避免无效报警、自动监控所有重要任务。
应用场景
管理任务优先级
在任务数量越来越多,而资源有限的情况下,当发生资源抢占时,您可以将重要任务添加至基线上,并为基线设置较高的优先级,以保证重要的任务可以优先分配到资源。
计算任务预计完成时间
任务的运行受到资源和上游任务运行情况的影响,您可以将任务添加至基线上,DataWorks将计算出该任务每天或每小时的预计完成时间,便于您查看任务的预计完成时间。
保障任务在承诺时间前运行完成
您可以将任务添加至基线上,并设置基线承诺时间,当系统预测到基线上任务无法在承诺时间前完成,或上游任务出现错误或变慢的情况,将发送报警信息,您可以根据报警信息及时处理问题,保障任务在承诺时间前运行完成。
相关概念
基线:用户将重要任务加到基线上并设置承诺时间后,系统将根据任务运行情况计算基线任务的预计完成时间。当系统判断基线任务可能无法在承诺时间前完成,系统将发出告警。
承诺时间:任务运行成功的最晚时间点。即面向数据应用,任务承诺在该时间点前完成。如果希望为运维人员预留一定的时间处理异常,您可以为基线设置预警余量,则系统会将
承诺时间-预警余量
作为触发报警的预警时间,判断任务能否在预警时间前运行成功。预警时间:即
承诺时间-预警余量
。基线任务:被添加到基线上的任务。
基线实例:系统使用基线实例计算任务每次运行的预计完成时间。基线实例的状态包括:安全、预警、破线。
安全:
预计完成时间<预警时间
。预警:
预警时间<预计完成时间<承诺时间
。破线:
预计完成时间>承诺时间
。
关键路径:影响基线任务的多条路径中,运行耗时最长的路径。
事件:基线任务及其上游任务出错,或关键路径上的任务变慢时,会产生事件。事件会影响基线任务的按时完成。
功能介绍
将重要任务添加到基线上后,DataWorks将根据基线的优先级保障基线任务的资源,并根据基线任务的上下游依赖关系确定监控范围,根据该监控范围内任务的运行情况触发基线报警或事件报警。
根据基线任务K确定监控范围。
基线任务的上游节点:影响任务K产出的节点均被纳入监控范围:
基线任务的下游节点:不在监控范围:
关键路径:影响任务K的所有路径中耗时最长的路径:
新建一条基线:
指定添加到基线的任务K。
设置基线优先级及告警策略参数。
根据监控范围内任务的实际运行情况触发基线报警或事件报警。
如上图所示,智能基线的主要功能如下。
新建并管理基线
您可以在基线管理页面新建和管理基线:
将需要重保的任务移动至基线,设置基线承诺时间等基本信息,并设置基线的报警策略(报警发送的方式、接收人等),后续会依据基线的设置对需要监控的任务进行监控预警。
您也可以指定基线的优先级,基线优先级可以决定任务运行的优先程度,基线优先级越高,基线上任务的优先级也会越高。优先级高的任务,在调度资源紧张的情况下,将优先获得调度资源。
说明该优先级在满足以下两个条件的情况下将映射为MaxCompute计算任务的优先级。
MaxCompute Project开启优先级功能。
MaxCompute Project使用包年包月计算资源。
MaxCompute作业优先级=9-DataWorks基线优先级。
基线新建及管理的操作详情请参见基线管理。
确定监控范围
DataWorks会结合基线上任务的依赖关系确定需要监控的范围,将可能影响基线数据产出的所有任务都进行监控。详情请参见下文的核心逻辑介绍:监控范围。
触发报警并发送报警信息
基线报警
DataWorks会根据基线配置的报警策略,结合实际监控范围内任务的运行情况,自动触发报警并发送给报警接收人。当预测到基线上任务无法在承诺时间内完成时,系统将会根据定义的报警方式发送基线报警信息,详情请参见核心逻辑介绍:基线报警。
事件报警
监控范围确定后,当基线任务及其上游任务出错,或关键路径上的任务变慢时,将会产生相应的事件,并发送事件报警信息,您可以在DataWorks的事件管理页面查看当前已存在的事件列表,详情请参见事件管理。
费用说明
基线实例个数:所有开启状态的基线都会产生基线实例,DataWorks根据当天23:59产生的基线实例数量收取费用。详情请参见:基线实例计费说明。
报警短信和报警电话个数:基线报警将产生短信和电话费用,详情请参见:报警短信与报警电话计费。
使用限制
仅DataWorks标准版及以上版本支持使用智能基线功能。低版本用户请先升级再使用该功能,详情请参见:DataWorks各版本详解。
核心逻辑介绍:监控范围
基线创建完成后,某个任务被移动至基线后,智能基线不会监控基线上任务的所有上下游任务,对该任务相关的上下游监控范围如下:
上游任务:影响基线上任务数据产出的上游任务会被纳入基线监控范围。
下游任务:下游任务不会被纳入基线监控范围,即基线任务的下游任务及上游任务的其他分支下游任务运行出错时不会触发报警。
如上图所示,假设整个DataWorks有6个任务节点,任务D和任务E是基线上的任务,则影响任务D和任务E数据产出的上游任务,即上图中的任务A、任务B、任务D和任务E,均会被纳入监控范围,监控范围内的任务出现异常(出错或变慢),均会被智能基线察觉,而任务C和任务F不受智能基线所监控。
核心逻辑介绍:基线报警
您可以将重要任务添加到基线上,设置基线承诺时间和预警余量后:
DataWorks会将
承诺时间-预警余量
作为预警时间,结合监控范围内任务的历史平均运行时长,基线实例依次推算得出监控范围内各任务的最晚完成时间和最晚开始运行时间。任务实际运行时,当监控范围内的任务的运行状态可能会导致基线任务无法在预警时间前完成时,DataWorks会触发基线报警。
核心逻辑介绍:事件报警
监控范围确定后,当监控范围内的任务出现异常时,智能监控会生成事件,并基于对该事件的分析触发报警。任务的异常包括:
出错:任务运行失败。
变慢:任务本次运行时间相比过去一段时间内的平均运行时间明显变长。
如果一个任务先变慢、再出错,会生成两个事件。
您可以进入事件管理页面查看产生的事件详情。
核心逻辑介绍:关键路径与关键实例
基线上需要保障的任务,其依赖关系可能错综复杂,DataWorks提供甘特图功能帮助您快速定位阻塞基线上数据产出的关键路径与关键实例,其中影响基线任务产出的多条路径中,耗时最长的路径为基线关键路径。
范例
场景:当前事件为6:40,任务F仍在运行。
基线预警:
XX年XX月XX日 XX:XX:XX
基线XX预警,业务时间XX,余量:-10min ……
事件报警:
XX年XX月XX日 XX:XX:XX
事件体型,业务时间XX,任务XX,状态:延迟……
甘特图用于反映目标任务的关键执行路径。以上述案例为例,关键路径展示及异常捕获时间如下所示: