本实践基于某手机销售电商应用为例,帮助您理解如何将该电商应用接入APM并进行管理。
该电商应用情况介绍:
该应用包含四个微服务,每个微服务包含一个实例:
- API网关服务:名称为vmall-apigw-service,主要负责应用整体的服务鉴权、限流、过滤等。
- 商品管理服务:名称为vmall-product-service,主要负责商品查询、购买等。
- 用户管理服务:名称为vmall-user-service,主要负责用户登录,以及购买商品时的用户身份核实等。
- 数据持久服务:名称为vmall-dao-service,主要负责请求数据库操作。
下面介绍如何将APM接入该电商应用并管理起来。
操作流程
- 将应用部署到服务器。
- 安装Agent。Agent是APM的采集代理,用于实时采集拓扑和调用链数据,您需要将其安装在应用所在服务器上。
- 修改应用启动参数,以确保APM可以监控应用。
- 在APM上管理应用,例如通过拓扑查看应用情况。
操作步骤
步骤 1 将应用部署到服务器。
- 登录服务器,创建应用目录并进入目录,本实践以目录/root/testdemo为例。
- 下载并安装应用需要的JRE 1.8版本。
- 执行如下命令将应用下载至创建的/root/testdemo目录并安装。
curl -l http://demos.obs.ctyun.cn/demo_install.sh > demo_install.sh && bash demo_install.sh
说明执行该命令需要具有公网访问权限。
步骤 2 安装Agent。
步骤 3 修改应用启动脚本start.sh的参数,确保应用被APM监控。
在服务启动脚本的java命令之后,配置apm-javaagent.jar包所在路径,并指定java进程的应用名。
添加-javaagent参数示例:
java -javaagent:/xxx/apm-javaagent/apm-javaagent.jar=appName={appName}
修改前后应用启动脚本对比如下:
修改前:
export PATH=/root/testdemo/jdk1.8.0_111/bin:$PATH
java -Xmx512m -jar /root/testdemo/ecommerce-persistence-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_dao.yml > dao.log 2>&1 &
java -Xmx512m -jar /root/testdemo/ecommerce-api-gateway-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_api.yml > api.log 2>&1 &
java -Xmx512m -jar /root/testdemo/ecommerce-user-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_userservice.yml > user.log 2>&1 &
java -Xmx512m -jar /root/testdemo/ecommerce-product-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_prod.yml > prod.log 2>&1 &
java -Xmx512m -jar /root/testdemo/cloud-simple-ui-1.0.0.jar --spring.config.location=file:/root/testdemo/ui.properties > ui.log 2>&1 &
修改后:
export PATH=/root/testdemo/jdk1.8.0_111/bin:$PATH
java -javaagent:/xxx/apm-javaagent/apm-javaagent.jar=appName=vmall-dao-service-Xmx512m -jar /root/testdemo/ecommerce-persistence-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_dao.yml > dao.log 2>&1 &
java -javaagent:/xxx/apm-javaagent/apm-javaagent.jar=appName=vmall-apigw-service -Xmx512m -jar /root/testdemo/ecommerce-api-gateway-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_api.yml > api.log 2>&1 &
java -javaagent:/xxx/apm-javaagent/apm-javaagent.jar=appName=vmall-user-service -Xmx512m -jar /root/testdemo/ecommerce-user-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_userservice.yml > user.log 2>&1 &
java -javaagent:/xxx/apm-javaagent/apm-javaagent.jar=appName=vmall-product-service -Xmx512m -jar /root/testdemo/ecommerce-product-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_prod.yml > prod.log 2>&1 &
java -Xmx512m -jar /root/testdemo/cloud-simple-ui-1.0.0.jar --spring.config.location=file:/root/testdemo/ui.properties > ui.log 2>&1 &
步骤 4 修改完成后,便可启动应用。
等待三分钟左右,在APM界面上即可看到应用相关数据,并根据数据监控应用、定位应用的异常。