Grafana Labs

Building an end-to-end reliability testing strategy with Grafana Cloud

6.9内容质量

TL;DR · AI 摘要

Building an end-to-end reliability testing strategy with Grafana Cloud Grafana Labs Building an end-to-end reliability t...

核心要点

  • 主题聚焦:Building an end-to-end reliability testing strat
  • 来源:Grafana Labs,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#前端#后端#云计算
打开原文

使用 Grafana Cloud 构建端到端可靠性测试策略 | Grafana Labs

使用 Grafana Cloud 构建端到端可靠性测试策略

Bukola Ayodele

2026-07-13

8分钟

现代应用可能以多种方式失效,从性能回归和前端错误到在高负载下崩溃的系统。由于没有任何单一的测试或监控方法能捕捉所有类型的故障,有效的可靠性测试需要多层防护,在应用发布前、发布中和发布后验证其稳定性。

在本文中,我们将探讨 Grafana Cloud 中的三个解决方案——合成监控(Synthetic Monitoring)前端可观测性(Frontend Observability)k6——如何协同工作,形成全面的可靠性测试策略。虽然没有单一工具能讲述完整故事,但通过分层组合,它们能填补空白,防止故障未被发现。

为展示如何将这三种解决方案结合使用,我们将通过一个示例进行说明:QuickPizza,这是一个简单的演示型 Web 应用,用于生成披萨组合。

瑞士奶酪模型:为什么单一工具不足以应对可靠性测试

风险管理领域有一个著名的框架,称为瑞士奶酪模型(Swiss Cheese Model)。该模型最初用于解释如何预防和减少复杂系统(如航空和医疗)中的事故,但它同样适用于软件可靠性。

核心思想很简单:分层策略通过依次叠加多种方法,使软件在通过各层时,部分问题会被早期发现,剩余问题则被后续层拦截。当软件到达最终用户时,问题数量会显著减少。

“瑞士奶酪”的比喻之所以有效,是因为每片奶酪上的孔洞代表了单一层级失效的方式。但若叠加足够多的层级,所有层级的孔洞完全对齐从而让故障抵达用户的可能性就会变得极低。想象一下开车:你有安全带、速度表、后视镜、车道辅助和安全气囊。没有单一功能能防止所有事故,但它们共同作用能大幅降低灾难性结果的风险。软件工程中的可靠性测试同样遵循这一原理。

针对软件可靠性,我们可以将瑞士奶酪模型应用于 Grafana Cloud 可靠性测试工具栈中的三个工具。每个工具通过不同方式运作,捕捉其他工具遗漏的问题。当它们叠加在一起时,能显著减少影响终端用户的问题数量。

第一层:使用 Grafana Cloud 合成监控检测回归问题

让我们从第一层开始:Grafana Cloud 合成监控(Synthetic Monitoring)。合成监控是一种黑盒监控方案,通过全球范围内的公共和私有探针,持续定期监控应用和服务的性能。它是你的第一道防线,在真实用户访问之前验证关键工作流是否按预期运行。

在 Grafana Cloud 中使用合成监控,你可以运行多种检查,包括:

  • HTTP 检查,验证端点是否返回正确的状态码和响应时间
  • 浏览器检查,模拟多步骤用户流程(如登录、结账或表单提交)
  • DNS 检查,确认域名解析是否正常工作
  • TCP 检查,验证服务在网络层是否可达
  • Ping 检查,进行基本的运行状态确认

合成监控最有价值的功能之一是其全球探针网络,该网络允许您从全球各地的公共和私有探针运行检查,以查看不同地区的用户如何体验您的服务。特定数据中心的减速会在用户察觉之前通过区域探针结果体现出来。由于合成监控会按照预定计划运行,与真实用户流量无关,因此对于发现关键工作流程中的回归问题特别有价值。如果新部署在凌晨2点悄然破坏了某个功能,合成监控会检测到并通知您。

为了更直观地理解这一点,让我们看看我们的演示应用QuickPizza。我们设置了多个合成监控检查,以主动监控不同的用户流程。我们创建的检查之一是获取披萨功能的浏览器检查,该功能为用户提供披萨推荐。

该浏览器检查每2分钟运行一次,使我们能够全球范围内了解卡尔加里、开普敦和海得拉巴等不同地区的用户如何体验该功能。我们收到通知称,尽管正常运行时间达到100%,可访问性为98%,但平均延迟为4.87秒,比预期要慢。这正是合成监控第一层设计用来揭示的问题类型。在这些问题开始大规模影响用户之前,我们可以调查并解决延迟比预期慢的原因。

