You need to enable JavaScript to run this app.
导航

基线管理

最近更新时间2024.03.07 15:09:00

首次发布时间2022.11.16 11:32:24

基线管理功能,通过设置基线监控,可对目标任务及其全部上游任务组成的数据链路,进行全方位的监控,对无法按时完成的任务进行提前预警,保障关键数据能够按时产出。为您降低监控配置成本的情况下,又能更高效的完成任务监控治理。

1 功能介绍

  1. 将某个任务加入基线后,它自身及其全部上游,都将被基线监控。
    例如将 candy_yilai3 放入基线1, candy_yilai3 及其全部上游任务组成的数据链路,都将被基线进行监控。
  2. 基线中设置监控任务的最晚完成时间和用于处理异常的余量时间。当上游任务运行情况将影响这两个时间点时,基线进行相关报警。
    例如对于 candy_yilai3 可接受的最晚完成时间是下午 16:00,当发现问题,负责人用于处理异常的余量时间是 30 min ,则基线1保障的两个时间点是 15:30 和 16:00。当系统发现,随着上游任务的依次运行,candy_yilai3 无法在 15:30 完成运行,基线则会发出预警;当发现 candy_yilai3 无法在 16:00 完成运行,基线将触发保障任务未完成报警。
    图片

2 新建基线

通过基线监控,可监控保障任务及其全部上游,保证保障任务按时产出。

  1. 登录 DataLeap租户控制台
  2. 在对应项目下单击运维中心 > 离线任务运维 > 报警监控 > 基线管理界面。
  3. 在基线管理页面,右上角单击新建基线,进入基线设置页面,可以对任务基线进行配置。配置信息包括基本信息监控报警两部分,具体配置情况如下:

说明

当您修改已有基线时,对应配置无法实时生效,具体生效时间为:

  • 当您修改时间早于22:00,对应修改在第二天的基线监控中体现;
  • 当您修改时间晚于22:00,对应修改在第三天的基线监控中体现;

2.1 基本信息设置

参数

说明

基线名称

根据需要,设置基线名称。

优先级

包括普通紧急两种可选类型:

  • 紧急:默认会将基线失败事件作为报警,通过邮件发送给失败任务责任人。
  • 普通:无默认报警设置,全部基线报警,以用户自主设置为准。

基线类型

包括天基线小时基线两个选项,由加入基线的保障任务的频率决定。

  • 若保障任务是天频率,则选择天基线。
  • 若保障任务是小时频率,则选择小时基线。
  • 保障任务的上游任务,可以是任意频率。

保障任务

添加基线需要保障的任务,可通过任务名称/ID 来搜索添加。

承诺时间

加入基线的保障任务,最晚可接受的完成时间。

  • 天基线:承诺时间可设置为当天、第二天、第三天的具体时间点。
  • 小时基线:支持统一承诺和分时承诺。
    • 统一承诺:全部实例使用相同的承诺时间
    • 分时承诺:不同小时的实例,使用不同的承诺时间,支持设置多个业务时间段范围。
    • 您可单击推荐承诺时间按钮,平台会根据保障任务的历史运行情况,推荐出合适的承诺时间。

预警余量

承诺时间-预警余量即为基线预警时间。一般保障任务发生异常,需要预留多少时间进行处理,预警余量即设置多少。

图片

