You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们
导航

创建模板规则

最近更新时间2023.08.17 19:24:08

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

模板意在定义监控校验规则,方便后期复用。

1 前提条件

已在概览页面购买大数据分析湖仓一体DataOps 敏捷研发分布式数据自治解决方案。

2 操作步骤

  1. 登录 DataLeap 控制台。

  2. 选择数据质量 > 数据监控 > 离线数据监控 > 监控对象,直接进入监控对象的模板规则页面。

  3. 在页面右上角的项目下拉列表中,选择要管理项目。

  4. 引擎下拉列表中,选择要配置的引擎和对应的实例。

  5. 创建监控对象。

    1. 单击 +监控对象按钮,在弹出的窗口中,设置监控对象信息。

    2. 单击确定按钮,对象添加成功并显示在监控对象列表中。

  6. 创建监控规则。

    1. 单击某个监控对象的新建规则按钮,进入该对象的新建监控规则页面。

    2. 设置规则信息后,单击完成或者完成并试跑按钮,完成规则创建。

      • 单击完成按钮,完成规则创建。

      • 单击完成并试跑按钮,在弹出的窗口中选择试跑时间后,单击确定按钮,完成规则创建并直接试跑调试。

创建模板规则相关参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

参数说明

*引擎

要创建规则的数据库存储引擎,支持 EMR 和 LAS 两种引擎,下拉可选。

  • LAS:直接选择。

  • EMR:需选择使用的实例。

新建监控对象

*库表名

创建监控对象的库、表名称,支持按表录入按库录入两种设置方式。

  • 按表录入:输入库名.表名,单击添加按钮,添加一张表。可分次添加多个库表。

  • 按库录入:在库名下拉列表中选择数据库后,在表名下拉列表中选择需要监控的数据表,单击添加按钮,添加一张表。选择库表时,支持模糊搜索,并可分次添加多个库表。

新建监控规则

*监控对象

显示要创建规则的监控对象,不可编辑。
该参数在新建监控对象时配置。

*选择分区

根据表的现有分区,自动识别,可编辑。
若没有可用分区,可通过添加分区按钮添加。

规则配置

*规则类型

支持表行数、重复值、空值、异常值、表字段等模板类型,下拉可选。

  • 表行数:计算该分区下的表行数,通常用于校验任务完成后产出的分区数据为空的异常情况,或者根据自己需求检验表行数的一些波动情况。表行数的计算定义:count(*)

  • 重复值:选择1或者1+个字段,计算重复值占比,通常用于联合主键重复值校验,计算方式为count(*)-count(distinct key)/count(*)。

  • 空值:特殊的异常值监控,以NULL、空字符串或自定义的空值类型(比如unknown)检测某字段或者1+个字段的空值占比。

  • 异常值:根据提供的正常值或异常值列表/表达式,计算异常值的个数或占比。

  • 表字段:选择某个字段,再选择一种字段的计算方式,如sum(money),再监控这个指标。

*规则名称监控规则名称,自动填充,可编辑。

*监控字段

要监控的数据表字段名称,下拉可选。
规则类型选择重复值空值异常值表字段时,需配置该参数。

*空值类型

支持 NULL、空字符串和自定义三种选项。
规则类型选择空值时,需配置该参数。

*匹配逻辑

支持正常值列表和异常值列表两个选项。
规则类型选择异常值时,需配置该参数。

*匹配方式

支持枚举值和正则表达式两个选项。
规则类型选择异常值时,需配置该参数。

*匹配内容

  • 匹配方式选择枚举值时,需输入枚举值进行匹配。其中,填入hive_none代表为空值,填入hive_empty代表为空字符串。

  • 匹配方式选择正则表达式时,需输入正则表达式进行匹配。例如,匹配手机号示例:^1[34578]\d{9}$

规则类型选择异常值时,需配置该参数。

*计算方式

监控某字段所采取的计算方式,支持sum、count、avg 和 count distinct 四个选项。
规则类型选择表字段时,需配置该参数。

*报警条件

是指规则发出报警时,指标需要满足的条件。当监控指标被计算出来 后,如果满足报警条件,就会发出报警。
报警条件支持数值类型、波动率、动态阈值、重复值占比、空值占比等的报警,多个报警条件之间的关系默认为,可改为

  • 数值:即定义的计算指标本身,如sum(money)、count(*)等,该指标会直接跟设定的阈值做对比,判断是否报警。例如:

    • 监控规则:表行数数值超过2000发出报警。

    • 报警判断:假设监控检测出的表行数数值为2500,与设定的阈值(2000)做对比,发现超过阈值,于是发出报警。

  • 波动率(单位为%):根据当次监控规则计算出的指标结果,与某段时间内或某个时间点的该指标做比值,计算出波动率后,再与设定的阈值进行比较判断。例如:

    • 监控规则:表行数相比7天前波动率超过20%发出报警。

    • 监控流程:算出当天的表行数数值后(假设为2500)后,会与7天前的表行数(假设为2000)做计算, 波动率算出来为上升25%,于是判定结果为报警。

    目前支持的波动率类型与计算方式有:

    • 相比前一周期波动率:(当次检测值 - 前一周期检测值)/前一周期检测值

    • 相比1天前波动率:(当次检测值 - 1天前检测值)/1天前检测值

    • 相比7天前波动率:(当次检测值 - 7天前检测值)/7天前检测值

    • 相比7天内均值波动率:(当次检测值 - 7天内检测值的均值)/7天内检测值的均值

    • 相比30天内均值波动率:(当次检测值 - 30天内检测值的均值)/30天内检测值的均值

  • 动态阈值:根据历史分区的数据来预测下一个分区的行数范围,如果新分区的行数不在这个区间范围内会发出报警。动态阈值适用场景说明请参见动态阈值使用说明

说明

  • 动态阈值与其他报警条件不能同时配置,即若报警条件选择动态阈值,则无法再新增其他类型的报警条件。

  • 根据规则类型的不同,对应的报警条件选项也不同,以页面实际选项为准。

执行方式

*执行方式

监控规则的执行方式,支持关联任务、定时调度和暂不设置三种方式。

  • 关联任务:按照关联任务的调度时间执行。

  • 定时调度:自行设置监控规则的执行时间。

  • 暂不设置:暂不执行。

*任务名称

要关联任务的名称,可通过任务名称关键词或ID进行搜索选择。
执行方式选择关联任务时,需设置该参数。

*规则强弱

提供强、弱两个配置选项。

  • 当选择时,需设置熔断方式。任务执行完成之后会进入强规则运行阶段,由熔断方式决定下游任务运行情况。

  • 如果是弱规则,任务会继续运行,如果失败仅发生报警通知,不会阻塞下游任务运行。

执行方式选择关联任务时,需设置该参数。

注意

由于动态阈值存在误报风险,当报警条件选择动态阈值时,请谨慎选择强规则。

*熔断方式

如果是强规则,可选择以下两种熔断方式:

  • 在规则运行完成之前,实例将一直处于运行中状态:是指若触发强规则告警,则实例状态置为失败,阻塞下游任务运行;若正常完成则置为成功。

  • 若规则运行超过 X 分钟仍未结束,直接置实例为成功:是指规则运行超过设定时间,会触发告警通知,下游仍会继续运行,但可能存在数据质量污染风险,需要及时关注监控结果。超时时间可自行设定,取值范围为0~200。

*执行频率

任务监控规则执行频率,提供分钟级、小时级、天级三个选项。
执行方式选择定时调度时,需设置该参数。

*执行时间

根据执行频率,设置具体的执行时间。
执行方式选择定时调度时,需设置该参数。

报警设置
*报警方式支持邮箱、短信和 Webhook 的告警方式。

*Webhook

Webhook 请求地址,以 http 或 https 开头。
从下拉列表中选择 http 或 https,填写 Webhook URL 地址。欲了解详细的配置说明,请参见 Webhook 使用说明
报警方式选择 Webhook 时,需设置该参数。

*报警接收支持多个接收人。

*重复方式