第二层:Grafana Cloud前端可观测性,了解真实用户影响

合成监控在问题到达用户之前主动发现问题是很有用的,但它也有局限性。它只能测试您设置检查的内容,无法告诉您真实用户实际如何体验您的服务。这就是第二层的作用所在。

Grafana Cloud前端可观测性提供实时、可操作的见解,帮助您了解用户如何体验应用程序。它允许您在一个地方将前端健康状况与后端数据相关联,从而更快地识别和解决问题。

一旦您的服务使用了Grafana Faro SDK(一个开源的JavaScript监控库)进行监控,您的应用就会将真实用户数据发送到Grafana Cloud,预构建的仪表板会展示团队真正需要的指标,包括:

  • 核心网页指标,从真实用户的视角衡量加载性能、交互性和视觉稳定性
  • 错误概览,帮助您识别、优先处理和排查前端应用中的错误
  • 会话跟踪,用于检查从进入页面到离开页面的完整用户旅程

为了更直观地理解这一点,让我们看看我们的QuickPizza前端可观测性仪表板。有两件事立刻引起注意。首先,首次内容绘制(FCP) 为3.58秒,表现不佳。FCP衡量浏览器从DOM中渲染第一个内容块(无论是文本、图片还是SVG元素)所需的时间。它是页面在用户导航到页面后响应速度最清晰的信号之一。3.58秒意味着用户需要盯着空白屏幕的时间过长。

第二,有六处JavaScript错误显示了一条信息:“披萨错误:检测到菠萝!这违反了古老的披萨法律。请自行承担风险!”这些错误没有被我们的合成检查捕获,因为合成检查只能验证您脚本中编写的内容。真实用户数据会暴露意外情况和实际会话中在真实条件下发生的错误。这就是前端可观测性设计用来捕获的问题。

第三层:Grafana Cloud k6 用于验证负载下的性能

让我们进入最后一层:Grafana Cloud k6。合成监控验证关键工作流在全球环境中是否按预期运行,前端可观测性则向您展示真实用户在生产环境中如何体验您的应用。Grafana Cloud k6 是让您在发布前发现问题并验证性能的层,使您在高流量事件冲击生产环境之前获得信心。

k6 是一款以开发者为中心的性能测试工具,允许您使用JavaScript编写负载测试。您可以模拟现实的流量模式,模拟数百或数千个并发用户,并在脚本中断言性能阈值,该脚本可以提交到您的代码库并在CI中运行。使用k6,您可以运行多种测试,包括烟雾测试、压力测试和峰值测试,以了解系统在不同条件下的表现。

在事件发生前后,k6 也发挥着关键作用。一旦您通过合成监控和前端可观测性的信号识别并修复了一个性能问题,k6 就是验证修复方案是否在负载下有效,而不仅仅是正常条件下的有效工具。它完成了闭环,防止回归问题上线。

要实际了解这一点,QuickPizza 仓库包含各种k6测试。查看浏览器测试,它模拟真实用户访问应用,确认页面加载,点击主按钮,并验证推荐内容是否返回。两个check调用是通过/失败断言:正确的页面是否加载,功能是否正常?这与合成监控验证的流程相同,但现在在高负载下进行测试,以查看当用户同时执行该工作流时的表现。在发布前运行此测试,可以确认功能在高负载情况下是否稳定;在修复后运行此测试,可以确认任何回归问题是否已解决。

总结

没有单一工具能讲述完整的故事,但将这三种方法分层结合,使您能够发现各种问题,验证其实际影响,并确认您的修复方案确实有效。在我们的QuickPizza示例中,我们看到每一层都填补了关键空白:合成监控主动标记了获取披萨流程中的延迟回归,前端可观测性揭示了用户实际受影响的范围,而k6则确认了系统在高流量条件下的稳定性。

通过将合成监控、前端可观测性和k6叠加使用,您可以创建一个全面的测试策略,故障必须绕过多个独立层才能到达您的用户。这是直接应用于软件可靠性的“瑞士奶酪模型”,这也是现代工程团队能够自信发布的方式。

准备好开始了吗?Grafana Cloud 提供了包含所有三种工具的慷慨免费层级:

  • 合成监控:文档 | 视频系列 | 实时仪表板
  • 前端可观测性:文档 | 视频系列 | 实时仪表板
  • Grafana Cloud k6:文档

Grafana Cloud 是开始使用指标、日志、追踪、仪表板等的最简单方式。我们提供慷慨的永久免费层级以及适用于每种使用场景的计划。立即免费注册!

标签

性能测试

Grafana Cloud

合成监控

前端可观测性

Grafana Cloud k6