2.2 监控报警设置

  • 报警类型:基线提供5种报警类型,根据实际需要,您可选择自己想要用的报警。

    报警类型

    报警触发条件

    基线预警

    基线监控的链路上,首个没有在基线预警时间点开始运行的节点。

    基线预测破线

    1. 该节点的上游(直接、间接节点)没有出现过破线。
    2. 该节点没有在预测破线时间点开始运行。

    基线破线加剧

    1. 节点所在链路已发送首次破线报警。
    2. 检查节点运行耗时增加导致破线加剧。
      1. 节点实际开始时间 < 破线开始时间:
        计算过程:节点实际开始时间+(节点平均运行耗时*(1+N%)+(破线开始时间-实际开始时间))。
        将计算得出的时间,作为检测时间点,该节点到达检测时间点,还没有运行完成。
      2. 节点实际开始时间 > 破线开始时间:
        将“节点实际开始时间+(节点平均运行耗时*(1+N%))”作为检测时间点,该节点到达检测时间点,还没有运行完成。

    说明

    N% 为变慢识别算法因子,详见基线事件

    基线保障任务未完成预警

    基线预警时间到达(承诺时间-预警余量),检查基线所有保障任务是否完成运行:

    1. 若有保障任务未运行完成,且基线之前无基线预警、基线破线报警,则触发报警。

    基线保障任务未完成

    基线承诺时间到达,检查基线所有保障任务是否完成运行:

    1. 若有保障任务未运行完成,则触发报警。
    2. 若所有保障任务都已完成运行,基线监控停止(即使基线监控链路上仍然有实例正在运行)。
  • 监控范围:由加入基线的保障任务及其全部上游任务组成。

    • 监控链路上全部任务:默认监控链路上的全部节点。
    • 指定项目:若您需指定具体项目,则仅发送该监控链路上指定项目下节点触发的基线报警。
  • 报警形式说明:

    参数

    说明

    普通

    所有基线报警类型,采用同样的发送形式进行发送。

    高级

    支持根据上方不同基线的报警类型,采用不同的发送形式进行发送。

    发送方式

    支持邮件、短信、电话、Webhook 等方式。注意事项详见:新建监控规则---报警设置

    报警对象

    支持选择项目用户、值班计划配置方式,操作说明详见:新建监控规则---接收人值班计划配置

    报警范围

    由加入基线的保障任务及其全部上游任务组成。

    • 监控链路上全部任务:默认监控链路上的全部节点。
    • 指定项目:若您需指定具体项目,则仅发送该监控链路上指定项目下节点触发的基线报警。

    发送次数

    设置报警发送的次数。

    间隔时间

    设置多次发送告警时,每次发送告警的发送间隔时间。

    免打扰时段

    您可自定义选择是否开启免打扰时间段,在免打扰时间内,不会发送相关报警。

3 添加基线监控

任务开发的不同阶段,可按需进行基线监控的设置,具体操作入口如下:

  • 上线页面:在上线配置页面的监控设置部分,根据实际需要,给任务添加基线监控。
  • 任务运维:通过单任务的添加至基线或批量任务的运行监控 > 添加基线监控,将指定任务添加至基线。
  • 基线管理页面:在基线管理列表中,单击某个规则操作列的编辑按钮,将指定任务,添加至保障任务

4 管理基线列表

基线创建完成后,您可以在基线管理界面,对已创建的基线进行以下管理操作:

  • 筛选:您可以根据基线名称/ID、基线责任人、优先级、基线类型和开启状态等方向,进行已建基线的筛选。
  • 编辑:单击操作列中的编辑按钮,可以对基线进行重新编辑。
  • 开启/关闭:您可以控制基线的状态,选择开发或关闭,只有开启基线后,监控才会生效。
  • 报警 ACK 设置:对不同基线报警类型,选择是否开启报警屏蔽时间,只在规定时间内发送基线告警。
  • 删除:单击操作列中的删除按钮,对当前基线进行删除操作。

5 基线告警 Webhook Url 回传数据格式说明

5.1 回调结构体

基线告警类型包括:基线预警基线预测破线基线破线加剧基线保障任务未完成预警基线保障任务未完成5种,其中:

  • 基线预警基线预测破线基线破线加剧为基线保障任务的上游发出的告警,这些告警发出时表明保障任务产出有可能延迟,因此回调时,需要透出上游任务本身的状态,以及可能受影响的保障任务信息;
  • 基线保障任务未完成预警基线保障任务未完成告警是对保障任务分别在预警时间保障时间是否成功产出的兜底告警,因此回调时,仅需要透传保障任务的状态即可。

综上所述,回调结构体格式如下:

