使用 InfluxDB 进行基础设施监控 | 现场演示

立即观看

Real User Monitoring(真实用户监控)

Real User Monitoring(真实用户监控,RUM)是收集用户数据的过程,旨在深入了解您的应用程序的性能及其使用方式。

Real User Monitoring(真实用户监控,RUM)是一种旨在提供有关应用程序前端性能的有价值的洞察的技术。RUM 使开发人员能够做出更好的决策,它提供的洞察只能通过查看实际用户如何在真实环境中(而非开发人员在设计应用程序时认为的使用方式)使用应用程序来获得。

什么是真实用户监控?

当使用 RUM 工具时,应用中的用户行为会映射到一系列事件,然后这些事件会转化为指标和日志,从而能够生成前所未有的用户活动和会话的可见性。

这样,开发人员可以立即识别可能导致这些用户会话性能不佳的问题,从而有机会尽快解决这些问题,以免对最终用户造成负面影响。

  • RUM 如此有用的原因之一在于它允许开发人员以易于任何人理解和从中得出结论的方式可视化端到端的用户历程。
  • 不仅如此,您还可以将事物分解为按国家/地区、某人可能正在使用的特定设备类型甚至应用程序本身分隔的指标。

真实用户监控如何工作?

RUM 是一种被世界各地许多开发人员采用的被动监控类型。“被动”一词在此处使用是因为该技术依赖于一系列服务,这些服务不断在后台收集有关特定应用程序或系统的性能数据。

整体功能,加上可用性甚至响应速度,只是正在评估的众多质量中的一小部分。

这与另一种称为合成监控的网络监控类型不同,后者是更主动的监控。在这里,一系列行为脚本在浏览器中执行,以帮助模拟最终用户在应用程序甚至网站中导航时的体验。

主要区别在于 RUM 实际上是从浏览器或设备在单个用户会话期间直接收集其所有信息。它不是对正在发生的事情的“模拟”理解,而是报告实际体验并提供完整的画面。

它通过嵌入在应用程序中或网站上每个页面上的 Javascript 来实现这一点。该脚本从最终用户的角度收集关键信息,所有这些信息随后都会传输回开发人员以用于分析目的

由于 Real User Monitoring(真实用户监控)从如此大量的用户那里收集聚合数据,因此数据可视化不是建议,而实际上是必需的。

  • 这是因为从关键指标中获得了如此多的信息,以至于仅仅跟踪所有信息都可能很快被证明是一场艰苦的战斗,更不用说实际上从中获得有价值的洞察有多么困难了。
  • 然后,这些数据可以以图表、图形等形式呈现,所有这些都有助于揭示可能原本不会被发现的趋势和模式。

RUM 的关键组件

在本节中,您将了解在您的应用程序中实施真实用户监控系统所需的一些关键部分。

数据收集

第一步是实施一种方法来跟踪客户端设备和您自己的后端服务器上的用户行为。为 RUM 收集的数据可以包括有关页面加载时间、用户交互和错误的信息。收集的数据可用于查找应用程序用户历程中关键位置的性能瓶颈。

数据存储

一旦您拥有数据流动的管道,您就需要一个实际存储数据的地方。虽然通用数据库可能适用于您的工作负载,但使用专门的数据存储来存储真实用户监控数据以提高开发人员的生产力,从而使实施更容易,这可能是有意义的。

RUM 数据通常可以被认为是时间序列数据,因此专用的时间序列数据库是有意义的。通过使用 TSDB,您的开发人员将获得许多内置功能,用于处理 RUM 数据的生命周期,例如保留策略、降采样和数据聚合。当您开始分析数据时,您还将获得更好的查询性能。

数据分析

收集数据后,您需要分析数据,以便实际为您的业务创造价值。理想情况下,真实用户监控工具应该可以轻松生成报告和仪表板,以便您可以可视化数据并快速识别问题。这些工具可用于跟踪一段时间内的性能、比较不同用户群的性能以及识别可能需要进一步调查的领域。

自动化

大多数真实用户监控系统的最后一个组件是某种基于您的数据采取自动化操作的方式,在某些情况下,还可以基于您的数据创建预测,以便主动而非被动地采取行动。某些任务显然无法完全自动化,但随着时间的推移,借助正确的工具,随着您的 RUM 系统成熟,许多常见问题可以自动解决。

一些示例

  • 自动回滚:如果您的用户指标在新的提交推送到生产环境后突然下降,您可以将 RUM 系统与 CI/CD 管道集成,并自动还原更改,直到您找出问题所在。
  • 自动扩容:如果您的 RUM 系统报告用户由于性能问题而体验不佳,您可以与您的基础设施提供商集成,并在性能下降是由于硬件利用率导致的情况下自动扩展应用程序的资源。

真实用户监控用例和示例

根据用例,RUM 有几种不同的使用方式。最常见的用例之一是持续监控博客或更大的网站等资产,以准确了解加载时间在何处上升,最重要的是,原因。

通过这种级别的监控,开发人员可以更好地注意到流量增加可能导致更大问题(例如超时)的情况。

在应用程序方面,RUM 可以用于发现仅周期性发生的问题。 如果您的应用程序要求用户登录,并且在此过程中发生故障,您将能够准确地看到原因,而不管这些实例发生的频率有多低。

从更广泛的意义上讲,RUM 是识别可能仅存在于一个平台或另一个平台上的某些故障的好方法。如果您有一个移动应用程序,该应用程序具有适用于 iOS 和 Android 平台的版本,则它们可能会在不同的时间遇到不同的问题集。

并非所有这些情况都会在预部署测试期间显示出来,这就是为什么 Real User Monitoring(真实用户监控)是密切关注这些事情的绝佳机会。

  • 除此之外,RUM 还是解决实际由应用程序本身启动引起的问题的理想方法。
  • 它可以使用过滤器缩小问题出现的特定条件,使开发人员能够快速找到问题的根源。换句话说,这是一种治疗问题根源而不是治疗症状的方法。

最后,即使组织内不懂技术的人员也可以使用 RUM 工具中提供的仪表板来准确了解正在发生的事情以及哪些问题正在影响性能。通过整个会话查看用户如何与应用程序交互,对于创建新功能的产品经理或营销和销售人员强调用户发现非常有价值的功能可能非常有价值。

让我们看更多关于 RUM 如何用于帮助公司的具体示例。

错误跟踪

错误跟踪是一种真实用户监控类型,可帮助开发人员识别和诊断应用程序或网站中的错误。它使开发人员能够快速识别和修复可能出现的任何问题,从而更轻松地维护高质量的用户体验。这种类型的监控还可以帮助进行调试和故障排除,因为它可以通过深入了解应用程序的使用方式以及导致错误的原因。

功能跟踪

功能跟踪是一种真实用户监控类型,可帮助开发人员了解用户如何使用应用程序或网站中的特定功能或一组功能。

在发布新功能并跟踪参与度和使用趋势,以及用户感到困惑的潜在迹象时,RUM 特别有用。然后,这些见解可用于改进应用程序。

在某些情况下,RUM 可以帮助您找到隐藏的瑰宝,这些瑰宝会带来可能不明显的巨额收入。您可以使用收入最高用户的相关数据,找到他们在您的应用程序中采取的而低收入用户没有采取的操作,然后尝试构建您的应用程序以推动更多这些操作。

安全监控

安全监控是一种真实用户监控类型,可帮助开发人员保护其应用程序免受恶意威胁,并保护用户。RUM 可用于识别和解决潜在的漏洞,例如安全漏洞或未经授权的访问。这种类型的监控也可用于跟踪可疑活动,例如尝试登录和数据泄露。异常检测可以用于基线用户行为,然后可以设置自动警报以通知开发人员或用户本人。

真实用户监控的优势

Real User Monitoring(真实用户监控)的最大优势之一是它允许开发团队衡量关键绩效指标 (KPI)。

  • 通过让他们密切关注个人访问,并通过收集与实际用例(而非假设场景)相关的信息,团队可以准确地了解网站或应用程序的哪些方面在起作用,更重要的是,哪些方面不起作用。
  • 从长远来看,这使他们能够更好地识别问题,并确定在改进方面将时间花在哪些方面。
  • 许多 RUM 工具甚至允许开发团队重放用户会话,从而重现某人在与资产交互时所经历的确切历程。

RUM 是发现网络级别、页面级别(就网站而言)或应用程序级别问题的理想方法。即使问题不常发生,或者需要一系列罕见的步骤才能触发它,它仍然可以被识别并浮出水面,从而再次使团队能够一劳永逸地解决这些问题。

真实用户监控的其他一些优势包括

提高用户满意度

真实用户监控有助于确保用户在使用网站或应用程序时获得积极的体验。使用来自 RUM 的数据可以帮助推动产品开发,以创建新功能,消除用户不喜欢的事物,并找到

更轻松的调试

在您的应用可能拥有来自全球各地、使用不同设备和不同操作系统的用户的世界中,以及其他大量可能影响其体验的潜在因素中,真实用户监控大放异彩。RUM 数据可用于通过查找将产生最大影响的问题来确定工作的优先级。

真实用户监控的挑战和局限性

虽然真实用户监控确实提供了许多优势,如上面所述,但与任何其他工具一样,它并非完美。在本节中,我们将介绍在使用真实用户监控时看到的一些潜在挑战和一些一般局限性。

成本

真实用户监控可能很昂贵,具体取决于系统的复杂性和包含的功能。如果您不选择完全托管的供应商解决方案,则可能需要对硬件和软件进行前期投资,以及持续的维护成本以维护系统。

可以通过仅从一部分用户那里收集数据、设置保留策略以使数据存储时间不超过需要的时间以及使用针对处理 RUM 数据进行优化的工具来控制成本,从而更有效地存储和处理数据。

复杂性

根据系统的复杂性,真实用户监控可能难以设置和维护。通常,需要实施某种库来收集来自客户端设备和后端服务的数据。然后,您将需要弄清楚如何存储和分析数据。

通过使用供应商解决方案可以降低复杂性,但权衡通常是成本。

用户隐私

真实用户监控系统会收集用户的个人数据,这可能会引起隐私问题。根据收集的数据类型,可能需要在收集数据之前获得用户同意,并且在某些情况下,如果用户高度重视在线隐私,则可能不会使用您的应用程序。

如果您要实施 RUM,您还需要考虑有关用户数据和个人信息安全的法规。您不希望用户密码和其他信息以纯文本形式存储在服务器上的日志或事件中。

准确性

真实用户监控数据可能容易出错,因为数据仅与其系统本身一样准确。这可能是由于系统无法捕获所有用户活动(由于安装了广告拦截器等原因)或由于实施错误而收集了不正确的数据而导致的。如果您正在从用户那里抽样数据,那么您也可能由于没有获得整个用户群的完整情况而得出不正确的结论。

数据过载

另一个潜在的问题是,您可能只是收集了过多的数据。对于小型公司而言,这不仅在存储和处理数据方面成本高昂,而且还可能导致过度分析问题并减慢产品开发速度。此外,如果初始用户数量较少,与您希望长期触达的更广泛的目标受众相比,您可能会被引导到错误的方向。

真实用户监控的最佳实践

真实用户监控过程中最重要的部分之一与数据捕获本身有关。必须从客户端设备以及后端服务器收集数据,才能全面了解用户与应用程序的交互方式。

会话化也是一个重要的过程,它指的是将所有收集的信息重新整理成记录,然后可以通过基于软件的工具和开发人员本身对其进行适当的分析。这包括对页面和时间信息的洞察,以及来自个人每次访问相关资源的其他因素。

当然,如果没有完善的异常检测功能,RUM 工具就不算完整。在这里,任何偏离“正常”公认定义的行为都会被报告。这包括但不限于系统问题、响应时间可能比预期慢的情况、导航问题以及被分析资源的任何其他“故障”。

在此背景下,单独访问报告也是必不可少的。所有正在收集的信息随后都可以用来重现某人所经历的确切体验。它允许开发人员精确地看到用户所看到的内容,从而比简单的记录更生动地描绘出哪里出了问题以及需要修复什么。

开发人员需要深入研究的 RUM 流程的另一部分与报告和细分有关。一旦收集了足够大量的信息,就可以用来深入了解网站或应用程序的性能。在这里,您可以按特定设备甚至世界各地进行细分,以了解人们正在体验什么以及问题可能发生的原因。

最后,成功 RUM 最重要的最佳实践之一与需要到位的警报系统有关。每当报告“严重”问题时(例如应用程序完全崩溃的情况),系统都会立即向有能力采取措施的人员发送消息。这使团队能够快速采取纠正措施,从而尽快阻止问题的发生。

真实用户监控工具

有许多真实用户监控工具可供团队根据其需求进行选择。如果您重视易于实施且无需担心管理各种工具,您可以选择各种全栈 RUM 解决方案,这些解决方案为数据收集、分析、可视化和开箱即用的报告提供解决方案。

另一方面,如果您想要完全控制您的 RUM 设置,想要能够为真实用户监控的每个步骤选择理想的工具,并想要避免潜在的供应商锁定,那么有各种开源工具可用。在本节中,我们将介绍一些常用于真实用户监控的开源项目。

