Jeremy Martin 2022-09-01
APM(应用性能监控)、RUM(真实用户监控)、数据中心监控、终端用户监控、后端监控、前端监控、Web 性能监控……这些只是用于描述网站和 Web 应用监控方式的部分术语。有些术语较为宽泛,有些则非常具体;有些彼此重叠,有些则是同义词。
Web 性能监控可能令人难以理清头绪。要理解 Web 应用性能监控工具,最好的起点是先了解两大主要类别之间的区别:后端监控与前端监控。
在本文中,我们将详细解析后端监控与前端监控之间的差异,帮助你将其付诸实践。
什么是后端监控?
后端监控使用户能够查看支撑 Web 应用运行的基础设施组件的性能表现。这些组件包括 HTTP 服务器、中间件、数据库、第三方 API 服务等。每个组件可能有多个实例(例如多台 HTTP 服务器),并且这些组件可以部署在同一数据中心,也可以分布在多个数据中心。
为什么后端监控很重要?
后端监控能让你快速发现系统何时出现问题。驱动 Web 应用的每个组件都可能遇到各种问题,例如:
- 软件性能问题
- 内存问题
- 代码缺陷(Bug)
- 系统级软件问题(如操作系统故障、安全漏洞)
- 硬件问题(如内存耗尽、磁盘空间不足、磁盘故障、网卡故障)
这类问题在 Web 环境中不可避免,但往往因未能及时发现而导致影响比实际更严重。通过实施后端监控,网站所有者可以在问题发生时立即收到告警,从而避免数小时后自己访问网站才发现宕机——或者更糟,从客户口中得知网站已无法使用。问题发现得越早,解决得就越快。
后端监控与 SLA(服务等级协议)
除了上述优势,后端监控还能帮助网站所有者与其基础设施提供商设定并追踪 SLA。凭借对问题发生时间、地点及性质的详细数据,网站所有者可以确保自己获得所支付费用对应的服务质量。
什么是前端监控?
前端监控从用户视角全面呈现 Web 应用的性能表现,包括所有第三方内容。前端监控也被称为“用户体验监控”或“终端用户监控”:它描绘了真实用户在请求你的网站时实际看到的情况。由于用户的位置、浏览器类型、网络连接速度等多种因素,不同用户访问你网站时的前端体验可能存在巨大差异。前端监控正是为了揭示这些差异。
虽然后端监控能提醒你自有组件是否发生故障,但前端监控则能揭示那些并非由组件故障直接引起的性能问题,例如:
- 内容问题:例如网站新增了一张过大的图片,拖慢整体加载速度;或 Facebook 等第三方脚本服务中断,导致你的网站变慢。
- 浏览器兼容性问题:例如使用 Firefox 13 的用户页面加载速度远慢于其他浏览器用户。
- 地理位置相关问题:例如亚洲用户访问速度明显慢于其他地区用户。
- 网络问题:尤其是“最后一公里”连接成为瓶颈(在移动设备上尤为常见)。
简而言之,前端监控之所以重要,是因为前端就是用户所见,而用户体验才是最终决定成败的关键。如果你的网站加载太慢或体验不佳,就会流失访客和客户。
三种前端监控解决方案
前端监控领域的解决方案通过不同方式收集数据,主要有以下三类:
1. RUM(真实用户监控,Real User Monitoring)
此类方案通过在浏览器中注入 JavaScript,在真实用户访问网站时实时采集性能数据。RUM 非常适合用于发现性能趋势和模式。
局限性:难以精确定位问题根源(通常不提供瀑布图),且告警响应速度较慢。
2. 模拟浏览器(Simulated Browsers)
这种方案使用模拟浏览器访问网页或 Web 应用。它是成本最低的监控方式,但准确性有限,因为模拟浏览器无法完全还原真实用户的体验。
3. 真实浏览器监控(Real-Browser Monitoring)
该方案使用真实的浏览器(而非模拟器)访问网站或应用,能够精确反映在特定浏览器、地理位置和网络连接条件下用户实际看到的内容。这使你能在用户真正遇到问题之前,针对特定场景优化网站性能。