51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1179|回复: 0

[原创] 数据质量线上监控的案例(下)

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:11
  • 签到天数: 932 天

    连续签到: 4 天

    [LV.10]测试总司令

    发表于 2022-11-8 11:32:54 | 显示全部楼层 |阅读模式
    三、实时数据(流处理)的线上监控详解
      1 实时数据描述
      今日实时数据的统计时间均为今日零时截至当前更新时间,有赞数据中心实时数据主要分为店铺和商品两个维度,会对交易(正逆向)、流量、营销、商品多个业务方的数据做处理,最后结果数据落入底层存储,涉及的处理组件为Flink,底层存储为druid和TIDB。
      1.1 准确性规则-线上监控梳理
      实时数据的准确性校验分为上下游数据对比、昨日实时与昨日离线数据对比。
      上下游数据对比:是指业务方binglog日志传到数据侧时,在TIDB存入明细数据,按指标统计规则处理后与底层存储对比。
      昨日实时与昨日离线数据对比:是指昨日实时数据完全落库后,通过接口再提取出来与昨日离线的数据进行比较。
      1.2 及时性规则-线上监控梳理
      实时数据及时性,上层表象为实时指标不变或者变化缓慢,下层表象是kafka有积压,导致延迟的主要影响因子是Flink的配置和集群资源,对于集群和kafka的监控由运维同学cover,暂不做详细介绍。
      2 线上监控规则的实现
      上下游数据对比,执行时间为:全天每20分钟执行一轮,一轮校验500次,均不相等时,触发告警。

    1. <font size="3">@Override

    2.     @Scheduled(cron="0 0/20 * * * ?")

    3.     public void teamOrderCheck() {

    4.         tidbCheck();

    5.         druidCheck();

    6.     }

    7.     public void druidCheck() {




    8.         boolean druidAlert = true;

    9.         try {

    10.             //druid

    11.             for (int i = 0; i < 500; i++){

    12.                 boolean res = checkOnceTeamOrder();

    13.                 if (res){

    14.                     druidAlert = false;

    15.                     break;

    16.                 }

    17.                 Thread.sleep(2000 );

    18.             }

    19.             String druidPayCnt = getDruidPayCnt();

    20.             String detailPayCnt = getDetailPayCnt();

    21.             if (druidAlert && !druidPayCnt.equals(detailPayCnt)){

    22.                 log.warn("500次检测均不通过.");

    23.                 String  content = "实时交易数据异常预警:druid 统计支付订单数:%s, 交易明细支付订单数:%s";

    24.                 alertBiz.commonAlert(String.format(content,druidPayCnt, detailPayCnt));

    25.             }

    26.         }catch(Exception e){

    27.             log.warn("team order check error.");

    28.         }

    29.     }</font>
    复制代码


    昨日实时和昨日离线数据对比,是基于接口自动化平台,分别调用数据应用的实时指标统计与离线接口,因依赖昨日离线数据,所以执行时间为每天早上7点,10分钟轮询调度方式,示例如下图:



     四、线上监控效果
      21年上半年以来,线上监控累计预警问题25+,其中18个是延迟性问题,有1个问题升级为故障,能够较好的在商家发现问题前,响应和处理,为商家正常使用准确的数据进行运营决策保驾护航。
      五、后续规划
      在数据质量线上监控实践中,仍有一些事项没有去落地,比如告警影响面评估、数据质量监控大盘等
      【告警影响面评估】出现告警时,需要确认监控的业务影响范围有哪些,不仅仅可以给到客满同学,在回复商家咨询问题时更精准,更是可以在问题修复后,可以进行准确的回归测试。
      【数据质量监控大盘】BI报表承接了元数管理平台的监控统计,而当前监控涉及多个平台,需要对各平台的监控数据做实时聚合统计,会涉及指标设计、实时任务、前后端的开发。





    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-19 05:45 , Processed in 0.065222 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表