什么是应用程序性能监控?

应用程序性能监控的含义

APM,应用程序性能监控,是指组织快速识别和解决其应用程序和代码中任何性能问题的过程。

APM 解决方案从网站、软件应用程序和服务中收集、监控和分析遥测数据。团队可以获得对其应用程序的端到端可见性,以便他们能够了解应用程序和服务依赖关系,并解决任何错误或速度缓慢问题。APM 解决方案还存储和利用历史数据来显示趋势并检测关键性能指标的异常值,例如延迟和吞吐量,以及业务 KPI。

应用程序性能监控的作用是什么?

应用程序性能监控提供对应用程序性能的持续和详细洞察。团队可以利用这些洞察力变得更加主动,而不是被动地等待客户投诉。APM 有多种用途。例如,团队可以为用户体验下降设置警报,评估最新版本的影响,并就改进方向做出明智的决策。它还可以帮助进行根本原因分析,并缩短平均检测时间 (MTTD) 和平均解决时间 (MTTR)

为什么 APM 很重要?

应用程序是现代组织的命脉。它们是人们每天使用的产品、服务和工具的门户,而且它们也变得越来越复杂。随着分布式应用程序(云原生技术微服务)的兴起,团队根本无法跟上涌入的遥测数据的数量。他们需要一种方法来监控一切,以提供卓越的用户体验。

APM 确保应用程序按预期执行。为了维护客户信心,APM 工具可以向团队发出潜在问题的警报,以便快速解决问题。

APM 的历史

自 20 世纪 90 年代创立以来,APM 为 IT 团队提供了对以前无法看到的应用程序的可见性。多年来,多家公司尝试了分布式跟踪。但直到 21 世纪 10 年代,市场上才出现了更强大的 APM 解决方案。这些平台解决方案提供了更高级别的跟踪和端到端监控功能。

APM 与可观察性

从表面上看,可观察性和 APM 很相似。它们都使用遥测技术收集数据并提供有关性能的洞察力。APM 更侧重于应用程序——跟踪和监控事务——而可观察性涵盖应用程序和基础架构性能。可观察性能够深入了解技术细节,从而更好地理解系统。通过关联日志、指标和跟踪,它可以帮助团队了解性能问题背后的背景和根本原因。

应用程序性能监控是如何工作的?

APM 使用一套工具和方法来监控和管理软件应用程序的性能。APM 工具通常包括监控关键指标,例如响应时间、吞吐量和错误率,以识别和诊断性能瓶颈和问题。

APM 工具还可以提供详细的跟踪和调试信息,以帮助开发人员了解和修复代码中的问题。这通常包括警报和报告功能,以使利益相关者了解应用程序的性能。

APM 代理

代理是通常在应用程序中安装的一段软件。它监控跟踪和遥测数据,并将其传输到 APM 服务器和/或其他监控工具。代理可用于监控各种系统和应用程序。可以将它们配置为收集有关性能特定方面的数据。

APM Instrumentation

Instrumentation 是指将监控代码添加到应用程序以收集性能数据的过程。它可用于收集有关响应时间、错误率、资源利用率、日志以及应用程序运行状况和性能的其他关键指标的指标。

Instrumentation 可以使用供应商特定的 APM SDK(软件开发工具包)手动完成,也可以使用 OpenTelemetry 等开放标准完成,其中 跟踪 使用 Span 启动和停止。

或者,它可以通过使用自动检测代码的代理来完成。安装代理后,团队可以检测应用程序或事务的特定部分以进行分析,然后将数据发送到端点 - 通常是 APM 平台。Instrumentation 通常在工具的 UI 中或通过 API 设置。配置示例包括环境名称、采样率和其他指标。

APM 分析和警报

收集性能数据后,就可以对其进行分析。在选择工具时,重要的是它包含仪表板和视图,以便于跟踪用户体验并一目了然地识别错误和问题。大多数团队都是从调查报告的问题开始,然后努力找出根本原因。拥有 APM 的平台方法可以避免在此阶段切换工具。还可以设置警报以避免将来出现问题。

APM 测量什么?

APM 工具可以测量

  • 服务器运行状况:监控服务器 CPU 使用率、内存需求和读/写速度
  • 错误率:跟踪性能下降并识别问题
  • 响应时间:确定应用程序性能是否受到影响
  • 实例:了解正在运行的服务器或应用程序实例数量,以便有效扩展和管理总体成本。此指标对于基于云的应用程序至关重要。
  • 请求率:评估用户流量,以了解出现峰值或用户不活跃的原因
  • 可用性:跟踪应用程序的正常运行时间

APM 的好处是什么?

当应用程序停止工作时,最好提前知道,以免为用户带来负面体验。APM 使团队能够快速识别和解决问题,甚至可以防止问题再次发生。借助全面的 APM 工具,团队可以

  • 提高稳定性和正常运行时间
  • 减少事件
  • 更快地解决问题
  • 发布高质量的软件
  • 确定基础设施改进
  • 提高生产力
  • 创造更好的用户体验
  • 推动收入增长

APM 的挑战是什么?

APM 工具并非没有挑战。团队正在处理实时流式传输的大量数据。复杂、分布式的应用程序(尤其是那些使用云原生技术的应用程序)可能会使 APM Instrumentation 成为一项挑战。如果整个环境中存在问题或复杂的根本原因分析案例,许多工具可能会难以应对。

