Installing Agents on Docker Applications
Prerequisite
The network between your host and APM is normal.
You can run the Telnet command to check the network. For example, if you select region CN-Hong Kong and set Code Source to Enhanced Agent, log in to the host where the application is deployed and run the telnet 100.125.6.106:41333 command to check the network connectivity. For details about access addresses in other regions, see Access Addresses.
Java supports enhanced Agents.
Procedure
- Log in to the management console.
- Click on the left and choose Application > Application Performance Management.
- In the navigation pane, choose Application Monitoring > Applications.
- On the displayed page, click Connect Application.
Figure 1 Connecting an application
- Select a region and application.
Figure 2 Basic information
- Select Enhanced Agent for Access Mode.
- Select Java for Backend Language.
Figure 3 Access mode
- Select an access mode based on the application type and access data by following the instructions.
Figure 4 Data access
Table 1 Parameters Parameter
Description
Mandatory
pwd
Path where the apm-javaagent.jar package is located.
Yes
appName
Component name, which must start with a letter. A component can contain multiple environments. The names of components under an application must be unique. If there are duplicate names, use instanceName to distinguish them.
Yes
env
Name of an environment where an application is deployed. A program can be deployed in different environments (such as the test or live network environment). Each environment is deployed in one region and has a unique region attribute. If this parameter is blank, the default environment will be used.
No
envTag
Environment tag for filtering environments. Different environments may have the same tag. This parameter can be left blank.
No
business
Name of an application that already exists (a global concept). If this parameter is left blank, the automatically created application will be used.
No
subBusiness
Name of a sub-application (a global concept), which is similar to a folder. If it is left blank, resources will be mounted to the root application. There can be up to three layers of sub-applications. For example, for a/b/c, a, b, and c respectively represents a layer.
No
instanceName
Name of an instance, which is left blank by default. If an application has multiple instances deployed on a host, use this parameter to distinguish them. Generally, Java instances deployed on a host belong to different applications. An application rarely has identical instances.
No
- Add the copied command to the Dockerfile file and add the JAVA_TOOL_OPTIONS environment variable.
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}
- Rebuild an image. The following is an example of the Dockerfile file.
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" ]
- Redeploy the application.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot