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

监控规则

最近更新时间2024.04.07 19:01:13

首次发布时间2021.08.13 15:07:15

离线报警监控功能,支持您通过配置自定义规则,来实现对任务运行状态的监控。本文将为您介绍监控规则配置的相关操作。
通过新建离线任务监控规则,可对任务运行进行监控。一个监控规则可被多个任务使用,一个任务可使用多个任务监控规则。

1 新建监控规则

  1. 登录 DataLeap租户控制台

  2. 在对应项目下点击运维中心 > 离线任务运维 > 报警监控 > 监控规则界面。
    图片

  3. 右上角点击新建监控规则,进入报警设置页面,可以对任务监控规则进行配置,配置信息包括基本信息、监控内容、接收人和报警设置四部分:

    • 基本信息:

      参数

      说明

      规则名称

      输入规则名称,仅支持中英文字符、数字、下划线和中小括号。

      规则对象

      下拉搜索监控的任务对象,可设置多个,您可根据任务 ID 和任务名称进行搜索。

      规则描述

      非必填,您可以添加当前规则的描述信息,或填写在收到报警后,相关的处理方式等。

    • 监控内容:

      参数

      说明

      报警

      失败报警

      • 第 N 次执行失败(N 由您指定),第 N 次执行失败后,开始报警,包含第N次、第N+1、第N+2......次执行失败报警。
      • 重试结束后仍失败。
      • 每一次执行失败。

      超时报警

      • 任务执行超时 N 分钟(N由您指定)。
      • 在设定执行时间 N 分钟/小时后,任务未开始执行(以设定执行时间为基准,往后推算,到点未开始执行,则发送报警,直至任务开始执行)。
      • 在设定执行时间 N 分钟/小时后,任务未结束执行(以设定执行时间为基准,往后推算,到点未开始执行,则发送报警,直至任务结束执行)。
      • 在设定执行时间 N 分钟/小时后,任务未执行成功(以设定执行时间为基准,往后推算,到点检查任务状态,若不是 成功 状态,则发送报警,直至任务执行成功)。
      • 截止北京时间 XX:XX,任务未执行成功( XX:XX 由您指定,到达您指定的时间,检查任务状态,若不是 成功 状态,则发送报警,直至任务执行成功。仅执行频率是天及以上调度频率的任务,可设置该监控)。

      通知

      执行状态

      仅任务执行成功时,才会以邮件形式发送一次通知。

    • 接收人:

      接收人

      说明

      项目用户

      任务监控规则的内容触发后,可将任务责任人或指定项目成员,设置为报警/通知的接收人,支持设置多个接收人。

      说明

      项目用户作为接收人,您需保证接收人在火山控制台 > 访问控制中个人信息邮箱、手机号已填写完整。

      飞书群

      将告警发送至指定的目标飞书群中,您可通过在飞书设置界面,开启 Debug 模式后查看您所在的所有飞书群 ID 信息,支持添加多个群 ID,用英文逗号分隔。飞书群 ID 查看方式详见3 飞书群 ID 信息获取
      飞书群作为接收人,您可选择以下两种发送方式,将告警发送到飞书群中:

      1. 方式一:发送方式勾选为“飞书”或“飞书加急”。
        飞书”和“飞书加急”发送方式,目前默认不展示,此发送方式需要您前往飞书开发者后台,自建一个飞书应用机器人,并将应用机器人添加至对应的飞书群中,且需将租户 ID、应用机器人信息(App ID、App Secret信息)通过提工单的方式,提供给 DataLeap 研发支持同学,进行飞书通知的注册。
        飞书应用机器人创建操作详见1.1 飞书应用机器人创建
      2. 方式二:发送方式勾选为“Webhook”。
        此方式您需在目标飞书群中添加一个自定义机器人,并在其安全设置中,勾选“自定义关键词”,并且输入关键词:DataLeapdataleap
        配置完成后,DataLeap 方可通过自定义机器人生成的 Webhook 地址,将告警消息推送至目标飞书群中,自定义机器人创建方式详见1.2 自定义机器人创建

        注意

        请妥善保管好此 Webhook 地址,不要公布在 GitHub、博客等可公开查阅的网站上,以防止地址泄露后被恶意调用发送垃圾信息。

      值班计划

      您可填写值班计划中的唯一名称信息,支持填写多个值班计划唯一名称,用英文逗号分隔即可。
      图片
      当任务监控规则的内容触发后,根据配置的值班计划,可将告警消息通过下方报警设置 > 发送方式中设置的方式,发送至值班计划中配置的值班人员,您可在值班计划中灵活安排值班人员来处理告警。值班表操作配置详见值班计划

    • 报警设置:

      参数

      说明

      报警形式

      • 当报警形式选择普通时,您可根据需要,设置报警发送次数和发送间隔,同时还能设置免打扰时段。
      • 当报警形式选择紧急时,报警将无限次发送直至接收人手动确认。此时,您无法设置免打扰时段,只能设置每次报警的发送间隔。

      发送方式

      支持邮件、短信、电话、飞书、飞书加急、Webhook 等方式。

      注意

      • 目前火山对于短信发送,有频控限制,每分钟最多发送10条短信。
      • 飞书”和“飞书加急”发送方式,需注意以下几点:
        • 目前界面默认不展示这两种发送方式,需要您前往飞书开发者后台,自建一个飞书应用机器人,并且需将租户 ID、应用机器人信息(App ID、App Secret 信息)通过提工单的方式,提供给 DataLeap 研发支持同学,进行飞书通知的注册。
        • 当告警接收人配置为项目用户任务责任人时,您需额外自建应用机器人并进行飞书账号绑定。
          操作详见1.1 飞书应用机器人创建
      • 发送方式为 Webhook 时,您需注意以下几点:
        • 配置自定义 Webhook 地址时,上方接收人选项配置无效,即告警消息直接通过 Webhook 地址发送,没有告警接收人概念。
        • 填写 Webhook hookUrl 地址,需为 post 类型,且必须添加 http 或 https 协议头。监控规则提交时会进行接口验证,验证机制详见:Webhook 接口验证
        • Webhook 地址也可添加为飞书自定义机器人钉钉自定义机器人中的 Webhook 地址,创建机器人时,关键词可设置为 DataLeapdataleap。详见1.2 自定义机器人创建
        • 请求 body 样例说明详见 4.1 格式样例

      发送次数

      普通的报警形式,您可自定义报警发送次数。

      发送间隔

      每次报警消息发送的时间间隔,以 min 为时间单位。

      免打扰时段

      • 开启:普通报警形式,您可自定义免打扰时间段,在这段时间内,您不会收到报警。
      • 关闭:紧急报警形式时,无法设置免打扰时段。
  4. 规则配置完成后,点击右上角提交按钮,即新建监控规则完成。
    您可以在监控规则界面,进行监控规则的筛选、编辑、删除等操作:

    • 筛选:您可以根据监控内容、报警形式、接收人、以及规则状态进行已建规则的筛选。
    • 详情:您可以点击规则 ID,查看规则的基本信息;同时您也可以对现有规则进行编辑,并重新提交。
    • 开启/关闭:您可以控制规则的状态,只有开启规则后,监控才会生效。
    • 删除:点击操作列中的删除按钮,可以进行监控规则的删除。

2 监控规则添加

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

  • 开发页面:点击某个已上线的任务,进入配置页面,选择页面右上角的任务监控 > 运行监控,进入该任务的运行监控设置页面,进行监控规则设置。
  • 提交上线页面:任务提交上线时,点击任务编辑栏左上角的提交上线图标按钮,在提交上线页面的监控设置部分,根据实际需要,给任务添加任务监控规则。
  • 任务运维页面:通过单任务操作列的运行监控或批量任务的运行监控 > 添加监控规则,给指定任务进行监控规则设置。
  • 监控规则页面:在监控规则列表中,点击某个规则操作列的编辑按钮,可以将指定的任务添加至规则对象

3 默认监控规则

为快速配置任务运行保底监控,使任务不至于处于裸跑状态,项目设置中推出默认监控设置。一旦启用,新任务上线时,将自动使用已设置的默认监控规则。 默认监控规则分为两大类,分别是默认监控规则离线自定义监控规则

  • 默认监控规则:由系统统一制定,不可修改。配置内容默认为重试结束仍失败,邮件发送一次,接收人为任务负责人。
  • 离线自定义监控规则:自行创建的监控规则,具体由您在编辑项目页面自行配置。

图片

4 离线任务告警 Webhook Url 回传数据格式说明

下文将为您介绍离线任务监控规则,通过 Webhook 方式,发起请求示例及相关字段说明。

4.1 格式样例

{
  "taskId": 123456,
  "instanceId": 123456,
  "projectId": 123456,
  "taskName": "t1",
  "taskTime": "2020-03-01 00:00:00",
  "instanceStatus": 1,
  "region": "cn",
  "alarmRuleType": 1,
  "scheduleRunTime": "2020-03-01 00:00:00",
  "startTime": "2020-03-01 00:00:00",
  "endTime": "2020-03-01 01:00:00",
  "businessId":"xxxxxxxx",
  "triggerTypeAlias":"",
  "triggerId": 1,
  "triggerType": 10,
  "retryCount": 1
}

4.2 字段说明

字段名

类型

说明

taskId

Long

任务ID

instanceId

Long

实例ID

projectId

Long

项目ID

taskName

String

任务名称

taskTime

String

业务时间

instanceStatus

Integer

详见下方-4.4 实例状态说明

region

String

取值:cn-beijing,cn-shanghai

alarmRuleType

Integer

详见下方-4.3 报警项类型说明

scheduleRunTime

String

设定的运行时间

startTime

String

开始运行时间

endTime

String

结束运行时间

businessId

String

实例 businessId

triggerTypeAlias

String

任务调度类型

triggerId

Long

实例Trigger Id

triggerType

Integer

实例Trigger 类型(例行,重跑等)

retryCount

Integer

第几次重试

4.3 报警项类型说明(alarmRuleType)

报警项 ID

说明

1

every_failed,即每一次失败均发送告警。

2

success,实例运行成功发送告警。

3

running_timeout,实例运行时间超过设定阈值时告警。

4

retry_failed,实例重试结束仍失败后发送告警。

5

failed_from_n_times,从第 N 次重试执行失败后告警。

6

latest_not_start,实例超过设定的执行时间还未开始执行时告警。

7

latest_not_end,实例超过设定时间未运行结束时发送告警。

8

latest_not_success,实例超过设定时间未运行成功时发送告警。

9

fixed_time_not_success,实例超过设定的截止时间未运行成功时发送告警。

4.4 实例状态说明(instanceStatus)

实例状态码

说明

1

未就绪

2

等待执行

3

运行中

4

成功

5

失败

6

终止

7

终止状态(会重试)

8

真正终态,不会再更新的状态

30

提交前

-1

非终止状态(未完成)

4.5 调度类型说明(triggerTypeAlias)

num

alias

说明

1

system

系统调度

2

manual

手动调度

10

rerun

实例重跑

11

backfill

回溯

13

debug

任务调试

14

query

临时查询

16

backfill_split

回溯:下游分批执行