APM 解决方案需要监控端到端事务、应用程序和代码级性能,才能为组织提供全面的覆盖范围。拥有单一平台可以提供最全面的覆盖范围,并且可以简化工作流程并加快问题解决速度。选择合适的 APM 解决方案非常重要,该解决方案可以使用多种监控方法的组合来满足业务目标。

APM 工具的主要功能

在选择合适的 APM 工具时,您应该寻找什么?虽然有几种不同的 APM 解决方案可以监控端到端事务、应用程序和代码级性能,但选择一种能够满足您现在和将来技术需求的解决方案非常重要。

技术能力

为您的组织创建一个清单。然后,您可以将工具功能与您的需求进行比较。APM 技术能力的一些示例包括

  • 跟踪网站和/或应用程序性能
  • 映射和管理应用程序和服务依赖关系
  • 收集分布式跟踪以实现端到端可见性
  • 提供实时用户监控(客户端和服务器)
  • 将应用程序性能与业务目标联系起来
  • 利用机器学习和基于 AI 的分析
  • 支持各种数据类型、数据源和语言

端到端可见性

APM 数据能够让组织了解其应用程序中实际发生的情况。但是,您需要能够很好地监控所有内容,才能清楚地了解其工作方式。

由于单个跟踪只显示了故事的一部分,因此您的 APM 工具应该更进一步,监控事务的整个旅程。然后,可以将跟踪链接在一起,从鸟瞰图到代码级问题。

端到端可见性也是 AIOps 的关键要素。

集成

与第三方服务和应用程序的 集成 使您的 APM 工具能够无缝地融入组织更大的生态系统。从身份验证到 CI/CD 框架,预先调查这些集成非常重要。

易用性

组织中将有各种人员需要访问 APM 功能。使用直观的 UI 满足他们的需求。此外,还要验证部署、管理和扩展 APM 解决方案的容易程度。

部署选项

如果您希望降低运营和管理成本,则可以考虑使用 基于云的 SaaS 选项。但是,还有其他部署选项需要考虑。虽然一些 APM 工具可以支持多云或混合策略,但其他工具可能会根据您首选的云提供商而受到限制。

对开放标准/开放数据的支持

可观察性领域在不断发展。随着新工具和标准进入市场,您需要一个可以适应的灵活平台。使用 OpenTelemetry 等开放标准和技术也有助于使您的工具集面向未来。

详细了解遥测数据构建块

安全

在评估您的工具时,请考虑供应商对 安全 的承诺。APM 工具的构建和交付方式可能会增强或削弱您现有的安全框架。组件之间的流量应加密。第三方扩展也可能构成 安全隐患。此外,请确保您的 APM 工具支持您现有的身份访问管理解决方案,并具有精细的权限。

使用 Elastic 进行应用程序性能监控

2023 年,Elastic 在 Gartner® APM 和可观察性魔力象限™ 中被评为远见者(连续第三年)。Elastic 通过 内置的 APM 监控 为公司提供全栈的可观察性方法。团队无需使用多种工具即可 360 度全方位了解其产品。Elastic 为团队提供

  • 跨混合云和多云的可见性:通过对 Kubernetes无服务器 等云原生技术的可观察性,加速您的数字化转型。Elastic 还提供对 OpenTelemetry 的原生支持。
  • 改进故障排除和效率:打破组织中的孤岛,并通过对环境的单一视图整合指标、日志和跟踪。
  • 强大的机器学习和分析:借助创新的 AIOps 功能(如 APM 关联和 异常检测),为您的团队实现 根本原因分析 自动化。
  • 用户体验监控:通过 真实用户监控 (RUM) 详细了解用户与您网站的互动方式。通过 综合监控 在客户发现之前主动捕获 Web 性能问题。

详细了解 Elastic 和 APM

APM 词汇表

分布式跟踪

分布式跟踪 是一种跟踪和分析请求和响应从前端到后端服务流经应用程序的方法。它可以帮助团队了解应用程序的不同部分如何相互交互,并识别潜在的瓶颈或问题。

Distributed tracing visualization

Span

Span 是工作流的每个部分。它们测量活动的开始和结束时间,并包含执行信息。常见的 Span 属性有

  • 开始和完成时间
  • 名称
  • 类型

APM transactions and spans diagram

事务

事务 是对应于逻辑工作单元的事件。它们通常与传入请求或受监控服务的类似任务相关联。事务可以包含多个 Span 以及其他属性,例如有关记录事件的环境的数据。事务的一些示例包括

  • 对服务器的请求
  • 批处理作业
  • 后台作业

在 APM 解决方案中,事务通常指的是 Web 事务,并且包括从提交请求到收到响应的所有活动。

跟踪

跟踪 是应用程序执行的操作的详细代码级记录。它们测量与应用程序请求相关的调用方法或函数的状态和持续时间。

服务

服务 是执行特定任务或一组任务的独立软件。它们被设计为松散耦合和高度可重用,并且经常在微服务架构中使用。服务通常使用容器技术(如 Docker 和 Kubernetes)进行部署。

OpenTelemetry

OpenTelemetry 是一个开源框架,用于从应用程序、服务和库中收集和导出遥测数据。它提供了用于检测代码和收集数据的库和 API,以及用于分析、可视化和存储数据的工具和集成。

OpenTelemetry 是供应商中立且可扩展的。它被认为是收集和导出遥测数据的标准。