什么是应用性能监控(APM)?

应用性能监控的含义

APM(application performance monitoring - 应用性能监控)是组织快速识别并解决其应用程序和代码中任何性能问题的过程

APM 解决方案会收集、监控并分析来自网站、软件应用程序和服务的遥测数据。团队可以获得对其应用的端到端可见性,从而了解应用和服务之间的依赖关系,并解决任何错误或性能下降问题。APM 解决方案还会存储和利用历史数据,以发现趋势并检测关键性能指标(如延迟和吞吐量)以及业务 KPI 的异常值。

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

应用性能监控可以持续并详细地洞察应用的运行情况。团队可以利用这些洞察更主动地应对问题,而不是等到客户投诉。例如,团队可以为用户体验下降设置警报、评估最新版本的影响,并就改进方向做出明智决策。它还可以用于根本原因分析,并降低平均检测时间( MTTD )和平均解决时间(mean time to resolution -  MTTR )。

为什么 APM 很重要?

应用程序是现代组织的命脉。它们是人们每天使用的产品、服务和工具的入口,同时也变得越来越复杂。随着分布式应用(如 cloud-native 技术microservices)的兴起,团队根本无法跟上不断涌入的 telemetry 数据量。他们需要一种方式来监控一切,以便提供卓越的用户体验。

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

APM 的历史

自 1990 年代成立以来,APM 就为 IT 团队提供了以前无法看到的应用可见性。多年来,一些公司尝试了 distributed tracing。但直到 2010 年代,功能更强大的 APM 解决方案才进入市场。这些平台型解决方案提供了更高级别的跟踪和端到端的监控能力。

APM 与 Observability 的区别

表面上看, observability 和 APM 很相似,它们都使用 telemetry 来收集数据并提供性能洞察。APM 更专注于应用 —— 跟踪和监控事务;而 observability 同时覆盖应用和基础设施性能。 observability 可以深入分析技术细节,以更好地理解系统。它可以通过关联 logs、metrics 和 traces 来帮助团队了解性能问题背后的上下文和根本原因。

APM 代理 - agents

代理是一段通常被植入应用程序中的软件。它会监控并将 trace 和 telemetry 数据传输到 APM 服务器或其他监控工具。代理可以用于监控各种系统和应用程序,并可配置为收集与性能相关的特定数据。

APM 插桩

插桩(instrumentation)是指在应用程序中添加监控代码以收集性能数据的过程。它可以用于收集响应时间、错误率、资源使用率、日志等关键指标的 metrics,从而了解应用程序的健康状况和性能。

插桩可以通过使用特定厂商的 APM SDK(软件开发工具包)手动完成,或者使用像 OpenTelemetry 这样的 open standards,在其中通过 spans 启动和停止 traces

也可以通过使用能够自动插桩代码的代理完成。安装代理后,团队可以对应用程序或事务的特定部分进行插桩分析,并将数据发送到一个 endpoint —— 通常是一个 APM 平台。插桩通常通过工具的 UI 或 API 设置,配置示例包括环境名称、采样率和其他指标。

APM 分析和告警

一旦收集到性能数据,就可以进行分析。选择工具时,重要的是它是否包含便于跟踪用户体验并一目了然地识别错误和问题的 dashboards 和视图。大多数团队会从用户报告的问题开始调查,并努力找出根本原因。使用平台化的 APM 方法可以避免在这个阶段频繁切换工具。还可以设置告警,以避免将来的问题。

APM 测量什么?

APM 工具可以测量:

  • 服务器健康状况:监控服务器的 CPU 使用率、内存需求和读写速度

  • 错误率:跟踪性能下降并识别问题

  • 响应时间:判断应用性能是否受到影响

  • 实例数量:了解有多少服务器或应用实例在运行,以便高效扩展并管理整体成本。这个指标对基于云的应用尤为关键

  • 请求速率:评估用户流量,了解为什么会出现流量高峰或用户不活跃

  • 可用性:跟踪应用的正常运行时间

