This topic provides answers to commonly asked questions about the application monitoring feature of Application Real-time Management Service (ARMS).
Overview
- FAQ about manually installing the ARMS agent for Java applications
- Is the ARMS agent compatible with the agents of other Application Performance Management (APM) products, such as Pinpoint?
- What do I do if OutOfMemoryError is reported when I start an application after the ARMS agent is installed?
- How do I test network connectivity?
- How do I check whether the ARMS agent is successfully installed?
- Why is no monitoring data displayed in the ARMS console after I install an ARMS agent?
- What do I do if no IP address or an incorrect IP address is displayed after the ARMS agent is installed?
- How do I troubleshoot common errors contained in the log files of the ARMS agent stored in the ArmsAgent/log folder?
- How do I deploy multiple instances on a single machine?
- FAQ about installing the ARMS agent for Java applications with one click
- FAQ about installing the ARMS agent for Java applications deployed on ECS instances with one click
- FAQ about installing the ARMS agent for Java applications in Container Service for Kubernetes (ACK) clusters
- FAQ about installing the ARMS agent for Java applications in open-source Kubernetes environments
- FAQ about modifying the names of Java applications without reinstalling the ARMS agent
- FAQ about uninstalling the ARMS agent
- How do I uninstall the ARMS agent that is manually installed?
- How do I uninstall the ARMS agent that is installed with one click?
- How do I uninstall the ARMS agent installed on a Java application deployed on an ECS instance?
- How do I uninstall the ARMS agent installed on a Java application in an ACK cluster?
- How do I uninstall the ARMS agent installed on a Java application in an open-source Kubernetes environment?
- How do I uninstall the ARMS agent installed on a Java application in Docker?
- How do I uninstall the ARMS agent installed on a PHP application?
- How do I uninstall the ARMS agent installed on a PHP application in an ACK cluster?
- Other FAQ
Is the ARMS agent compatible with the agents of other Application Performance Management (APM) products, such as Pinpoint?
The ARMS agent is incompatible with the agents of other APM products. APM is implemented using bytecode instrumentation based on the ASM framework. If you install two agents, bytecode instrumentation is performed twice on the code. Agents developed by different vendors use different code to implement bytecode instrumentation. Therefore, if you install multiple agents, performance issues may occur due to code conflicts. We recommend that you do not install the agents of other APM products.
What do I do if OutOfMemoryError is reported when I start an application after the ARMS agent is installed?
Add the corresponding heap memory parameters to the start command to increase the memory of the JVM. In the following example, the initial value of heap memory size (Xms) is 512 MB and the maximum value of heap memory size (Xmx) is 2 GB.
-Xms512M
-Xmx2048M
If the OutOfMemoryError: PermGen space
error is reported, add the following parameters to the start command:
-XX:PermSize=256M
-XX:MaxPermSize=512M
If the OutOfMemoryError: metaspace
error is reported, add the following parameters to the start command:
-XX:MetaspaceSize=256M
-XX:MaxMetaspaceSize=512M
How do I test network connectivity?
Before you install the ARMS agent, make sure that the 8883, 8443, and 8442 ports can be accessed. You can run the Telnet command to check whether the target host is connected to the ARMS server network. For example, to test the connectivity to the China (Shenzhen) region, log on to the host on which the application is deployed and run the following commands:
telnet arms-dc-sz.aliyuncs.com 8883
telnet arms-dc-sz.aliyuncs.com 8443
telnet arms-dc-sz.aliyuncs.com 8442
Region | Endpoint for access from classic networks and the Internet | Endpoint for access from VPC |
---|---|---|
China (Hangzhou) | arms-dc-hz.aliyuncs.com | arms-dc-hz-internal.aliyuncs.com |
China (Beijing) | arms-dc-bj.aliyuncs.com | arms-dc-bj-internal.aliyuncs.com |
China (Shanghai) | arms-dc-sh.aliyuncs.com | arms-dc-sh-internal.aliyuncs.com |
China (Qingdao) | arms-dc-qd.aliyuncs.com | arms-dc-qd-internal.aliyuncs.com |
China (Shenzhen) | arms-dc-sz.aliyuncs.com | arms-dc-sz-internal.aliyuncs.com |
China (Zhangjiakou) | arms-dc-zb.aliyuncs.com | arms-dc-zb-internal.aliyuncs.com |
China (Hong Kong) | arms-dc-hk.aliyuncs.com | arms-dc-hk-internal.aliyuncs.com |
Singapore | arms-dc-sg.aliyuncs.com | arms-dc-sg-internal.aliyuncs.com |
Regions for Alibaba GovCloud | arms-dc-gov.aliyuncs.com | arms-dc-gov-internal.aliyuncs.com |
Finance Cloud of China (Hangzhou) | arms-dc-hz-finance.aliyuncs.com | arms-dc-hz-finance-internal.aliyuncs.com |
How do I check whether the ARMS agent is successfully installed?
Run the following ps command to check whether the ARMS agent is successfully installed based on parameters in the start command.
ps -ef | grep 'arms-bootstrap'
The results shown in the following figure indicates that the ARMS agent is successfully installed.

