监控平台_项目存活监控(二)

项目存活监控

  • 查询数据库监控数据
  • 如果Redis中没有报错次数 size为null
    • 响应状态码失败
  • 如果Redis中已经存在报错次数 size不为null
    • 项目地址响应不成功
    • 响应成功
  • 下发短信
  • 下发微信

查询数据库监控数据

监控平台_项目存活监控(二)_第1张图片

select
          id, entry_name, ip,port, ver_url, phone,open_id,alarm_state ,state,release_start_time,release_end_time, create_Time, update_Time, delete_Time, flag
        from mhaqjk.mhaq_survival
        where flag = 0  and NOW() NOT BETWEEN release_start_time AND release_end_time

在这里插入图片描述

发起调用url 返回响应状态码code。
查询 Redis缓存,返回size(报错次数)

如果Redis中没有报错次数 size为null

响应状态码失败

如果redis中没有size报错次数,且项目地址访问失败,(报警状态为0)就下发微信,
并且设置redis 为1;
否则(就是redis中没有报错次数,但是项目地址访问通了,)就设置redis为0;
监控平台_项目存活监控(二)_第2张图片

如果Redis中已经存在报错次数 size不为null

监控平台_项目存活监控(二)_第3张图片

项目地址响应不成功

(Redis中已经存在报警信息,且项目地址不通)报警状态为0,下发微信通知
如果(报警次数等于1次或者小于3次),报警状态为0,下发短信通知
如果是(报警次数size大于33次了,就是半个小时后还是报错),再次下发短信通知
设置Redis 为1 ,(即重置Redis报警次数size),并更新数据。

并设置 平台存活状态status为0,更新数据,Redis中报错次数+1;

响应成功

(Redis中已经存在报警次数size,但是这次响应成功)就把redis中报警次数重置为0 ,设置平台存活状态为1, 更新数据库。

(只要平台不通就下发微信,前三分钟发短信,等到三十分钟后再次发送短信)

下发短信

监控平台_项目存活监控(二)_第4张图片
参数:MhaqSurvival
如果报警状态是1的话,直接返回,不发送短信;
否则的话就构建一个参数Map:templateParamsMap
参数:

String content="平台:"+survival.getEntryName()+":"+survival.getVerUrl()+"失效";

获取手机号码String getPhones = survival.getPhone();
新建一个集合infos;
判断获取到的手机号码是否为空,如果不为空,通过,切割手机号码字符串,
新建一个日志实体类MhaqInfoLog infoLog = new MhaqInfoLog();
记录发送日志信息;
然后发送短信,参数是手机号,templateParamsMap

下发微信

监控平台_项目存活监控(二)_第5张图片
如果报警状态是1的话直接返回,不用下发。
参数是:MhaqSurvival
获得getOpenId,获得urlgetVerUrl
将OpenID通过,分割,
在这里插入图片描述
获取时间time;
循环遍历OpenId数组,新建paras集合,

List<TemplateParam> paras=new ArrayList<TemplateParam>();
				paras.add(new TemplateParam("first","百事通加盟平台存活预警:","#930093"));
				paras.add(new TemplateParam("time",time,"#0044BB"));
				paras.add(new TemplateParam("ip_list",verUrl,"#0044BB"));
				paras.add(new TemplateParam("sec_type",content,"#0044BB"));
				monitorService.sendMsgByWeiXing(paras, openId, time);	

构建模板参数,下发微信。

你可能感兴趣的:(项目总结)