{
    "region": "cn",   // 区域
    "baselineId": 1,  // 基线ID
    "alarmRuleType": 10,  // 告警项ID
    "alarmItemTypeI18n": {   // 告警项名称国际化
        "zhCN": "基线预警",
        "enUS": "Baseline Warning"
    },
    "causeTaskId": 1,        // 导致告警的任务ID
    "causeTaskTime": "2021-07-18", // 导致告警的任务业务时间
    "causeInstanceId": 300000,  // 导致告警的任务实例ID
    "causeTaskInstanceStatus": 5, // 导致告警的任务实例状态CODE
    "causeTaskInstanceStatusStr": "failed", // 导致告警的任务实例状态ALIAS
    "causeProjectId": 1,     // 导致告警的任务所属项目ID
    "affectedCommitTaskInstances": [  // 受影响的保障任务实例信息
        {
            "id": 1,    // 实例ID
            "taskId": 1,    // 保障任务ID
            "taskName": "dorado_task", // 保障任务名称
            "taskFrequency": "DAILY",     // 保障任务频率
            "taskPriority": "CORE_TASK",    // 保障任务优先级
            "taskTimeFormat": "2021-07-17",     // 保障任务的业务时间
            "status": 10,    // 保障任务实例状态ID
            "instanceStatusCollection": "RUNNING"    // 保障任务实例状态描述
        }
    ],
    "alarmTimes": 1   // 告警发送次数
}

5.2 字段说明

字段名

附属字段名

类型

说明

region

String

项目所属区域,取值:cn-beijing、cn-shanghai。

baselineId

Long

基线 ID 信息。

alarmRuleType

Integer

基线告警项类型说明:

  • 基线预警:10;
  • 基线预测破线:11;
  • 基线保障任务未完成:19;
  • 基线破线加剧:20;
  • 基线保障任务未完成预警:21。

alarmItemTypeI18n

告警项名称国际化:

zhCN

String

中文告警项名称

enUS

String

英文告警项名称

causeTaskId

Long

导致告警的任务 ID,告警项类型为基线保障任务未完成预警基线保障任务未完成时,无该字段。

causeTaskTime

String

导致告警的任务业务时间,告警项类型为基线保障任务未完成预警基线保障任务未完成时,无该字段。

causeInstanceId

Long

导致告警的任务实例 ID,告警项类型为基线保障任务未完成预警基线保障任务未完成时,无该字段。

causeTaskInstanceStatus

Integer

导致告警的任务实例状态 CODE,告警项类型为基线保障任务未完成预警基线保障任务未完成时,无该字段。详见离线监控-4.4 实例状态说明

causeTaskInstanceStatusStr

String

导致告警的任务实例状态 ALIAS 解释,告警项类型为基线保障任务未完成预警基线保障任务未完成时,无该字段。详见离线监控-4.4 实例状态说明

causeProjectId

Long

导致告警的任务所属项目 ID,告警项类型为基线保障任务未完成预警基线保障任务未完成时,无该字段。

affectedCommitTaskInstances

受影响的保障任务实例信息:

id

Long

实例 ID, 告警项类型为基线预警基线破线基线破线加剧时,无该字段。实例信息可以通过 taskId+taskTime 去查询。

taskId

Long

保障任务 ID。

taskName

String

保障任务名称。

taskFrequency

String

保障任务频率:every_ten_minutes、hourly、daily、weekly、monthly

taskPriority

String

保障任务优先级:NORMAL、HIGH、SUPER_HIGH、CORE_TASK、SUPER_CORE_TASK

taskTimeFormat

String

保障任务的业务时间。

status

Integer

保障任务实例状态 ID, 告警项类型为基线预警基线破线基线破线加剧时,无该字段。

instanceStatusCollection

String

保障任务实例状态描述,告警项类型为基线预警基线破线基线破线加剧时,无该字段。

alarmTimes

Integer

告警发送次数

5.3 实例状态说明

实例状态说明详见监控规则-4.4 实例状态说明