什么是合成监控?

合成监控定义

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

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

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

合成监控如何工作?

合成监控通过使用机器人客户端(也称为代理或探针)向您的应用程序发送自动化请求来工作,复制潜在用户的行为。

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

Synthetic monitoring app in Kibana with application and website monitoring dashboards

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

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

合成监控的优势

合成监控可以为您的组织提供多种优势。这包括

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

合成监控的挑战与局限性

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

合成监控主要从预定义的位置和设备运行,这些位置和设备可能无法涵盖您所有用户的地理位置或人口统计。对于拥有非常广泛的全球覆盖范围的组织来说,这尤其棘手。

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

随着您的应用程序或网站的演变,您的监控脚本需要更新以反映功能或用户流程的任何更改。这可能成为一项挑战,尤其是对于具有频繁更新的复杂系统而言。

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

合成监控用例

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

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

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

如何分析合成监控数据

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

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

根据此分析,您将生成报告以总结您的发现,并提供您的团队需要重点关注的改进项目列表。这可能包括有关优化代码、基础设施更改或性能优化的建议。

合成监控与真实用户监控

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

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

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

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

合成监控最佳实践

合成监控最佳实践对于从数据中获得最佳见解至关重要。其中一些包括

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

使用 Elastic 进行合成监控

使用 Elastic 的合成监控,您将获得推动更好业务成果所需的见解。您还将受益于其他功能,例如自动扩展、内置安全性以及与 Elastic 可观察性 的无缝集成。

使用 Elastic 的合成监控来

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

在一个解决方案中监控您的应用程序、基础设施和用户:Elastic 可观察性。