APM 的好处是什么?

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

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

APM 的挑战有哪些?

APM 工具并非没有挑战。团队需要处理大量实时流入的数据。复杂的分布式应用程序 —— 尤其是使用云原生技术的应用 —— 可能使 APM 的监测变得困难。如果环境中存在问题或遇到复杂的根本原因分析情况,许多工具可能难以应对。

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

APM 工具的关键功能

选择合适的 APM 工具时应该关注哪些方面?虽然有多种不同的 APM 解决方案可以监控端到端事务、应用程序和代码级性能,但选择一个能满足当前和未来技术需求的工具尤为重要。

技术能力

为你的组织创建一个清单,然后你可以将工具功能与你的需求进行对比。一些 APM 技术能力的示例如下:

  • 跟踪网站和/或应用程序性能

  • 映射和管理应用程序与服务的依赖关系

  • 收集分布式追踪以实现端到端可见性

  • 提供实时用户监控(客户端和服务器端)

  • 将应用性能与业务目标关联

  • 利用机器学习和基于 AI 的分析

  • 支持多种数据类型、数据源和编程语言

端到端可见性

APM 数据可以向组织传达应用程序中实际发生的情况。但你需要能够全面监控,才能清楚了解其运行方式。

由于单个追踪只能展示部分情况,你的 APM 工具应更进一步,监控整个事务过程。这样,追踪可以相互关联,从全局视角深入到代码级问题。

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

集成

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

易用性

组织中有不同人员需要访问 APM 功能。用直观的用户界面满足他们的需求。还要验证你的 APM 解决方案的部署、管理和扩展有多简单。

部署选项

如果你想减少运营和管理成本,可以考虑基于云的 SaaS 选项。但还有其他部署方式需要考虑。一些 APM 工具支持多云或混合策略,而有些可能会因你偏好的云供应商而受限。

支持开放标准/开放数据

可观察性领域在不断发展。随着新工具和标准的出现,你需要一个灵活的平台以适应变化。使用 OpenTelemetry 等开放标准和技术,也有助于你的工具集具备未来适应性。

了解更多关于遥测数据构建模块

安全

评估工具时,要考虑供应商对安全的承诺。APM 工具的构建和交付方式可能强化或削弱你现有的安全框架。组件之间的通信应加密。第三方扩展也可能带来安全隐患。同时确保你的 APM 工具支持现有的身份访问管理解决方案,并具备细粒度权限控制。

Elastic 的应用性能监控

2024 年,Elastic 被评为 Gartner® 可观察性平台魔力象限™ 领导者。Elastic 为企业提供全栈可观察性方案,内置 APM 监控。团队无需使用多种工具,即可获得产品的 360 度视图。Elastic 提供:

  • 跨混合云和多云的可见性:通过对 Kubernetes无服务器等云原生技术的可观察性,加速数字化转型。Elastic 还原生支持 OpenTelemetry

  • 提升故障排查和效率:打破组织孤岛,将指标、日志和追踪整合为单一视图。

  • 强大的机器学习和分析:利用 AIOps 功能(如 APM 关联和异常检测)自动进行根因分析

  • 用户体验监控:通过真实用户监控(RUM)详细了解用户与网站的互动。通过合成监控,主动捕捉网页性能问题,领先客户发现。

了解更多 Elastic 和 APM

APM 词汇表

分布式追踪 - Distributed tracing

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

Spans

事务 - Transactions

事务是对应于一个逻辑工作单元的事件。它们通常与传入请求或被监控服务的类似任务相关联。事务可以包含多个跨度以及额外的属性,比如记录事件时环境的数据。一些事务的例子包括:

  • 对你的服务器的请求

  • 批处理作业

  • 后台作业

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

Traces - 跟踪

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

Services - 服务

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

OpenTelemetry

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值