前端监控现状目前市面上的前端监控系统大多记录资源加载时间、系统错误、统计埋点、UV/PV……对于开发者来说,就是嵌入监控js脚本。监控的前提是:如果监控脚本能够正常加载执行,那么问题就来了。如果某个站点的CDN和DNS出现异常,监控脚本就没有机会加载(更不用说运行了)。网站所有者可能不知道他的网站已关闭很长时间?!监控服务没用……本文提到的监控改进就是为了解决这个痛点。Q:如果站点DNS有问题,请求根本无法到达站点,无法加载监控脚本。如何处理这种情况?A:人肉运维,每天找人看,刷一下页面5分钟,看看网站是否正常,是不是就可以了?A:嗯,基本思路其实是这样的,但是把人肉运维改成Puppeteer,做一个定时任务,每5分钟跑一次监控站点,发现站点马上报警(短信通知)留白,可以看作是监控最终策略系统的具体设计思路,代码:https://github.com/zhentaoo/h...项目分析开发时截图(Atom默认主题+ZSH)1.定时脚本/hawk-eye/scripts/monitor-pp.js**这个脚本每5分钟访问一次zhentaoo.com。稍等片刻,观察渲染是否正常。如果正常:删除上次的正常图片,保存本次的图片,然后请求监控界面。如果异常:删除上面下一张异常图片,保存本次图片,然后请求monitorerr接口。这里很难出现异常情况,所以我每次脚本启动的时候都设置了一个随机值。如果大于>0.7,则认为异常。2.RestfulAPI这里为了简单起见,我直接使用了ThinkJS框架来生成RestfulAPI。有兴趣的也可以看看使用方法,简单易用的文档:https://thinkjs.org/zh-cn/doc...安装2.0脚手架:npminstall-gthinkjs@2初始化项目:thinkjsnewhawk-eye创建restfulapi:thinkjscontrollerhome/monitor-r创建restfulapi:thinkjscontrollerhome/monitorerr-r3.MongoDB这里不会用到,教mongodb安装,如果你不会用到命令行同一行推荐使用robomongo客户端4.项目在线部署图,PM2作为Node进程的管理工具**5.项目运行效果,监控对象行为记录后。关于Puppeteer,我也研究试水了一段时间。大部分应用场景也考虑到了,在github上写了一些不成熟的项目和想法。接下来,我可能会尝试其他的东西,或者用它来做一些事情。希望大家结合自己的需求/业务场景,如果有兴趣全面探究Puppeteer的功能,加入群讨论,
