为什么我们要自研掌门教育自己的APM系统
针对数据分析这块,掌门教育内部,后端服务使用的是开源的Apache SkyWalking系统,虽然SkyWalking已经提供了非常方便的SDK,可以满足我们很多场景下的需求。但对于掌门教育目前的一些定制化的前端业务场景,我们很多的业务需求依然难以完全覆盖,以此我们前端需要一套自己的APM系统。
目前天眼系统的使用场景
天眼系统主要是针对外部C端用户信息进行记录,目前掌门教育已经有400+个前端项目,接入天眼系统的应用数量也有100+,接近所有项目总数的30%,主要覆盖Web端、H5、App这些应用场景。
掌门教育天眼系统的模块结构
探针:数据采集、上报是APM系统的发起点,它主要负责在客户端程序中采集数据,并发送到我们服务器端的收集器。针对探针的设计,最大的难点主要在于我们如何去设计,并获取我们需要的数据信息,比如跟用户体验及其相关的95/99线等等。
收集器、存储器:收集、存储器本身只是一个简单的应用程序,但结合到数据源多样化的topic类型、庞大日志量,以及我们要保持系统的稳定性、可靠性,这就对我们提出了更高的技术要求。
数据可视化界面:UI系统是我们另外一个非常核心的应用产品,类似我们常见的PV、UV指标,都需要在这一层中被暴露出去,向我们的业务赋能这些关键数据信息。