网络分析与监控:阿里云拨测方案解密

作者:俞嵩(榆松)

随着互联网的蓬勃发展,网络和服务的稳定性已成为社会秩序中不可或缺的一部分。一旦网络和服务发生故障,其带来的后果将波及整个社会、企业和民众的生活质量,造成难以估量的损失。

  • 2020 年 12 月: Akamai 的 DNS 服务中断,导致包括银行和航空公司在内的众多美国企业官网无法访问。
  • 2021 年 6 月: Fastly CDN 故障,影响了《纽约时报》、亚马逊、Twitch 和 Reddit 等网站的正常运行。
  • 2021 年 10 月: Facebook 遭遇大规模宕机,旗下 Facebook、Instagram 和 WhatsApp 三大社交平台全球范围内停摆长达六小时。
  • 2022 年 12 月: 阿里云香港可用区 C 服务中断,故障持续超过十二小时,严重影响了大量企业的日常运营。

在这样的背景下,拨测(Sythetic Monitoring)作为可观测在网络性能和用户体验监控场景下的核心功能,借助全球覆盖的网络探测节点,模拟用户请求对目标服务/域名/IP 等进行主动网络拨测,监控目标地址在不同地域、运营商网络环境下访问的可用性、性能和用户体验。使用拨测功能,不仅能加速故障发现与定位过程,还能帮助企业优化网络资源配置和访问链路,从而提升整体业务效率及用户体验。

本文主要介绍一下拨测的主要功能和应用场景,所有功能和截图都来自于阿里云可观测团队云监控的拨测产品:网络分析与监控

https://www.aliyun.com/activity/daily/naam

网络拨测和 RUM (真实用户监控)有何不同

网络拨测和 RUM 都是用户数字体验监控的两个核心功能。拨测为模拟用户请求,RUM 为真实用户客户端的请求数据采集。两者各有优劣势,从不同维度帮助用户发现服务性能和体验问题。用户可根据自己的业务和需求选择其一或结合使用效果最佳。拨测相比 RUM 的主要优劣势如下:

优势:

  • 非侵入式部署:无需前端集成任何 SDK 代码即可快速启用。
  • 前瞻性故障检测:通过主动发起测试,在实际用户遭遇问题前预先识别并解决潜在故障。
  • 预发布全网验证:允许企业在正式推出产品之前或者在新地域开服前进行全面的网络兼容性和稳定性测试。

劣势:

  • 仿真性:RUM 为真实终端用户请求数据采集,拨测为模拟请求,不能完全真实反应用户体验
  • 覆盖面:无法捕捉所有可能的用户行为和交互场景,一些复杂的用户行为无法模拟。无法定位和分析单一用户维度的问题。

网络拨测的分类和典型场景

协议拨测(可用性拨测)

协议拨测通过使用不同的网络层协议(DNS, HTTP, TCP, UDP, PING, MTR,WEBSOCKET 等)模拟用户的在线行为来分析互联网服务和网络的表现,旨在确保服务的稳定运行,并通过分析延迟、丢包率等关键指标优化用户体验。

1)可用性监控: 从世界各地的不同城市运营商节点定期检查网站是否可访问,以便于提前预警可能影响业务连续性的风险。同时支持用户对探测结果是否"可用"的自定义断言规则,包含响应延时,状态码,响应头,响应 body 的内容匹配,以及证书过期检查等。

2)网络质量监控: 采用网络拨测测量各地区各运营商到服务之间的网络状况,帮助决策者制定有效的链路优化和网络产品部署决策,如 CDN 测速,出海网络架构优化,游戏用户比较关注的运营商链路性能分析等。

3)DNS 解析劫持监控: 确保重要域名能够被正确解析,防止因 DNS 配置错误和运营商 DNS 劫持导致的服务中断现象发生。由于每个运营商每个省甚至到一些城市都有自己独立的 local dns 服务器,每个地区运营商对域名的管理和封禁策略也经常不同。所以对一些受监管比较严格的行业和服务如果需要及时发现自己的域名在某个城市遭到了封禁策略的影响就需要配置拨测任务并部署覆盖全面的探测节点,及时发现问题,及时向当地运营商反馈申请解封。

4)竞品分析: 对比同类竞品网站的页面访问性能和体验,提升服务在同类行业中的访问体验。

浏览器拨测

基于分布在全球各地的探测节点,通过使用真实浏览器(Chrome,Firefox, Edge,Safari 等)打开目标站点页面。该功能不仅能够准确反映网页加载时间,还能深入剖析页面中每个元素的渲染效率,并支持在线录制用户浏览行为(User Journey)在探测中回放验证完整的多步业务流程, 最后还能保存探测时刻的网页截图帮助用户更加直观的定位页面渲染问题。

