为Docker应用安装Agent
前提条件
部署APM Agent时,必须确保接入APM的机器与APM服务网络连通,Agent才能正常工作。
可使用Telnet命令测试目标机器与APM服务器网络是否连通。例如,以检查中国-香港区域,且代码源选择“增强型探针”的连通性为例,请登录应用所部署的机器,并输入命令telnet 100.125.6.106:41333,其他区域地址请参考接入地址。
Java语言支持增强型探针。
操作步骤
- 登录管理控制台。
- 单击左侧,选择“应用服务 > 应用性能管理 APM”,进入APM服务页面。
- 在左侧导航栏中选择“应用监控 > 应用列表”。
- 单击“接入应用”,进入接入应用页面。
图1 接入应用
- 选择“区域”和“应用”。
图2 基础信息
- “接入方式”选择增强型探针。
- “服务端语言”选择Java。
图3 接入方式
- 根据应用类型选择接入对应的接入方式,按照步骤接入。
图4 数据接入
表1 参数列表 参数
说明
是否必填
pwd
apm-javaagent.jar包所在路径。
必填
appName
组件名称,代表一个组件,需要使用英文字符开头。同一个应用下,组件名称不能重复。一个组件可以包含多个环境。不能重复,如果要重复,使用instanceName区分。
必填
env
环境名称,代表一个应用在一个地方的部署。一个应用程序根据配置不同可以部署多个环境,比如测试环境,现网环境。每个环境都在一个region部署,具有唯一的region属性。该参数可以为空,代表默认环境。
选填
envTag
环境标签,主要用于环境过滤,多个环境打上相同的环境标签,在web页面上可以通过标签将这些环境过滤出来。该参数可以为空。
选填
business
应用英文名称,为全局概念。如果填写,则必须提前创建该应用。如果为空,则代表默认应用(开通APM时系统会自动创建一个默认应用)。
选填
subBusiness
子应用,为全局概念,在应用下面子文件夹。该参数可以为空,为空代表资源挂载在根应用下面,子应用最多支持三层。比如 a/b/c,a、b、c各代表一层。
选填
instanceName
默认为空。当一个应用在机器上部署多个实例,可以通过instanceName来区分,比如7001或者8001两个端口实例。这种实际情况下很少发生,一台机器部署多个java实例往往是不同的应用程序,相同应用程序的部署两个实例很少见。
选填
- 将复制的命令放入Dockerfile文件中,并增加JAVA_TOOL_OPTIONS环境变量。
RUN curl -k https://javaagent.obs.xx-xxx-x.xxxx.huawei.com/apm_agent_install2.sh -o apm_agent_install.sh && bash apm_agent_install.sh -ak {AK}-sk {SK} -masteraddress https://xxx.xx.xx.xx:xxx -obsaddress https://javaagent.obs.xx-xxx-x.xxxx.huawei.com -version latest ENV JAVA_TOOL_OPTIONS=-javaagent:${PROJECT_DIR}/apm-javaagent/apm-javaagent.jar=appName=${APP_NAME}
- 重新构建镜像,Dockerfile文件示例。
FROM openjdk RUN mkdir /opt/cloud ENV PROJECT_DIR=/opt/cloud ENV APP_NAME=hello WORKDIR $PROJECT_DIR ADD ${APP_NAME}.jar ${APP_NAME}.jar RUN curl -k https://javaagent.obs.xx-xxx-x.xxxx.huawei.com/apm_agent_install2.sh -o apm_agent_install.sh && bash apm_agent_install.sh -ak {AK}-sk {SK} -masteraddress https://xxx.xx.xx.xx:xxx -obsaddress https://javaagent.obs.xx-xxx-x.xxxx.huawei.com -version latest ENV JAVA_TOOL_OPTIONS=-javaagent:${PROJECT_DIR}/apm-javaagent/apm-javaagent.jar=appName=${APP_NAME} CMD ["bash","-c","java -jar ${APP_NAME}.jar" ]
- 重新部署应用。