InfluxDB

InfluxDB 是一个 时间序列数据库,除了任何其他需要大规模存储和分析时间序列数据的用例(如 物联网、金融科技、网络监控、可观测性和分析应用程序)之外,它通常用于真实用户监控。InfluxDB 还具有内置的仪表板和数据可视化功能,以减少您在真实用户监控技术堆栈中需要的工具数量。

现实世界中的一个例子是 Wayfair 使用 Telegraf 和 InfluxDB 的组合来收集和存储数据,以执行真实用户监控和综合监控,以确保他们的基础设施能够应对假日购物季期间的流量激增。他们还可以使用这些数据来准确了解网站性能的变化如何影响业务指标。

Grafana

Grafana 是一个开源监控和可视化工具,可以用作真实用户监控的可视化组件。它允许用户可视化来自多个来源的性能数据,例如应用程序日志、系统指标和 InfluxDB 等数据源。借助 Grafana,用户可以快速识别性能问题并采取纠正措施。它还提供强大的仪表板和警报功能,使其成为理想的真实用户监控工具。

Prometheus

Prometheus 是一个开源监控和警报系统。它从各种来源收集和存储 指标数据,并提供查询语言来分析和可视化这些数据。Prometheus 被设计为高度可扩展,可用于监控大规模应用程序和服务。它还提供警报功能,使其成为真实用户监控的理想工具。

Kibana

Kibana 是另一个类似于 Grafana 的开源数据可视化工具。它可以与不同的数据源集成,但通常与 Elasticsearch 一起使用。Kibana 提供了许多功能,这些功能可以用作真实用户监控技术堆栈的一部分。

常见问题解答

真实用户监控与应用程序性能监控 (APM)

真实用户监控 (RUM) 和 应用程序性能监控 (APM) 是监控软件应用程序的两种不同方法。

RUM 侧重于最终用户对应用程序的体验,通过衡量页面加载所需的时间、最常请求的内容、用户遇到错误或超时的频率等等。

APM 是一种监控方法,它查看应用程序的底层组件(如数据库和服务器)以识别需要改进的领域。示例指标包括每秒请求数、平均响应时间和每秒错误数。APM 帮助团队识别技术性能瓶颈并快速修复它们。

RUM 和 APM 对于确保应用程序以最佳状态运行都很重要。RUM 有助于改善用户体验并推动产品方向,而 APM 有助于快速发现性能问题。它们共同提供了应用程序性能的全面视图。

综合监控与真实用户监控

综合监控和真实用户监控 (RUM) 是测试应用程序在流量负载下表现的两种方法。这两种方法都使用不同的策略,可以为系统性能提供有价值的见解。

综合监控通过模拟用户的自动化脚本来工作。通过运行测试并报告任何延迟问题或错误,综合监控可以帮助及早检测和识别问题。它对于创建基准性能数据尤其有用,然后可以将这些数据与未来的测试进行比较,以确定系统性能是否发生任何变化。它对于在软件发布到生产环境之前测试软件性能也很有用。

真实用户监控涉及跟踪来自真实用户的实际网络流量。RUM 提供更准确的数据,因为它捕获的是实际用户行为,而不是工程师基于用户如何使用应用程序的假设而编写的脚本。RUM 还可以帮助识别与用户与应用程序交互相关的问题,例如页面加载缓慢或由某些操作引起的错误,这些错误无法通过综合监控检测到。在许多情况下,综合监控永远无法发现其中一些错误,因为创建它的开发人员永远无法在设计测试时预测某些用户条件。

综合监控和真实用户监控可以为您的网站或应用程序的性能提供重要的见解。在大多数情况下,同时使用这两种类型的监控以确保您的软件尽可能地表现良好是有意义的。

为什么真实用户监控很重要?

真实用户监控很重要,因为它使公司能够全面了解用户如何与其网站、应用程序和其他服务进行交互。借助这些数据,企业可以更好地了解如何提高其网站和服务的性能,并确保优化其客户体验。

真实用户监控还提供指标,帮助开发人员在问题对用户体验产生负面影响之前识别和修复应用程序的问题。通过实时了解用户体验其网站的方式,企业可以做出积极的改变,以确保积极的客户体验。

掌控您的运营,并将存储成本降低 90%

免费开始使用 运行概念验证

无需信用卡。

quote-shape

相关资源


DBU logo

免费 InfluxDB 培训

通过免费的自定进度和讲师指导的培训,快速开始您的 InfluxDB 之旅。

dbu-illustration