测试中的综合交易和监控

对于任何严肃的应用程序来说,监控都是必不可少的。如果您没有关于系统状态的实时信息,您就不能希望运行一个高度可用的系统。在当今时代,放弃这种跨功能需求几乎是疏忽大意。

测试中的综合交易和监控-南华中天

监控有许多方面可以通过使用略有不同的工具来涵盖。其中一些工具专门针对技术方面。一个例子是基础设施的状态或在微服务中观察到的错误。这无疑是重要的,但它也不能说明用户与您的软件互动的方式。这就是为什么您希望使用从用户的角度看待您的应用程序的工具来增强您的监控能力。这是一个有价值的观点,揭示了许多隐藏的问题。在这篇文章中,我想谈谈合成事务监控。这是一种通过模拟真实用户的动作来监控系统的方法。

什么是合成交易?

“合成交易”一词并不是您每天都能听到的。所以在我们进入监控部分之前,让我们先谈谈这个。合成事务是模拟用户在应用程序中的操作的脚本或工具。

假设我们正在谈论一个 Web 应用程序。它可以针对 API 运行。大多数现代应用程序都会公开一些 API,这些 API 很自然地需要检查。用户通常不会直接与您的 API 交互,尽管在某些情况下您希望保存来自实际活动的一系列调用。

通常,用户从真正的浏览器访问您的应用程序。因此,合成事务也必须在此环境中运行。在这种情况下,脚本模拟用户在浏览器中执行的操作。这些动作,从头到尾,在你的系统中完成一个流程。一种或另一种方式,您希望以一种可以重复运行它们的格式存储这些操作。然后,您可以在闲暇时再次执行它们。

在合成交易之上监控

正如您可能已经猜到的那样,综合监控是关于使用我们刚刚讨论的综合事务来监控您的系统。本质上,您的监控工具会定期运行您从不同位置定义的脚本。然后它会编译结果并为您汇总数据。

当您使用这种类型的监控时,您需要注意以下几点:

  • 您知道这些交易是否有效。
  • 你有历史。它跟踪每次运行的时间及其结果。
  • 您可以访问具有详细粒度的每次运行的时间信息。

与其他监控机制相比,有一个关键的区别:监控本身是应用程序中触发流量的一个。

测试中的综合交易和监控-南华中天

合成监控非常有用

现在我们知道了这种监控的作用,是时候询问它的价值了。对你有什么好处?是否值得将此方法纳入您的生态系统?

我已经简要提到了这一点。您从综合监控中获得的最重要价值是一个新的视角。鉴于您模拟实际交互,结果接近于用户体验您的应用程序的方式,这是一个强大的信号。从业务角度考虑:您的利益相关者可能并不特别关心服务器的内存使用情况,但我敢打赌,他们非常有兴趣了解您的结帐流程是否仍然正常运行。

所以这是第一个好处。您确保您的核心流程仍在运行。这听起来很基本,但您不会相信组织经常不确定他们的应用程序是否有效。

此外,您还可以获得详细的性能信息。您的监控系统存储的所有这些运行都显示了您的应用程序在实际流程中的运行速度。请记住,性能很重要。

最后,您有机会过渡到基于警报的方法。如果应用程序的核心流程出现故障,那听起来肯定是您想尽快解决的问题,不是吗?您可能希望将这些警报连接到您的事件管理软件,以确保快速通知待命的人。

设置综合监控

设置此监控会有所不同,具体取决于您选择的监控工具,尽管它们之间有一些相似之处。如果您监控 API,则需要配置对正确端点的调用以及传递适当的标头和参数。它看起来很像使用Postman。如果您要检查经过身份验证的路由,则需要使用例如OAuth2提供凭据。

同时,基于浏览器的测试通常使用一个界面,您可以在其中结合多个导航步骤、断言和其他原语来构建用户浏览您网站的旅程。如果您更喜欢靠近代码,他们倾向于通过JavaScript支持自定义脚本。

测试和监控之间的模糊界限

我不了解你,但对我来说,这些合成交易听起来很像端到端测试。测试什么时候结束,什么时候开始监控?

这是一条模糊的线!通过两个镜头看它:

  • 就时间而言,测试发生在发布之前和发布之后的监控。
  • 就意图而言,您进行测试以防止错误传递给您的用户,并进行监控以尽快发现错误。

这是一个很好的心智模型,但是作为一个组织,你越快,就越难将它们区分开来。如果您遵循Accelerate背后的原则,则四个关键指标之一是平均恢复时间 (MTTR)。优化该指标需要快速检测错误部署,如果没有精确可靠的监控,这几乎是不可能的。

测试中的综合交易和监控-南华中天

在我看来,随着你的速度越来越快,两者最终都会成为同一枚硬币的不同面。您可以在任何地方运行合成事务,具体取决于它们正在测试或监控的上下文。

综合监控在综合监控设置中的位置

综合监测与其他类型的监测共存。如果您正在彻底监控您的应用程序,那么您的工具带中有多种监控方式:

  • 应用程序性能监控 ( APM )
  • 真实用户监控 ( RUM )
  • 基础设施监控

这个类比并不完美,但我认为它很好地表明了这些测试的位置。

在我看来,合成交易不是观察基本构建块的工具。信号中有太多噪声,无论如何其他工具更充分地实现了这一目的。但是,提供系统的高级概述是这个概念真正闪耀的地方。毕竟,您是在模拟真实用户的行为,不是吗?这是您美味的监控蛋糕上的樱桃!

增强您的监控能力

让我们回顾一下我们学到的东西。合成事务模拟用户在应用程序中的操作。我们以这些交易为核心建立监控。我们一遍又一遍地收集这些脚本并收集有关结果及其性能的数据。当您在设置中添加一个非常接近客户体验您的应用程序的方式的监控层时,它非常有用。合成只是一件,属于一个更大的监控生态系统。结合其他监控变体,它们为操作您平台的人们提供可观察性和高枕无忧。如果您对此感兴趣,投资于监控是构建弹性系统的关键。