应用程序性能监测定义
APM(应用程序性能监测)是组织快速识别和解决应用程序和代码中任何性能问题的过程。
APM 解决方案可收集和监测来自各种网站、软件应用程序和服务的遥测数据,并对数据进行分析。团队借此能够获得对应用程序的端到端可见性,进而理解应用程序和服务的依赖关系,并解决任何错误或速度变慢的问题。此外,APM 解决方案还会存储并利用历史数据来揭示趋势,并对照关键性能指标(如延迟和吞吐量以及各项业务 KPI)检测离群值。
应用程序性能监测有何作用?
应用程序性能监测能够对应用程序的执行情况提供连续不断的详细见解。团队可以利用这些见解,更加积极主动地解决问题,而不是等到客户投诉了才有所行动。APM 有多种用途。例如,团队可以针对用户体验过程中的性能下降设置告警,衡量最新版本的影响,并就哪些地方需要改进做出明智的决策。此外,它还可以协助进行根本原因分析,以及缩短平均检测时间 (MTTD) 和平均解决时间 (MTTR)。
为什么 APM 很重要?
应用程序是现代组织的命脉,也是人们每天所用产品、服务和工具的门户,而且都变得越来越复杂。随着分布式应用程序(云原生技术和微服务)的兴起,团队根本无法跟上大量遥测数据涌入的速度。他们需要找到一种方法来监测所有信息,从而提供卓越的用户体验。
APM 可确保应用程序按预期运行。为了保持客户的信心,APM 工具可以提醒团队注意潜在问题,以便快速解决问题。
APM 的发展历程
自 1990 年代问世以来,APM 便为 IT 团队提供了全方位了解应用程序的能力。这些年来,也有多家公司尝试过分布式跟踪。但直到 2010 年代,市场上才出现功能更加强大的 APM 解决方案。这些平台解决方案提供的跟踪和端到端监测功能的水平更高。
APM 与可观测性
从表面上看,可观测性和 APM 有相似之处。两者都使用遥测技术来收集数据,以及提供性能方面的见解。尽管如此,APM 会更侧重于应用程序(跟踪和监测事务),而可观测性则兼顾了应用程序和基础架构性能。通过可观测性,可深入挖掘技术细节,从而提高对系统的了解。它可以帮助团队通过关联日志、指标和痕迹,了解性能问题背后的背景信息和根本原因。
应用程序性能监测工作原理
APM 会使用一套工具和方法来监测和管理软件应用程序的性能。APM 工具一般包括对关键指标(如响应时间、吞吐量和错误率)的监测,以此来识别和诊断性能瓶颈和问题。
此外,APM 工具还可以提供详细的跟踪和故障排查信息,协助开发人员了解和修复代码中的问题。这通常包括告警和报告功能,以让利益相关方始终了解应用程序的性能。
**代理是指通常装载于应用程序的软件。**它负责监测痕迹和遥测数据,并将数据传输到 APM 服务器和/或其他监测工具。代理可用来监测各种系统和应用程序。您可以对代理进行配置,以收集有关性能特定方面的数据。
**测量工具装载是向应用程序添加监测代码以收集性能数据的过程。**它可用于收集响应时间、错误率、资源利用率、日志等指标,以及应用程序在运行状况和性能方面的其他关键指标。
测量工具装载可以使用供应商专用的 APM SDK(软件开发工具包)或按照 OpenTelemetry 这类公开的标准手动执行,其中会使用跨度来设置痕迹的开始和停止时间。