文章摘要
qwen-turbo
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结

背景

随着公司数仓的建设,数仓所产出的数据越来越多,也越来越重要,如何在任务上线后,持续的对任务进行监控,达到异常预警和延迟提前预警,是我们要考虑的。经过综合考虑,结合阿里云dataworks的基线管理功能, 来完善这一体系。

那基线是什么呢?(简单说明一下,具体可以查看文档)

阿里云基线运维官方文档

直白来讲,是阿里云提供的一个对于任务进行监控管理的运维工具,用户通过将重要任务加到基线上并设置承诺时间后,系统将根据任务运行情况计算基线任务的预计完成时间。当系统判断基线任务可能无法在承诺时间前完成,系统将发出告警。

应用场景又有那些呢?

  • 管理任务优先级
    在任务数量越来越多,而资源有限的情况下,当发生资源抢占时,您可以将重要任务添加至基线上,并为基线设置较高的优先级,以保证重要的任务可以优先分配到资源。
  • 计算任务预计完成时间
    任务的运行受到资源和上游任务运行情况的影响,您可以将任务添加至基线上,DataWorks将计算出该任务每天或每小时的预计完成时间,便于您查看任务的预计完成时间。
  • 保障任务在承诺时间前运行完成
    您可以将任务添加至基线上,并设置基线承诺时间,当系统预测到基线上任务无法在承诺时间前完成,或上游任务有出错或变慢的情况,将发送报警信息,您可以根据报警信息及时处理问题,保障任务在承诺时间前运行完

我们怎么用和解决什么问题?

基于此,我们希望在运维告警方向,解决遇到的一些问题:

  • 对不同任务级级别,采取不同的运维策略,比如优先级高的任务高优队级、告警方式、核心任务单独管控等。
  • 提前预警,例如在晚上1点,可以预测早上8点任务的完成情况,并给出预警提示
  • 作为okr的核量指标,延迟告警5次,异常告警五次等

基于以上的一些问题,基于阿里云datawork运维中心的基线进行方案建设,通过不同基线对任务级别进行划分,从而针对不同基线任务采取不同的策略,下面就任务运维中心一些比较核心的点进行讲解。

基线划分的原则

基线划分原则主要是作为指导那些任务要划分,怎么划分的一些参考,从任务配置的必要性、重要性、需提前预警几个方面考虑的,目前基线划分的原则如下:

  • 基线上的任务主要针对天调度任务,小时级别只管控核心
  • 产出任务必须配置告警,针对产出任务的基线对应taqu_main_high_baseline`、taqu_main_low_baseline,两者区别主要在告警方式、优先级、产出时间,重要的任务配置在taqu_main_high_baseline
  • 针对模型层的基线任务告警,暂不做要求,后期陆续完善

具体基线的设置

基于基线配置的两个参数,承诺时间和预警余量,可以产出基线预警时间(基线预警时间= 承诺时间 - 预警余量),如果实际完成时间晚于基线预警时间,则会触发报警。例如,设置承诺时间为3:30,预警余量为10分钟,如果系统预测任务无法在3:20分完成,则会触发基线报警。

现在有哪些基线,分别是什么情况,应该涵盖那些内容?

基线名称 描述 基线类型 优先级(值越大优先级越高,影响配置任务及上游依赖任务) 承诺产出时间 延迟告警时间 告警方式 备注
tq_main_high_day_baseline 重要产出任务基线,主要针对核心的报表产出,比如约定时间必须产出,用户活跃、核心报表、商业化等等,以及其他需求方描述的较为重要的部分 天级别 8 每天 06:00 每天 05:30 短信、邮件、钉钉、电话
tq_main_low_day_baseline 一般产出任务基线,所有产出任务的默认基线,未加入taqu_main_high_baseline的部分 天级别 1 每天 07:30 每天 07:00 短信、邮件、钉钉
tq_main_high_hour_baseline 重要产出任务基线,主要针对小时级别任务 小时级别 3 每小时的20分 短信、邮件、钉钉
tq_main_dataworks_default_baseline 默认基线,不重要的任务可以挂在默认基线上 天级别 1 短信、钉钉,只发出异常告警

基线使用实践(如何配置和使用dataworks的基线)

单个任务添加基线

20230727135708956.png

20230727135736471.png

批量添加基线

20230727135816894.png