The value of Darms.licenseKey in the command must be the same as the license key value displayed on the Add Application page in the ARMS console.

Why is no monitoring data displayed in the ARMS console after I install an ARMS agent?
- If the log of the ARMS agent contains
send agent metrics. no metrics.
, check whether your application is continuously accessed by external requests, including HTTP requests, HSF requests, and Dubbo requests and whether the development framework is supported by the ARMS agent. For more information about third-party components and frameworks supported by the ARMS agent, see Overview. - Check whether the selected time range for query is correct. Select the past 15 minutes as the time range for query and check whether monitoring data is displayed.
- If you start the ARMS agent by running the
-jar
command, check the setting of the command and make sure that the -javaagent parameter is before-jar
. The following command provides an example on how to add parameters to the start command:java -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=xxx -Darms.appName=xxx -jar demoApp.jar
- If the logs stored in ArmsAgent/log/ contains the "LicenseKey is invalid." error, check whether the region of your application is the same as that of the ARMS agent.
- After your application is started, if the log folder does not exist in the ArmsAgent folder, it indicates that arms-bootstrap-1.7.0-SNAPSHOT.jar fails to be loaded. Check whether the permissions of the ArmsAgent folder are correct.
-
If the following error is reported when your application is started, check whether the arms-bootstrap-1.7.0-SNAPSHOT.jar package and the corresponding permissions are correct.
Error opening zip file or JAR manifest missing: /root/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar Error occurred during initialization of VM agent library failed to init: instrument
- If no monitoring data is displayed, compress the logs of the ARMS agent for Java applications
in the ArmsAgent/log folder into a compressed file, and contact the DingTalk account
arms160804
for support. -
Check the JDK version. If the JDK version is 1.8.0_25 or 1.8.0_31, you may fail to install the agent. We recommend that you upgrade the JDK or contact the DingTalk account
arms160804
.
What do I do if no IP address or an incorrect IP address is displayed after the ARMS agent is installed?
- Run the ifconfig -a command to check the network configuration of the current machine. If the machine uses multiple network interface controllers (NICs), the IP address obtained by the ARMS agent may be inconsistent with the actual IP address due to network configurations.
- You can solve the problem by using one of the following methods:
- Configure the
-DEAGLEEYE.LOCAL.IP=10.XX.XX.XX
parameter of the JVM.Note Replace10.XX.XX.XX
with the actual IP address. - Configure the ARMS agent to obtain the value of the
-DNETWORK.INTERFACE=eth0
parameter, in whicheth0
indicates the NIC name.
- Configure the
How do I troubleshoot common errors contained in the log files of the ARMS agent stored in the ArmsAgent/log folder?
If the "LicenseKey is invalid" error is contained in the logs, perform the following operations to troubleshoot the error:
- Make sure that the application is created in ARMS and the LicenseKey that you specified when the ARMS agent is installed is correct.
- ARMS supports multiple regions. Therefore, check whether the download URL of the ARMS agent is in the same region as your application.
How do I deploy multiple instances on a single machine?
To deploy multiple instances of an application on a single machine, configure the -Darms.agentId parameter to specify the JVM process to connect. This parameter indicates a logical number. Examples: 001 and 002. The following command provides an example on how to deploy multiple instances on a single machine:
java -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=<LicenseKey> -Darms.appName=<AppName> -Darms.agentId=001 -jar demoApp.jar
What do I do when getcwd errors are reported when I run the script to access a Java application?
The following error message is returned after you run the script to access the Java application with one click:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory Error occurred during initialization of VM java.lang.Error: Properties init: Could not determine current working directory. at java.lang.System.initProperties(Native Method) at java.lang.System.initializeSystemClass(System.java:1119)
This may because that the current directory is accidentally deleted when the script
is running. To solve this problem, run the cd
command and then run the script again.
Where do I view the logs after I install the ARMS agent with one click?
By default, the logs are stored in /root/.arms/supervisor/logs/. If no logs are stored in this folder, run ps -ef |grep arms
to view the folder where the logs are stored.
What do I do if the ARMS agent cannot be installed?
- Make sure that your ECS instance can access the download URL of the ARMS agent over
the Internet in the region in which the ECS instance is located.
Region Download URL in Internet China (Hangzhou) http://arms-apm-hangzhou.oss-cn-hangzhou.aliyuncs.com/install.sh
China (Shanghai) http://arms-apm-shanghai.oss-cn-shanghai.aliyuncs.com/install.sh
China (Qingdao) http://arms-apm-qingdao.oss-cn-qingdao.aliyuncs.com/install.sh
China (Beijing) http://arms-apm-beijing.oss-cn-beijing.aliyuncs.com/install.sh
China (Shenzhen) http://arms-apm-shenzhen.oss-cn-shenzhen.aliyuncs.com/install.sh
Singapore http://arms-apm-ap-southeast.oss-ap-southeast-1.aliyuncs.com/cloud_ap-southeast-1/install.sh
- Make sure that your ECS instance can access the ARMS console.
- Log on to the ECS console and perform the following operations:
- In the left-side navigation pane, choose .
- On the Cloud Assistant page, click the Commands tab, select Command Name in the search box, enter
InstallJavaAgent
, and press the Enter key.Note If no result is returned for the search, contact the DingTalk accountarms160804
. - On the Cloud Assistant page, click the Command Execution Result tab and enter the ID of the
InstallJavaAgent
. In the search results, click View in the Actions column corresponding to the command and check whether thecommand
is successfully executed. If the command is not successfully executed, troubleshoot the errors based on the execution results. For example, if the problems occur because the disk of the ECS instance is full or the ARMS agent is not installed, you can clear the disk or install the ARMS agent. If the errors cannot be resolved, send the execution results to the DingTalk accountarms160804
for support.
What do I do if the information about the processes of the ECS instance is inaccurate after the ARMS agent is installed?
If the information about the processes of the ECS instance is not displayed or is
inaccurate after the ARMS agent is installed, click the - icon on the left side of the ECS instance and click the + icon to refresh the data. If the problem retains, contact the DingTalk account arms160804
for support.
What do I do if I cannot enable ARMS application monitoring for a process on an ECS instance?
On the ECS instance, check whether the /root/.arms/supervisor/logs/arms-supervisor.log
file contains errors. If the log file contains errors, troubleshoot the error based
on the error message. If the error cannot be solved, contact the DingTalk account
arms160804
for support.
Why is there no data displayed in Application Monitoring after the ARMS agent is installed on a Java application in an ACK cluster?
What do I do if the application cannot be started?
Run the following command to view the arms-pilot-system logs and troubleshoot the problem based on the logs:
kubectl logs -f {arms-pilot-arms-pilot-XXX} -n arms-pilot-system
How do I view the logs of the ARMS agent?
On the worker of the ACK cluster, view the /home/admin/.opt/ArmsAgent/logs/xxxx.log files.
How do I modify the name of a common Java application on which the ARMS agent is manually installed?
Common Java applications indicate Java applications other than those deployed on ECS instances. If you manually install the ARMS agent on the application, the directory of the agent is specified by you during the installation.
You can check the version of the ARMS agent by viewing the Version file in the directory
of the agent. For example, 2.5.8_cf020486_20190816150025
indicates that the version of the ARMS agent is 2.5.8 and was released on August
16, 2019.
- If the version of the ARMS agent is earlier than 2.5.8.1, uninstall the agent and
install it again. You can specify a new application name when you reinstall the agent.
- For more information about how to uninstall the ARMS agent that is manually installed, see How do I uninstall the ARMS agent that is manually installed?
- For more information about how to uninstall the ARMS agent that is installed with one click, see How do I uninstall the ARMS agent that is installed with one click?
- For more information about how to uninstall the ARMS agent installed on applications in ECS instances, see How do I uninstall the ARMS agent installed on applications in ECS instances?
- If the version of the ARMS agent is 2.5.8.1 or later, you can perform the following
steps to modify the name of the Java application without reinstalling the ARMS agent.
Note ARMS agents downloaded after August 20, 2019 support this feature.

