You can use Application Real-Time Monitoring Service (ARMS) to monitor applications
that are deployed in open source Kubernetes environments. ARMS allows you to monitor
applications based on various performance metrics, such as the topology, API requests,
abnormal transactions, slow transactions, and SQL analysis. This topic describes how
to enable ARMS to monitor an application that is deployed in an open source Kubernetes
environment.
Prerequisites
- ARMS is activated. For more information, see Activate and upgrade ARMS.
- The version of your Kubernetes api-server is 1.10 or later.
- Your cluster is accessible over the Internet.
-
If the JDK Version is 1.8.0_25 or 1.8.0_31, you may fail to install the arms Agent.
In this case, upgrade the JDK version to the latest version, which is 1.8.X.
Method 2: Directly connect the open source Kubernetes cluster to ARMS
Step 2: Install the ARMS agent
ARMS can monitor only the following two types of applications: Deployment and StatefulSet.
In this topic, a Deployment application that is deployed in an open source Kubernetes
environment is used as an example. To enable ARMS to monitor the Deployment application,
perform the following steps:
- Run the following
wget
command to download the ack-onepilot installation package: wget 'https://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/ack-onepilot/ack-onepilot-2.0.6.tgz'
- Run the following command to decompress the ack-onepilot installation package:
tar xvf ack-onepilot-2.0.6.tgz
- Edit the values.yaml file in the installation package. Modify the following parameters based on your business
requirements and save the file.
image: registry-vpc.__ACK_REGION_ID__.aliyuncs.com/ack-onepilot/ack-onepilot
cluster_id: __ACK_CLUSTER_ID__
accessKey: __ACCESSKEY__
accessKeySecret: __ACCESSKEY_SECRET__
uid: "__ACK_UID__"
region_id: __ACK_REGION_ID__
image
: the image address of the ack-onepilot component.
Note In the preceding example, the image address is used for virtual private clouds (VPCs).
If your application is deployed on the Internet, use the following image address:
registry.__ACK_REGION_ID__.aliyuncs.com/ack-onepilot/ack-onepilot
__ACK_REGION_ID__
: the region ID. For more information about the regions that support Application Monitoring,
see Regions that support Application Monitoring.
__ACK_CLUSTER_ID__
: the ID of the Kubernetes cluster. We recommend that you specify this parameter in
the <uid>-<clusterid>
format.
___ACCESSKEY__
and __ACCESSKEY_SECRET__
: the AccessKey ID and AccessKey secret of your Alibaba Cloud account. For more information,
see Obtain an AccessKey pair.
__ACK_UID__
: the ID of your Alibaba Cloud account. To obtain the ID of your Alibaba Cloud account,
you can move the pointer over the profile picture in the upper-right corner of the
Alibaba Cloud Management Console.
- Run the following command to install the ack-onepilot component:
helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace
Step 3: Obtain the license key
- Log on to the ARMS console .
- In the left-side navigation pane, choose . In the top navigation bar, select a region.
- On the Applications page, click Add Application in the upper-left corner.
- In the Backend Applications section of the Integration Center panel, click Java.
- In the upper-right corner of the Integrate Java panel, select the region in which you want to install the ARMS agent.
- Obtain the license key in the STEP2 section.
Step 4: Edit the YAML file of the application
- Run the following command to view the YAML file of the Deployment application:
kubectl get deployment {Name of the Deployment application} -o yaml
Note If you do not know the
name of the Deployment application
, run the following command to view all Deployment applications. You can find the
required Deployment application in the results. Then, view the YAML file of the application.
kubectl get deployments --all-namespace
- Run the following command to edit the YAML file of the Deployment application:
kubectl edit deployment {Name of the Deployment application} -o yaml
- In the YAML file, go to the spec > template > metadata > labels directory and add the following content:
ARMSApmAppName: xxx
ARMSApmLicenseKey: xxx
one-agent.jdk.version: "OpenJDK11" // If the application uses JDK 11, you must configure this parameter.
Notice
- Replace
xxx
with your application name and license key. The application name cannot contain Chinese
characters.
- Replace the at sign (
@
) in the license key with an underscore (_
).
The following example shows a complete YAML file for creating a Deployment application
in an open source Kubernetes environment and enabling ARMS to monitor the application:
- After the preceding configurations are saved, the application automatically restarts
and then the configurations take effect.
After 2 to 5 minutes, if your application is displayed on the page in the ARMS console and specific monitoring data is reported, your application
is monitored by ARMS.
Uninstall the ARMS agent
If you no longer want to use ARMS to monitor a Java application deployed in an open
source Kubernetes environment, perform the following steps to uninstall the ack-onepilot
component:
- Run the following command to uninstall the ack-onepilot component:
helm3 uninstall --namespace ack-onepilot ack-onepilot
- Restart the pods that correspond to your applications.