微信小程序请求数据显示不及时_微信公众号后台数据监控系统

点击“编外气象人”关注我们吧 系统简介

当前通过微信公众号开展气象服务是一种非常重要的方式。微信除了作为全民社交APP之外,还有订阅号、服务号、小程序等多种媒体传播方式,公众气象服务已经越来越多的借助微信平台进行二次开发并对外提供服务。今天给大家分享一个针对微信公众号后台数据监控的气象业务系统,该系统功能是实时对微信端展示的气象数据、产品以及服务器进行监控和报警,通过为运维管理员及时发送报警短信的方式,快速定位数据缺失种类并采取及时有效措施,从而解决微信前端数据不正常或者更新不及时问题。

设计方案

1、 设计目标

对气象北京的微信公众号相关数据流程进行监控,确定从数据分发、接收、处理、接口调用等各个环节的数据状态和程序状态,提供关于数据状态和程序状态的显示,对异常状态进行报警。从而快速发现、定位和解决流程中的问题。

2、 设计原则

标准化:本系统采用的技术架构均遵循网络协议和传输标准的要求,相关开源及原创技术均符合国际技术组织条款规范。

可扩展性:由于数据的种类会不断发展,使用人数将也将扩大,只要横向扩展增加服务器台数,不用添加其它附加设备,以保证用户的原投资被利用。

可用性和可靠性:选用NGIX作为负载均衡器,采用了Tomcat作为Web应用容器,操作系统采用CenOS7.5,从而减少了其它因素造成的故障。

易用性:该系统使用界面良好,用户无需安装客户端软件,只需通过浏览器就可进行实时操作,同时系统架构设计优良,可以很方便进行系统升级。

实时性:该系统支持负载均衡技术,及时响应多人实时并发操作。

高效性:采用消息中间件等技术,实时监控能快速显示。

正确性:数据的处理状态等能正确的采集、显示。

功能设计

气象北京微信后台数据的监控系统分为两部分功能:第一是各个系统日志的采集和存取;第二是各种异常情况的判断,以及对监控结果的展示和通知。如图所示:

19fc8134b46878ecd25ea320b4da22e6.png

流程设计

(1)通过采集程序获取日志文件的更新内容,将日志存储在influxdb中。

(2)客户端通过Web应用服务器,查询来自于influexdb中的日志信息,判断出问题的时间。

                                7f10d50e694cd301132c274d5dadd69c.png                                                             

日志采集与处理

在微信服务器后台部署日志采集程序,按照RESTful方式采集数据接口日志,采用FTP方式传输的文件直接采集FTP的日志文件。通过日志搜索以及返回值类型判断数据总量并定位数据状态,再通过前端显示和报警短信发送完成监控操作。RESTful方式示例:

请求地址:

操作

Request

协议

HTTP

方式

RESTtFul

URL全路径(将数据存入ElastSearch)

http://10.0.0.1:8888/restApi/saveEs

请求参数:

请求方式

必选

数据类型

长度

备注

json

Y

JSONObject

Body请求

返回数据:

序号

返回值

中文名

备注

1

status

请求状态码

0请求成功,1 请求失败

2

Msg

信息

success 请求成功,lose 请求失败

搜索日志操作

请求地址:

操作

Request

协议

HTTP

方式

Post

URL全路径(查询该时间段内的所有日志)

http://10.0.0.1:8888/es/queryEsFileNameTrue?startTime=YYYY-MM-ddHH:mm&endTime=YYYY-MM-dd HH:mm

URL全路径(查询该时间段内该系统的所有日志)

http://10.0.0.1:8888/es/queryEsFileNameTrue?startTime=YYYY-MM-ddHH:mm&endTime=YYYY-MM-dd HH:mm&types=XXXXXX

URL全路径(查询该时间段内该系统内该资料类型下的所有日志)

http://10.0.0.1:8888/es/queryEsFileNameTrue?startTime=YYYY-MM-ddHH:mm&endTime=YYYY-MM-dd HH:mm&types=XXXXXX&dataType=XXXXXX

请求参数:

序号

参数名

中文名称

必选

数据类型

长度

备注

1

startTime

第一个参数

Y

String

15

YYYY-MM-dd HH:mm

2

endTime

第二个参数

Y

String

15

YYYY-MM-dd HH:mm

3

types

第三个参数

N

String

系统标识

4

dataType

第四个参数

N

String

资料编码

返回数据:

序号

返回值

中文名

备注

1

status

请求状态码

0请求成功,1 请求失败

2

Msg

信息

success 请求成功,lose 请求失败

3

Data

数据

Json

请求示例(查询该时间段内的类型总数):

http://10.0.0.1:8888/es/queryEsFileNameTrue?startTime=2017-12-0500:00&endTime=2018-12-05 23:59

请求示例(查询该时间段内该系统的类型总数):

Http://10.0.0.1:8888/es/queryEsFileNameTrue?types=CCCC.SYSTEM.DATA.DATAFLOW&startTime=2017-12-0500:00&endTime=2018-12-05 23:59

请求示例(查询该时间段内该系统内该资料类型下的类型总数):

Http://10.224.96.133:8888/es/queryEsFileNameTrue?types=CCCC.SYSTEM.DATA.DATAFLOW&dataType=E.0015.0001.S002&startTime=2017-12-05 00:00&endTime=2018-12-05 23:59

监控展示页面设计与实现

2ebccb9757c8e8ccd4dca6bffdb9c9b2.png

报警短信设计与实现

942972b45ce7f5642587fc509908cfd4.png

结语

目前该系统已上线一年的时间,运行平稳,报警及时,当数据缺失或者没有及时更新时会发送报警短信,运维保障人员接收到短信后第一时间进行处理,从而保证气象服务质量,同时也让微信端的监控实现自动化,节省了人力成本。

9c215bd224a6eb4904d8de719209a02f.png d4fda5ff504c22ee05e273925541af55.png微信号:amuoqizhan扫码联系作者加入读者交流群-扫码关注我们- 9ab7d41a47fe16c4679b0050226f8c8f.png

如果您觉得这篇文章有用或者对你有所启发,欢迎转发。此外,为了和读者朋友深入交流,我组建了“编外气象人”读者交流群,有兴趣可以扫码作者微信,加入读者交流群一起畅聊气象。先到先得,群满为止!

d4fda5ff504c22ee05e273925541af55.pngEND 1a6a14d8a1ac7bd8a3e5be6fcfae0e95.gif点击上方“蓝字”,发现更多精彩。
应用场景1、监听线上未知错误// 例如:调用错误 var result = {} console.log(result.data.msg) // 抛出错误2、记录用户操作路径,更方便重现错误小程序使用1、引入资源在app.js中加入dist目录下的xbossdebug.min.js,记得放在App对象上面var xbossdebug = require('xbossdebug.min.js') // 引用xbossdebug xbossdebug.config.key = 'maizuo' // key为自定义唯一值,用于后端记录时区分应用 xbossdebug.config.url = 'https://domain.com/'; // 上报服务端地址 // 可选参数 xbossdebug.config.setSystemInfo = true; // 获取系统信息 xbossdebug.config.setLocation = true; // 获取用户位置信息2、测试是否正常使用App({   onLaunch: function () {     xbossdebug.error('error')   } })3、控制台查看network,如果看到一个指向你配置url的请求,那就成功了。// 发送的结构如下 {     key: String // 应用唯一id     breadcrumbs: Array // 函数执行面包线,方便用于错误重现     error: String // 错误堆栈信息     systemInfo: Object // 用户系统信息     notifierVersion: String // 插件版本     locationInfo: Object // 用户位置信息 }高级配置如果你的应用日志量较大,可以通过以下参数合并日志和随机抽样。xbossdebug.config.random = 1 // 默认为1,表示100%上报,如果设置0.5,就会随机上报 xbossdebug.config.repeat = 5 // 重复上报次数(对于同一个错误超过多少次不上报) xbossdebug.config.mergeReport = true, // mergeReport 是否合并上报, false 关闭, true 启动(默认) xbossdebug.config.except = [ /^Script error\.?/, /^Javascript error: Script error\.? on line 0/ ], // 忽略某个错误二次开发1**、安装依赖**// 进入项目目录安装依赖 npm install // 安装rollup,用于js编译打包 npm install -g rollup2、开发模式 (监听代码变化,生成xbossdebug.js)npm run watch3、编译(生成xbossdebug.min.js)npm run build方案设计思想TODO服务端记录数据数据并可视化资源加载监控页面性能监控typescript版本✅自动化单元测试参考资料代码思想参考fundebug,如果大家觉得还不错,希望大家支持fundebug的saas服务。代码风格参考https://github.com/gomeplusFED/GER
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值