1)用户体验分析: 追踪页面首次渲染、主要内容呈现直至完全交互所需的时间,为提升视觉反馈速度提供数据支撑。

2)页面元素优化: 利用瀑布流图揭示拖慢整个文档加载进度的具体因素,助力开发者精确定位瓶颈所在。

3)页面投毒检测: 检测是否存在未授权第三方内容注入的情况,保障网站免受恶意软件攻击,如 CDN 投毒,JS 投毒等造成的页面篡改劫持问题。如某个静态资源是否需要配置 CDN 优化性能,某个动态资源是否需要配置全球加速获取更快的回源性能。

4)用户行为完整性校验: 通过录制完整的用户行为(如:登陆,浏览,搜索,购买,下单等 User Journey),在探测中回放完整用户行为,验证完整且复杂的业务流程。

内网拨测

聚焦于云上内网环境下服务和实例的健康状态,此类拨测有助于维护云上内网服务的可用性和性能。

1)VPC 连通性监控: 持续监视云上 vpc 内各实例间的网络连通性,及时发现并修复连接障碍。

2)云服务巡检: 全面审核托管在云端的各项内网服务和云产品实例(如 RDS, REDIS 等),确认其正常运作且符合预期标准。

探测点分类

在拨测工具中,探测点的种类主要分四大类型,用户需要根据业务的类型,自身的需求和成本的考量选择不同类型的探测节点:

  • 云主机探测点: 探测节点为阿里云,微软,谷歌,亚马逊等云上的机器资源。网络出口为多线路 BGP。探测结果稳定,噪声小,适用于只关注整体服务可用性,但不特别强调具体 ISP 线路特性差异的场景。同时因为仿真性差,也无法发现运营商出现的劫持和链路性能故障问题。
  • 运营商 IDC: 探测节点为部署在各大电信运营商数据中心内的物理设备,网络出口为单线指定运营商。探测结果稳定,噪声小,适合那些希望深入了解自身服务在中国乃至全世界范围内不同运营商环境下表现差异的企业。能够发现大部分运营商 DNS 劫持和链路性能故障问题,少量运营商在接入端的流量劫持问题无法识别。
  • PC 端 Lastmile 网民: 探测节点为部署在家庭环境下的网民客户端资源,探测结果稳定性一般,有一定噪声,成本略高,但仿真性好,探测结果视角更贴近大众日常生活中的实际体验,可以发现从接入端到 Backbone 的故障。
  • 移动端网民: 探测节点为部署在家庭环境下的网民手机移动端资源,探测结果稳定性一般,有一定噪声,仿真性好,成本略高,代表了当今社会越来越依赖手机和平板电脑上网的趋势,尽管这类样本可能存在较大的波动性,但对于理解移动应用性能至关重要。

不同拨测点探测可用率和性能对比:

总结

总之,网络和服务的稳定性在当今社会中至关重要。通过拨测(Synthetic Monitoring)技术,企业可以主动监控和优化其服务的可用性、性能和用户体验。每种拨测类型和拨测点类型都有其特定的应用场景和优势。通过合理选择探测节点并实施多层次的拨测策略,企业不仅能提前发现潜在故障,还能优化资源配置和提升整体业务效率。最终,这将为企业提供更加稳定可靠的服务,保障用户的高质量体验。

欢迎大家来体验来自阿里云可观测团队云监控的拨测产品:网络分析与监控

https://www.aliyun.com/activity/daily/naam

相关推荐
莳花微语几秒前
Oracle 用户/权限/角色管理
数据库·oracle
GUIQU.3 分钟前
【Oracle】游标
数据库·oracle
平平无奇。。。3 分钟前
Mysql库的操作和表的操作
linux·数据库·mysql
雪花凌落的盛夏6 分钟前
PostgreSQL数据库备份
数据库·postgresql
Lao A(zhou liang)的菜园7 分钟前
Oracle双平面适用场景讨论会议
数据库·平面·oracle
小小星球之旅8 分钟前
redis缓存常见问题
数据库·redis·学习·缓存
小李是个程序10 分钟前
数据库完整性
数据库·sql
GreatSQL20 分钟前
GreatSQL连接数被打满的3种紧急解决方案
数据库
TDengine (老段)24 分钟前
TDengine 高级功能——读缓存
大数据·数据库·缓存·时序数据库·tdengine·涛思数据·iotdb
雷神乐乐29 分钟前
Oracle中的循环——FOR循环、WHILE循环和LOOP循环
数据库·sql·oracle·循环