APM的全称为Application Performance Management,顾名思义,它是在应用运行(Performance)同时进行的管理,可自上而下划分为性能监测、故障定位、系统优化、数据统计、信息展示等。APM主要的作用是减少应用出错率并及时修改错误,分析用户行为,完善应用并改善用户体验。
APM的基本原理为依据打包原理,在class转换为dex的过程中,调用gradle transform api遍历class文件,借助Javassist、ASM等框架修改字节码,插入我们自己的代码实现性能数据的统计。
APM的核心思想为在应用服务各节点相互调用的时候,从中记录并传递一个应用级别的标记,这个标记可以用来关联各个服务节点之间的关系。比如两个应用服务节点之间使用 HTTP 作为传输协议的话,那么这些标记就会被加入到 HTTP 头中。可见如何传递这些标记是与应用服务节点之间使用的通讯协议有关的,常用的协议就相对容易加入这些内容,一些按需定制的可能就相对困难些,这一点也直接决定了实现分布式追踪系统的难度。
APM,应用性能监控。主要功能就是统计分析应用的CPU、内存、网络、数据库、UI等性能,并提供错误日志捕获。编码人员需要做的仅仅是使用它提供的插件和jar包,增加一两行代码即可。