一 APM 探针是什么
APM探针基于业界Pinpoint开源项目,实际上是一个javaAgent,通过非侵入方式采集应用指标
javaAgent是一种特殊的Java程序(Jar文件),是运行在main方法之前的拦截器
通过-javaagent参数附着在目标程序上启动,实现了在类加载时做拦截,修改字节吗的功能
一个最简单的Javaagent程序如下,该程序通过-javaagent参数附着在目标程序上启动,实现了在类加载时做拦截,修改字节码的功能
二APM探针是怎么运行的?
APM探针通过Javaagent我们注册类加载的回调方法,来实现通用的类加载拦截。
java –javaagent:temp.jar -jar hello.jar
![](https://i-blog.csdnimg.cn/blog_migrate/1dd673507cec513dc81954415ad44cd6.png)
ClassLoader:每次新加载的类都会被agent的代码做字节码增强
三APM探针如何记录性能数据?
APM探针在类装载时通过介入应用代码为分布式事务和性能信息注入必要的跟踪代码。
在目标方法添加拦截器的before()方法和after()方法,并在before()方法和after()方法中实现了部分性能数据的记录。
![](https://i-blog.csdnimg.cn/blog_migrate/748a64fa290413c2ef5983c2f3855548.png)
四探针安装方法
步骤一:开通应用性能管理服务。(https://www.huaweicloud.com/product/apm.html)
若您首次登录APM,会弹窗提示免费开通APM,确认后APM会为您免费赠送100个实例。
步骤二:为Java应用安装探针
您需在Java应用服务器的启动脚本中增加如下配置。配置完成后,您启动应用,即可开启应用性能管理功能。
-javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar -Dapm_application={应用名称} -Dapm_tier={服务名称}
例如,原始启动命令为java -jar app.jar,当应用名称vmall,服务名称vmall-product-service时:
java -javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar -Dapm_application=vmall -Dapm_tier=vmall-product-service -jar app.jar
五容器应用(CCE)
创建应用时安装探针
![](https://i-blog.csdnimg.cn/blog_migrate/2696bd7f9065e99e9a98d2d4ff7fb9f2.png)
升级应用时安装探针
![](https://i-blog.csdnimg.cn/blog_migrate/7584efbe2f7a4ec77d4ee4f15a7c7e6f.png)
六常见问题
Jboss应用如何安装Java探针?
https://support.huaweicloud.com/apm_faq/apm_03_0013.html
如何将APM接入非Web程序中?
https://support.huaweicloud.com/apm_faq/apm_03_0008.html
更多资料与参考:
https://support.huaweicloud.com/productdesc-apm/apm_06_0006.html