How do I modify the name of a common Java application on which the ARMS agent is installed with one click?
If you install the ARMS agent with one click, the agent is installed in the ~/.arms/supervisor/agent directory. Note that the account you use must be the same as the application account.
Perform the following steps to modify your application name:
How do I change the name of a Java application deployed on ECS instances?
If your Java application is deployed on an ECS instance, the ARMS agent directory is /.arms/agent.
Perform the following steps to modify your application name:
If the standard output shown in the following figure is displayed, it indicates that the application name is modified.

How do I modify the name of a Java application deployed in an ACK cluster?
You can check the version of the ARMS agent by viewing the Version file in the directory
of the agent. For example, 2.5.8_cf020486_20190816150025
indicates that the version of the ARMS agent is 2.5.8 and was released on August
16, 2019.
- If the version of the ARMS agent is earlier than 2.5.8.1, uninstall the agent and
install it again. You can specify a new application name when you reinstall the agent.
- For more information about how to uninstall the ARMS agent that is manually installed, see How do I uninstall the ARMS agent that is manually installed?
- For more information about how to uninstall the ARMS agent that is installed with one click, see How do I uninstall the ARMS agent that is installed with one click?
- For more information about how to uninstall the ARMS agent installed on applications in ECS instances, see How do I uninstall the ARMS agent installed on applications in ECS instances?
- If the version of the ARMS agent is 2.5.8.1 or later, you can perform the following
steps to modify the name of the Java application without reinstalling the ARMS agent.
Note ARMS agents downloaded after August 20, 2019 support this feature.
Change the value of the armsPilotCreateAppName parameter in Deployment and restart the pod.
Wait a moment after your application name is modified. Monitoring data of the application is reported using the new name rather than the previous name.
How do I modify the name of a Java application deployed in Enterprise Distributed Application Service (EDAS)?
The names of Java applications deployed in EDAS cannot be modified.
How do I uninstall the ARMS agent that is manually installed?
For more information about how to manually install the ARMS agent on Java applications, see Manually install the ARMS agent for a Java application. You can perform the following steps to uninstall the ARMS agent that is manually installed:
- If you no longer want to use ARMS to monitor your Java applications, delete all parametersrelated to AppName and LicenseKey, which are described in Step 8.
- Restart the Java application.
How do I uninstall the ARMS agent that is installed with one click?
For more information about how to install the ARMS agent with one click, see Install the ARMS agent for a Java application by using scripts. You can perform the following steps to uninstall the ARMS agent that is installed with one click:
How do I uninstall the ARMS agent installed on a Java application deployed on an ECS instance?
How do I uninstall the ARMS agent installed on a Java application in an ACK cluster?
If you no longer want to use ARMS to monitor your Java applications in an ACK cluster, perform the following steps to uninstall the ARMS agent:
- Log on to the Alibaba Cloud Container Service for Kubernetes console.
- In the left-side navigation pane, click Clusters. On the Clusters page, click Applications in the Actions column corresponding to the cluster that contains the Java application from which you want to uninstall the ARMS agent.
- In the left-side navigation pane, select Releases.
- On the Helm tab, select the release name arms-pilot of the ARMS agent, and click Delete in the Actions column.
- In the Delete dialog box, click OK.
- Restart your business pod.
How do I uninstall the ARMS agent installed on a Java application in an open-source Kubernetes environment?
How do I uninstall the ARMS agent installed on a Java application in Docker?
- If you no longer want to use ARMS to monitor your Java applications in a Docker cluster, delete the Dockerfile content edited in Step 1 in the "Install the ARMS agent for applications in Docker" topic.
- Run the docker build command to construct the image.
- Run the docker run command to start the image.
How do I uninstall the ARMS agent installed on a PHP application?
If you no longer want to use ARMS to monitor your PHP applications that are not deployed in an ACK cluster, perform the following steps to uninstall the ARMS agent:
How do I uninstall the ARMS agent installed on a PHP application in an ACK cluster?
If you no longer want to use ARMS to monitor your PHP applications that are deployed in an ACK cluster, perform the following steps to uninstall the ARMS agent:
- Log on to the Alibaba Cloud Container Service for Kubernetes console.
- In the left-side navigation pane, click Clusters. On the Clusters page, click Applications in the Actions column corresponding to the cluster that contains the Java application from which you want to uninstall the ARMS agent.
- In the left-side navigation pane, select Releases.
- On the Helm tab, select the release name arms-pilot of the ARMS agent, and click Delete in the Actions column.
- In the Delete dialog box, click OK.
- Restart your business pod.
What do I do if the data of my application with the OpenFeign component is incomplete in ARMS?
After your application with the OpenFeign component is connected to ARMS application monitoring, if the data is incomplete and the data of downstream applications cannot be viewed, this may be because that the OpenFeign component enables Hystrix using the RxJava asynchronous framework by default, whereas ARMS does not support asynchronous frameworks.
You can disable Hystrix and enable the OkHttp request class to resolve this problem.
- Add the following dependencies to the pom.xml file.
<! -- OK Http supports Feign --> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-okhttp</artifactId> </dependency>
- Add the following content to the SpringCloud configuration file:
feign.okhttp.enabled: true feign.hystrix.enabled: false
- Configure the OkHttp request class.
@Configuration @ConditionalOnClass(Feign.class) @AutoConfigureBefore(FeignAutoConfiguration.class) public class FeignClientOkHttpConfiguration { @Bean public OkHttpClient okHttpClient() { return new OkHttpClient.Builder() // The connection times out. .connectTimeout(20, TimeUnit.SECONDS) // The response times out. .readTimeout(20, TimeUnit.SECONDS) // The write request times out. .writeTimeout(20, TimeUnit.SECONDS) // Indicates whether to enable automatic reconnection. .retryOnConnectionFailure(true) // The connection tool. .connectionPool(new ConnectionPool()) .build(); }