更新时间:2024-11-14 GMT+08:00

为Docker应用安装Agent

前提条件

部署APM Agent时,必须确保接入APM的机器与APM服务网络连通,Agent才能正常工作。

可使用Telnet命令测试目标机器与APM服务器网络是否连通。例如,以检查中国-香港区域,且代码源选择“增强型探针”的连通性为例,请登录应用所部署的机器,并输入命令telnet 100.125.6.106:41333,其他区域地址请参考接入地址

Java语言支持增强型探针。

操作步骤

  1. 登录管理控制台。
  2. 单击左侧,选择“应用服务 > 应用性能管理 APM”,进入APM服务页面。
  3. 在左侧导航栏中选择“应用监控 > 应用列表”。
  4. 单击“接入应用”,进入接入应用页面。

    图1 接入应用

  5. 选择“区域”和“应用”。

    图2 基础信息

  6. “接入方式”选择增强型探针。
  7. “服务端语言”选择Java。

    图3 接入方式

  8. 根据应用类型选择接入对应的接入方式,按照步骤接入。

    图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实例往往是不同的应用程序,相同应用程序的部署两个实例很少见。

    选填

  9. 将复制的命令放入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}

  10. 重新构建镜像,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" ]

  11. 重新部署应用。