2020.4.25 前端如何搞监控前端
搭建平台开发的组件太多,实际上不少功能相似,须要监控组件在一类场景下效能如何
组件监控的指标sql
App、小程序监控
监控目的:小程序
工具
以宋小菜为例:
----
初版后端
第二版微信小程序
第三版浏览器
系统架构
----
客户端: PC/H五、RN、小程序
日志处理: log-transfer、Filebeat、Kafka集群、ElasticSearch
数据处理: Data Warehouse、监控系统后台
数据展示:可视化报表平台、监控看板
微信
以贝贝举例:
假设有80个工程项目,每一年须要支付28W左右监控费用 > 本身研发成本
业界方案对比(有必定偏差,仅供参考):
markdown
根据业务咱们能够看到主要有两种场景,cookie
这两种场景的步骤也是不一样的。
用户监控: 埋点-> 采集 -> 计算 -> 分析
错误监控:错误收集-> 错误上报 -> 数据清洗 -> 数据持久化 -> 平台可视化、监控
错误监控实现层面来自贝贝的 Allen 讲师已经讲的很详细了,我这里用脑图整理了一下。
Web端错误监控脑图:网络
其余端
上面这套闭环的Web端监控,在其余端怎么用?其实主要是在第一层应用接入去作文章。
思路: 差别化采集、格式化上报
JS端:
错误捕获: ErrorUtils、Promise.rejection Tracking
网络请求: 替换XMLHttpRequest, 代理 send/open/onload 等方法
Native端:
微信小程序:
网络请求:代理全局wx的wx.request对象
代码实现:
React 端:
为何选择ES和Mysql?
存储介质对比:
接下来是对营销、广告场景的监控分析:
监测用户行为、事件、留存 -> 上报数据,能够分红下面几个级别:
采集哪些数据
经过单个页面咱们能够得到的一些结论:
如何采集用户停留时间?
怎么采集事件?
鼠标、滚动、键盘、自定义事件
具体实现:
怎么将采集到的数据转换为人能够理解的指标?
流程:搭建指标体系 -> 获取数据 -> 数据分析 -> 具体到应用场景
举例1:用户登陆或者游客访问
三个框对应 浏览器数据、事件数据、用户数据,自动生成uuid,和userid关联,将 uuid 和 userid 存储到cookie
举例2:用户跳转
跳转时记录来源, 项目ID、页面ID、区块ID、坑位下标、串联ID,
在下个页面,从URL获取utm值。而后进行页面上报
数据清洗案例:
怎么分析?
针对用户采集能够采用阿里云 Log Service,主要功能是查询和统计
分析什么?
如何分析基础数据 PV、UV、点击数、曝光数
使用漏斗模型,分析转化率
用热力图分析页面
经过漏斗和路径分析来分析转化率
符号化后去除了大量版本间的差别,对错误聚合提供了方便
初级聚合: 全内容散列,聚合度低
将错误直接MD5散列, 这样聚合度会比较低,
通用优化:
而后对这些信息进行散列
针对优化:
同一类错误,有时候客户端不一样系统版本之间的系统
解决: 抽取业务代码堆栈和业务名称来散列
OOM错误,堆栈溢出
这一类错误,直接拿到错误名聚合,而后分析在哪些设备上容易出现
数据量较大,全部数据并不是写在一个索引中,这个时候须要按时或按天创建索引保存数据
同时,须要创建一个固定的索引模版,索引某一字段的数据类型必定要统一,不然会形成数据保存失败的状况。
字段问题:
哪些字段不变,哪些字段动态会变化的,须要设计系统时进行衡量,保持适度的灵活。
变化的字段集中在 pyload 信息,其余类型字段都是固定的,好比:
字段字符化处理:
若是使用JSON类型进行上报 且在ES中依然保存为JSON数据,虽然存在索引模版,但在模版没有照顾到的字段上报上来会生成新字段,于是形成字段数量爆炸、这时候就可使用log-transfer
......
因为后面还有事情,因此今天的活动没有听完,只对我听过的一些进行了整理。
从业务上来看,监控的场景分为错误监控和用户行为监控,固然还有阿里更复杂的组件级别、场景级别的监控(目前遇不到)。同时学习了一些监控实现的步骤、像埋点、采集。清洗、分析以前都是没有接触过的。
贝贝的两位讲师内容很接近落地方案,后续PPT还得多看看,若是有这方面的需求也会更多的去了解。
关于前端早早聊大会:前端早早聊大会目标成为用得上、听得懂、抄得走的技术大会,计划 2020 年办 >= 15 期,由前端早早聊与掘金联合举办,前端早早聊大会行程动态、录播视频/PPT/讲稿资料下载请关注 「前端早早聊」 公众号跟进。
5 月 16 日举办第六届 - 前端到底怎么玩 Serverless(Paas|Faas),报名请戳:huodongxing.com/go/tl6,海报及讲师行程以下: