实际用户监控

实际用户监控 (RUM) 是收集用户数据以深入了解您的应用程序性能及其使用情况的过程。

实际用户监控 (RUM) 是一种旨在 提供有关应用程序前端性能的有价值见解 的技术。RUM 通过提供只有在实际用户在野外使用应用程序时才能获得的见解,使开发人员能够做出更好的决策。

什么是实际用户监控?

当使用 RUM 工具时,应用程序中的用户行为会被映射到一系列事件,然后这些事件被转化为能够提供对用户活动和会话的几乎前所未有的可见性的指标和日志。

这样,开发人员可以立即识别可能导致那些用户会话性能不佳的问题 - 并有机会迅速解决这些问题,以免对最终用户产生负面影响。

  • RUM之所以如此有用,其中一个原因在于它允许开发者以易于理解的方式,从头到尾可视化用户的旅程,从而帮助任何人从中得出结论。
  • 不仅如此,您还可以按国家、特定设备类型甚至应用本身将事物分解成不同的指标。或者甚至应用本身。

真实用户监控是如何工作的呢?

RUM是一种被动监控,被世界各地的许多开发者所采用。这里的“被动”一词是因为该技术依赖于一系列不断在后台收集特定应用或系统性能数据的服务的系列。

整体功能,以及可用性和响应性,只是被评估的几个品质之一。

这与另一种名为合成监控的Web监控方式不同,后者是一种更为主动的监控。在这里,一系列行为脚本在浏览器中执行,以帮助模拟最终用户在浏览应用或网站时的体验。

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

它是通过嵌入在应用程序或网站每个页面中的JavaScript来实现的。该脚本从最终用户的角度收集关键信息,所有这些信息随后都转交给开发者,用于分析目的

由于真实用户监控收集了如此大量的用户汇总数据,数据可视化不是一项建议——它几乎是一项必需品。

  • 这是因为从关键指标中获取了如此多的信息,简单地跟踪所有这些信息可能会迅速成为一场艰难的战斗,更不用说从中提取有价值的见解将有多么困难。
  • 然后,这些数据可以以图表、图形等形式呈现——所有这些都有助于揭示可能否则会被忽视的趋势和模式。

RUM的关键组件

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

数据收集

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

数据存储

一旦您有一个数据流动的管道,您就需要一个实际存储这些数据的地方。虽然通用数据库可能适合您的工作负载,但使用专门的数据存储来存储真实用户监控数据可能更有意义,以提高开发者的生产力,使得实施更简单。

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

数据分析

收集数据后,您需要分析它,以真正为您的业务创造价值。理想情况下,一个真实用户监控工具应使生成报告和仪表板变得简单,以便您可以快速可视化数据并识别问题。这些工具可以用于跟踪性能随时间的变化,比较不同用户段落的性能,并确定可能需要进一步调查的领域。

自动化

大多数真实用户监控系统最终组件之一是基于您的数据采取自动化操作的方式,在某些情况下,根据您的数据创建预测以积极而非被动的方式采取行动。一些任务显然不能完全自动化,但随着时间的推移,使用正确的工具,许多常见问题可以在您的RUM系统成熟时自动解决。

一些例子

  • 自动回滚:如果您的用户指标在将新提交推送到生产后突然下降,您可以将您的RUM系统与CI/CD流水线集成,并自动撤销更改,直到您弄清楚出了什么问题。
  • 自动扩展:如果您的RUM系统报告称由于性能问题,用户体验不佳,您可以通过与您的基础设施提供商集成来自动扩展应用程序的资源,如果下降是由于硬件利用率造成的。

真实用户监控用例和示例

根据用例的不同,RUM的利用方式有多种。最常见的一种是持续监控一个资产,如博客或更大的网站,以了解加载时间增长的确切位置,更重要的是,原因是什么。

在这种程度的监控下,开发人员可以更好地注意到流量增加可能导致的更大问题,例如超时。

在应用程序方面,RUM可以用于发现仅定期发生的问题。如果您的应用程序需要用户登录,并且在登录过程中发生故障,您将能够确切地看到为什么 - 无论这些实例多么罕见。

从更广泛的角度来看,RUM是识别某些仅在特定平台或平台上存在的故障的绝佳方式。如果您有一个同时适用于iOS和Android平台的移动应用程序,它们可能会在不同的时间体验到不同的问题集。

并非所有这些情况都会出现在预部署测试中,这就是为什么真实用户监控是保持关注这些问题的绝佳机会。

  • 除此之外,RUM是解决由应用程序本身发布引起的问题的理想方式。
  • 它可以通过过滤器缩小问题出现的具体条件,使开发人员能够快速找到问题的根源。换句话说,它是一种处理问题的根本原因而不是处理症状的方法。

最后,组织中的非技术人员也可以使用RUM工具提供的仪表板来了解确切发生了什么以及哪些问题影响了性能。用户在整个会话中与应用程序交互的视图对于创建新功能的产品经理或强调用户认为非常有价值的特性的市场营销和销售来说非常有价值。

让我们看看一些RUM如何帮助公司的具体示例。

错误跟踪

错误追踪是一种实时用户监控,帮助开发者识别和诊断应用程序或网站内的错误。它允许开发者快速识别和修复可能出现的问题,从而更容易维护高质量的用户体验。这种类型的监控还可以帮助调试和故障排除,因为它可以提供有关应用程序如何被使用以及什么原因导致错误的洞察。

功能追踪

功能追踪是一种实时用户监控,帮助开发者了解用户如何在使用应用程序或网站中的特定功能或功能集。

在推出新功能并跟踪参与度和使用趋势,以及用户可能感到困惑的潜在迹象时,RUM特别有用。这些洞察可用于改进应用。

在某些情况下,RUM可以帮助您发现隐藏的宝藏,推动大量收入,而这些收入可能并不明显。您可以使用最高收入用户数据与低收入用户之间的相关性,找到他们没有采取而高收入用户采取的动作,然后尝试构建应用程序以推动更多这些动作。

安全监控

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

实时用户监控的优势

实时用户监控最大的优势之一是它允许开发团队衡量关键性能指标。

  • 通过允许他们密切关注单个访问,并收集与实际用例相关的信息,而不是假设场景,团队可以确切了解网站或应用程序中哪些地方有效,更重要的是,哪些地方无效。
  • 从长远来看,这使他们能够更好地识别问题,并优先考虑改进方面的时间和精力。
  • 许多RUM工具甚至允许开发团队回放用户会话,重现某人交互资产时的确切旅程。

RUM是在网络级别、页面级别(就网站而言)或应用级别发现问题的理想方式。即使问题并不经常发生,或者需要一系列罕见步骤来触发它,它仍然可以被识别并浮出水面——再次使团队能够一次性修复这些问题。

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

提高用户满意度

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

更容易调试

在您的应用程序可能由来自全球、使用不同设备和操作系统的用户访问,以及许多其他可能影响他们体验的因素的世界中,实时用户监控非常出色。RUM数据可用于通过找到将产生最大影响的问题来优先考虑要解决的问题。

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

虽然实时用户监控确实提供了一系列上述好处,但像任何其他工具一样,它并不完美。在本节中,我们将讨论在处理实时用户监控时遇到的一些潜在挑战和一些一般局限性。

成本

真实用户监控可能成本高昂,这取决于系统的复杂性和包含的功能。它可能需要 upfront 在硬件和软件方面的投资,以及如果您不选择完全由供应商管理的解决方案,还需要维护系统的持续成本。

通过仅从您的用户样本中收集数据、设置保留策略以便数据不会存储超过所需时间,以及使用针对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