微信小程序埋点的特点:
微信小程序有有用的生命周期函数 onshow,onhide,onunload。
微信小程序有个页面栈的概念。
微信小程序是个简单的应用,无法维护线程,也无法像ios与android进行一些复杂的数据处理。
针对以上特点,我们为前端提供一个js文件,js里面暴露4个函数,分别供三个生命周期函数和页面点击调用,当生命周期函数和点击触发了日志的时候,即时向日志收集接口发送日志。
现在我们模拟两个页面跳转的过程:
场景一:当在A页面上点击B按钮跳转到C页面的过程中,会首先触发一条B按钮被点击的日志,再触发一条A页面onhide的日志,最后触发一条C页面onshow的日志。
场景二:当页面后退的时候会触发C页面的onunload,A页面的onshow。
在以上的两个动作中会触发2至3条日志,多条日志会分别上传,日志接口将其记录在文件里,flume监视指定的文件夹,将日志产生到消息队列里面;storm从消息队列中消费这个消息,设置一个bolts以一定的时间延迟缓存排序。再将排序后的日志发送到下一个bolts上,根据多条日志类型之间的关系多条合并为一条之后入库。
未完待续