业务报警与检测

业务报警与检测

说明

检测与报警,大概分为以下几部分:
1. 基础服务的稳定性
    1. 云服务器
    2. DDoS
2. 应用服务器的稳定性
    1. ???
3. 关键业务的报警  

关键业务报警具体例子

  1. 背景
现有业务漏斗: APP总活跃用户数(p1) -> APP点击活动页面用户数(p2) -> APP进入下单页面用户数(p3) -> APP产生订单用户数(p4) -> APP产生付费订单用户数(p5),
现在需要检测 p1~p5每个上一次到下一级的转化率是否在合理范围内,如果不合理,则通过短信报警。
  1. 根据现有的架构,用到的具体技术如下:
    1. linux cron tab
    2. sparing quartz
    3. sqoop
    4. spark
    5. oozie-workflow
    6. oozie-coordinator
    7. rabbitMQ
  2. 流程图
    流程图

  3. 具体实现

    1. 业务db -> 数据中心db
      1. spring-quartz,每5分钟同步业务表数据到数据中心db中
    2. linux cron tab 每10分钟把数据从mysql导入hive

      */10 7-23 * * * /bin/sh /data/hadoop/sqoopShell/check_funnel_import.sh >/data/hadoop/sqoopShell/log/check_funnel_import.sh 2>&1 &
    3. spark 每10分钟 运行sql监测一下业务数据
      ![MacDown image]
      这里写图片描述

    4. 如有异常,发送警报消息至RabbitMQ

    private static void sendToMq(String phoneNum, String msg) {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setUsername(username);
        factory.setPassword(password);
        factory.setHost(host);
        factory.setPort(port);
    
        Connection connection = null;
        Channel channel = null;
        try {
            connection = factory.newConnection();
            channel = connection.createChannel();
    
            channel.exchangeDeclare(EXCHANGE_MSG, "direct", true);
    
            Map<String, Object> arguments = new HashMap<>();
            arguments.put("x-ha-policy", "all");
            channel.queueDeclare(QUEUE_MSG, true, false, false, null);
    
            channel.queueBind(QUEUE_MSG, EXCHANGE_MSG, ROUTINGKEY_MSG);
    
            // content
            Map<String, Object> map = new HashMap<>();
            map.put("mobile", phoneNum);
            map.put("content", msg);
            String sendMsg = JsonConverterUtil.objectToJson(map);
    
            byte[] msgBytes = sendMsg.getBytes("UTF-8");
    
            channel.basicPublish(EXCHANGE_MSG, ROUTINGKEY_MSG, null, msgBytes);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TimeoutException e) {
            e.printStackTrace();
        } finally {
            if(channel != null) {
                try {
                    channel.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (TimeoutException e) {
                    e.printStackTrace();
                }
            }
    
            if(connection != null) {
                try {
                    connection.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值