什么是综合监控?

综合监控的定义

综合监控是一种通过模拟用户交互来测试和监控应用程序和系统的方法。它使用旨在模仿真实用户行为的脚本,然后使用数据评估响应时间、错误率和其他性能指标。

作为一种主动监控解决方案,综合监控评估应用程序在真实用户与之交互之前对用户请求的响应程度。这使开发人员能够在应用程序发布之前排除问题,并使 IT 运营团队能够以一致且可重复的方式监控生产环境中的关键用户旅程。

与需要人工用户的监控解决方案真实用户监控 (RUM) 不同,综合监控可以完全自动化并按计划运行。这使您可以在真实用户遇到问题之前检测问题、触发警报并优化系统性能。最终结果是更好的最终产品和改进的用户体验。

综合监控如何工作?

综合监控的工作方式是使用机器人客户端(也称为代理或探针)向您的应用程序发送自动请求,从而复制潜在用户的操作。

  • 首先,您需要开发一个或一组脚本来模拟潜在的用户交互。这些脚本定义将执行哪些活动以及以什么顺序执行。可以对综合监控工具进行编程,以重现诸如填写表格、单击按钮、登录、购买和浏览网页等操作。
  • 脚本完成后,您需要配置您的建模参数。脚本化的事务是定期发生还是按预定义的时间表发生?它们应该模拟哪些设备或浏览器?它们应该从哪些地理位置执行?它们应该重现哪些网络条件?
  • 参数设置完成后,测试即可开始。您的监控工具会根据您选择的配置执行综合脚本。它向目标系统发送请求,模拟典型的用户操作和工作流程。
  • 综合测试收集性能指标,例如响应时间、页面加载时间、错误率和事务完成率。这些指标有助于评估系统的性能并识别可能需要改进的方面。
  • 如果任何指标超过设定的阈值,则可能意味着存在需要解决的性能问题或其他问题。发生这种情况时,监控工具将生成警报以通知您和您的团队。
  • 您的综合监控工具将生成持续报告和仪表板,以分析性能趋势。您和您的团队可以查看收集的数据,以查找模式、发现性能瓶颈、识别需要排除故障的领域并为未来的可扩展性进行规划。

Synthetic monitoring app in Kibana with application and website monitoring dashboards

综合监控在现代应用程序中的重要性

综合监控在现代应用程序中非常重要,因为它使您能够主动检测问题、持续监控性能并优化用户的最终体验。它确保您的应用程序在不同场景下运行良好,以便您可以在问题影响真实用户之前解决这些问题。它通过支持高效的事件管理和容量规划来优化应用程序性能。通过交付高质量的应用程序,您可以提高客户满意度并在当今的数字环境中保持竞争力。

综合监控的优势

综合监控可以为您的组织带来多项好处。这包括

  • 主动监控:综合监控使组织能够主动发现性能问题和可用性问题。通过模拟用户交互,它可以检测出在影响真实用户之前的异常情况。
  • 持续监控:综合监控可以定期或按需执行测试,确保您的应用程序得到持续监控。这也有助于您发现临时问题,而临时或手动测试可能无法发现这些问题。
  • 模拟用户体验:综合监控使您的团队能够模拟来自不同位置和设备的用户交互和事务。通过复制用户行为,您可以更好地了解真实用户的体验。
  • 验证 SLA:综合监控可以帮助您的团队验证与服务提供商的服务级别协议 (SLA)。它使您可以监控和衡量第三方服务的性能和可用性,以确保它们符合您的标准。这也有助于您追究供应商的责任。
  • 性能优化:通过收集性能指标和分析结果,综合监控有助于识别需要优化的方面。这有助于您的团队组织、优先处理和解决这些问题。
  • 容量规划: 通过监控系统在不同负载水平下的性能,合成监控可以帮助您确定何时需要添加额外资源或基础设施升级,以支持用户不断增长的需求。
  • 实时警告: 通过警报和通知,合成监控可以在性能阈值被突破或检测到异常时立即通知您。
  • 回溯性性能分析: 使用历史数据和趋势,合成监控可以帮助您分析一段时间内的性能模式并找出重复出现的问题。您还可以跟踪您的团队实施的修复措施的效果。
  • 竞争对手性能分析: 合成监控可用于监控和基准测试竞争对手的网站或应用程序的性能。通过模拟用户交互和测量性能指标,您可以更多地了解竞争对手的用户体验,并将您的性能与他们进行比较。

合成监控的挑战与局限性

虽然合成监控有很多好处,但它并非没有挑战和局限性。合成监控侧重于客观指标,如响应时间、页面加载时间和错误率。它不捕获对某些用户同样重要的主观指标,例如用户满意度和视觉设计吸引力。

合成监控主要从预定义的位置和设备进行操作,这些位置和设备可能无法覆盖所有用户所在的地理位置或人口统计数据。这对于具有非常广泛的全球影响力的组织来说尤其棘手。

由于合成监控基于预定义的脚本模拟用户交互,因此它可能会遗漏某些边缘情况、用户特定的配置或网络条件,这些都可能影响实际的用户体验。它也可能无法提供对网站上富媒体或视频内容(例如游戏体验)的精细可见性。由于侧重于 Web 体验,合成监控也可能无法提供对后端系统性能的见解。

随着您的应用程序或网站的发展,您的监控脚本需要更新,以反映功能或用户流程的任何更改。这可能会成为一个挑战,特别是对于频繁更新的复杂系统。

根据您测试的频率以及监控设置的复杂程度,合成监控可能会产生与监控工具成本以及管理数据所需人员相关的预算影响。