可选择是否重复发送告警信息给相关接收人。

  • 否,单次报警:仅发送一次报警通知,无需ACK(Acknowledgement)。

  • 是,需ACK:表示会重复发送报警通知,需要ACK来中断报警。

    • 重复报警频率

      若不及时ACK,系统会从首次报警起至次日(天级监控至次日00:00点;小时级监控至次日对应小时)按照固定频率(电话监控每隔10分钟)发起规则校验,若不通过则触发报警。

    • 报警ACK

      1. ACK表示您已知晓这个报警信息,并会采取相应行动处理,不希望再次收到报警。ACK某个监控后,在设置的时间段内不会重复报警,最长23小时59分钟,过期后将再次发起重复检测。

    综上,建议及时ACK或进行任务/数据处理!

高级设置
重试条件运行失败
运行参数按需配置 SQL 语句前的运行参数,如“set 参数名1=取值;”。
过滤条件where之后的条件语句,语法逻辑跟HSQL一致,无需输入Where, 如 type='xxx'。
自定义报警自定义报警时间,支持按需设置北京或 UTC 时间,下拉可选。

3 动态阈值使用说明

创建模板规则过程中,当规则类型选择表行数时,可以配置动态阈值报警。
动态阈值可以根据历史分区的数据来预测下一个分区的行数范围,如果新分区的行数不在这个区间范围内会发出报警。
分析发现,表行数的数据分布主要有以下几种分布形态:

分布单调不减(A)整体上升,偶尔下降(B)固定不变(C)变动频率小(D)其他
图示例

动态阈值在上述A、B、C、D四种分布上效果更佳。因此,开启动态阈值报警前,建议先查看一下历史表行数的数据走势,以判断该报警条件是否适用。

4 Webhook 使用说明

创建监控规则过程中,当您选择 Webhook 报警方式时,需注册 Webhook URL,后续报警会发送到注册的 URL。您可以根据 URL 的请求,制定后续的问题处理流程。

4.1 WebHook 配置

  1. 报警方式下拉列表中,选择 Webhook

  2. 配置 WebHook:从下拉列表中选择 httphttps 后,填写 hookUrl。

    URL 地址示例如下:

    volc_quality_test.volcwebhook.xxx/xx/webhook
    

4.2 hookUrl 验证

输入 hookUrl 后,单击显示的验证按钮进行验证。
验证时,会给 hookUrl 发送带 challenge 的请求,challenge 为随机整数。接到请求后需要将 challenge 原样返回,才可验证通过。验证示例如下:

  • 验证的 Request body

    {
        "source": null
        "region": null
        "type": null
        "rule_name": null
        "callback_url": null
        "target_type": null
        "target": null
        "content": null
        "event_time": "2020-03-01 00:00:00", // 报警时间,消息通知时间
        "owners": null
        "challenge": 1230201 // 随机整数
    }
    
  • Response body 示例

    {
        "status": 0,  //状态码,0
        "data": {
            "challenge": 1230201 // 传递原来的数值           
        }
    }
    

4.3 Webhook 请求

配置 URL 告警时会给 URL 地址发送请求,具体样例如下:

  • Request body 示例

    {
        "source": "quality",  // 源系统的中文名称
        "region": "cn",     // 源系统的部署环境
        "type": 1,          // 报警/消息:枚举值:1、报警   2、消息
        "rule_name": "xxx_rule",       // 源系统中产生事件的规则名称
        "callback_url": "url_to_rule", // 源系统中产生事件的规则回调地址URL
        "target_type": "table",        // 区分描述对象的大类,比如:任务、数据库、表
        "target": "test_tb",           // 描述具体的事件对象,一般信息包含:对象名称及具体名称值
        "content": "alarm content",    // 描述发生事件的具体内容,即为:报警内容 或 通知内容
        "event_time": "2020-03-01 00:00:00", // 报警时间,消息通知时间
        "owners": "test,test2"         // 此次事件的直接负责人
        "challenge": null
    }
    
  • Response body 示例

    {
        "status": 0,  //状态码,0
        "data": null
    }
    

4.4 网络要求

要确保消息服务能够访问 hookUrl 的网络,对 hookUrl 的 IP/域名网络说明如下:

  • 若 IP/域名位于公网或公共服务区,则可以访问。

  • 若 IP/域名位于售卖区私网,则需要注册 shuttle server 后,通过 shuttle 转发才可访问。

    说明

    需要提供服务 vpc id、IP、port,联系租户管理员注册 shuttle server。