《阿里云可观测最佳实践》——6.核桃编程(1): https://developer.aliyun.com/article/1227052
3 解决方案
建设前端可观测体系,最好的捷径是参考互联网领域头部企业的案例,选择云计算厂商提供的完整方案。阿里巴巴多年实战积累了一套全集团统一的前端监控方案,并开放给各个事业部接入。对于以HTML页面形式呈现的前端应用,不管是PC端/移动端网站,嵌入到移动端App的HTML5页面,都可以通过无侵入的方式接入到这套前端监控方案中。
这套监控方案也同时通过阿里云对外输出,成为阿里云可观测性整体方案的重要组成部分,服务于广大的外部用户。
在客户端监控领域,包括ARMS前端监控和APP监控两个产品,其中ARMS前端监控专注于Web端体验数据监控,从页面打开速度、页面稳定性和外部服务调用成功率这三个方面监测Web页面的健康度,帮助使用者降低页面加载时间、减少JS错误,有效提升用户体验。
这套方案正好能补齐核桃编程在客户端监控领域的能力缺失,所以核桃技术团队尝试在一些业务线接入阿里云ARMS前端监控。很快,他们就感受到了这套方案对于提升用户体验所带来的价值。
ARMS前端监控方案之所以能被核桃编程采纳,有一个很重要的原因是方案的接入是非常简单的,唯一要做的事情是在客户端HTML页面的Body元素中加入一段由ARMS提供的统计接入脚本(一段JavaScript代码),就能完成监控数据的自动上报。这其中不涉及到任何跟业务层主动埋点的工作,在核桃编程的多条业务线之间推广起来是非常顺利的。基于之前的经验,凡是需要在业务层主动埋点的监控方案,都需要通过行政手段来保证多个研发团队在编写代码的时候遵守既定的规则,这样的方式从长期来看都是很难落地的。包括在服务端全链路监控方面,核桃编程也始终遵循业务无侵入的思路,避免主动埋点行为。
接下来,研发人员就能从前端监控控制台全面了解应用端到端的健康程度,包括PV/UV情况统计、页面加载速度情况、JavaScript执行情况,API请求成功率等多个方面。以页面加载速度为例,ARMS可以基于客户端自动上报的监控数据,实时展示每一个页面的加载情况。
其中,首次渲染时间、首屏时间、Dom Ready等指标都是HTML页面独有性能指标,遵循业务标准的指标定义。这些指标数据和前端页面健康程度息息相关,影响着最终用户每一次交互行为的实际体验。
通过页面加载瀑布图,能够按照页面加载的顺序,直观地展示各阶段的耗时情况。这些指标参数涵盖了网络层面的性能指标,当网络层面出现性能瓶颈,比如应用系统的接入带宽不能支撑用户访问流量的时候,仅仅通过服务端观测手段,是无法洞察到的,必须依赖于客户端的实时监控数据上报。通过ARMS前端监控,核桃编程能从页面生产时(服务器端状态)、页面加载时和页面运行时这三个方面,全面了解到每一个应用系统端到端的健康程度。
《阿里云可观测最佳实践》——6.核桃编程(3): https://developer.aliyun.com/article/1227048