合成监控用例

合成监控在不同行业中有各种用例。金融服务可以使用它来监控网上银行系统、支付网关和交易平台。医疗保健技术可以使用它来监控电子健康记录系统、患者门户和远程医疗平台。在电子商务领域,合成监控用于观察在线零售平台,如库存系统和购物车。它可以应用于监控媒体流媒体平台、视频点播服务和在线游戏系统。公共部门组织可以使用它来监控面向公民的门户网站、在线服务和政府网站。各行业的系统可靠性工程师 (SRE) 可以依赖强大的合成监控系统作为系统健康和性能的单一事实来源。

特别是科技行业可以利用合成监控来优化其各种应用程序和平台。以下是一些以技术为中心的用例

  • 软件即服务 (SaaS) 平台可以使用各种性能指标来识别诸如响应时间缓慢、API 故障或与第三方服务集成问题之类的问题。
  • 云基础设施服务可以使用合成监控来监控无服务器功能和数据存储 API 的响应时间。
  • DevOps 和持续交付实践将其应用于验证部署、跟踪性能变化(称为性能测试)并确保应用程序发布的稳定性。
    DevOps 中的合成监控允许主动监控,即在问题发生之前进行全面排查。例如,正常运行时间监控是检查应用程序是否正在运行的自动化过程。而应用程序监控则使用合成监控工具网络来衡量应用程序性能,以进行性能优化。
  • 合成监控工具可用于监控网页上的第三方依赖项,包括 JavaScript、图像,以及 API 和 API 驱动的应用程序,确保 API 端点的可用性和响应能力。由于对第三方依赖项的监控依赖于外部接口,并且可能需要管理身份验证和使用限制,因此您可能需要将重点转移到特定指标,如响应时间和可用性。
  • 物联网应用程序和设备可以使用合成监控来测量数据摄取和处理的响应时间,并验证物联网设备和应用程序之间的实时交互。
  • 合成测试也可用于负载测试,模拟需求以确保应用程序和网站的可靠性。
  • 在监控大数据和分析平台时,合成监控可以测量数据摄取、查询处理和数据可视化的响应时间。
  • 移动应用程序开发中,合成监控可以识别特定于移动环境的问题,如响应时间缓慢、崩溃和兼容性问题。移动应用程序开发人员可以使用合成测试来修复应用程序上线前的潜在错误。

如何分析合成监控数据

分析合成监控数据涉及检查您收集的性能指标,以深入了解应用程序的行为。首先,您将查看响应时间、页面加载时间和错误率等指标,以评估整体性能。诸如图表和图形之类的可视化将帮助您了解趋势并发现异常。然后,您可以将数据与您先前定义的阈值进行比较,以识别任何偏差或问题。

接下来,您可以通过检查历史数据来执行趋势分析,以查找模式或重复出现的性能问题。这将帮助您就优化和容量规划做出决策。如果发现任何性能问题,您可以通过进行根本原因分析来进一步调查。这涉及检查特定事务、网络条件或服务器配置,以找出导致问题的根本因素。

在此分析的基础上,您将生成报告,总结您的发现,并提供一个项目列表,供您的团队专注于改进。这可能包括优化代码、基础设施变更或性能优化的建议。

合成监控与真实用户监控

合成监控真实用户监控 (RUM) 是两种不同的数字体验监控形式,您可以使用它们来监控应用程序的性能和用户体验。

合成监控涉及使用预定义的脚本模拟用户交互,以监控应用程序的性能和可用性。它通过测量基于模拟用户操作的指标来帮助主动识别问题。

相比之下,真实用户监控 (RUM) 从与您的应用程序实时交互的实际用户那里收集数据。它从用户的设备和浏览器收集有关用户操作、页面浏览量和性能指标的数据。真实用户监控可让您深入了解用户的体验以及他们面临的实际问题,如页面加载时间缓慢或错误。

合成监控在用户遇到性能问题之前主动识别它们,而真实用户监控让您观察真实的用户体验。您不必在两者之间做出选择 - 事实上,同时使用这两种方法将为您提供应用程序性能的全面视图。

合成监控最佳实践

遵循合成监控最佳实践对于从您的数据中获得最佳见解非常重要。 其中一些包括

  • 定义模拟真实用户交互的相关监控场景和客户旅程。
  • 在地理上选择代表您用户群的适当监控位置。
  • 设置合理的监控间隔,以保持定期检查而不会使系统过载。
  • 建立基准性能指标以建立比较基准。
  • 跨不同设备和浏览器进行测试,以确保兼容性和最佳性能。
  • 监控第三方依赖项以发现潜在问题。
  • 配置警报阈值,以便在性能指标超过您预定义的限制时收到通知。
  • 定期更新监控脚本,以反映用户工作流程或应用程序功能的更改。
  • 利用可视化和报告来有效分析和传达监控数据。
  • 将合成监控与其他监控技术集成,以全面了解应用程序的性能。

使用 Elastic 进行合成监控

借助Elastic 的合成监控,您将获得推动更好业务成果所需的见解。您还将受益于诸如自动扩展、内置安全性和与 Elastic Observability 的无缝集成等附加功能。

使用 Elastic 的合成监控来

  • 测试、跟踪和可视化关键用户旅程的性能
  • 使用 Elastic 的全球托管测试基础设施进行轻量级和全浏览器测试
  • 通过 GitOps 简化从开发到生产的测试流程
  • 在您的客户之前获得完整的可见性并发现您的网站性能和可用性问题

在单个解决方案中监控您的应用程序、基础设施和用户:Elastic Observability。