Container Service for Kubernetes (ACK) allows you to use Application Real-Time Monitoring
Service (ARMS) to monitor Java and PHP applications that are deployed in clusters.
ARMS can automatically discover application topologies, generate 3D topologies, discover
and monitor API endpoints, and detect abnormal and slow transactions. ARMS provides
an efficient method to diagnose and troubleshoot application issues.
Note The PHP application monitoring feature is in public preview and free of charge.
Background information
ARMS is an application performance management (APM) service of Alibaba Cloud. After you
install the ARMS application monitoring agent in an ACK cluster, you can use ARMS
to monitor Java applications in the cluster without code modifications. ARMS allows
you to quickly locate abnormal and slow transactions, reproduce the parameters of
API calls, detect memory leaks, and discover system bottlenecks. This significantly
improves the efficiency of diagnosing and troubleshooting application issues. For
more information, see Overview.
In the left-side navigation pane of the ACK console, choose Marketplace > App Catalog.
On the Marketplace page, click the App Catalog tab. Find and click ack-arms-pilot.
On the ack-arms-pilot page, click Deploy.
In the Deploy panel, select a cluster and namespace, and then click Next.
In the Parameters step, set the parameters and click OK.
Authorize ACK to access ARMS
Perform the following steps to grant ACK the permissions to access ARMS.
Log on to the ACK console with an Alibaba Cloud account.
In the left-side navigation pane of the ACK console, click Clusters.
On the Clusters page, find the cluster that you want to manage and click the name of the cluster
or click Details in the Actions column. The details page of the cluster appears.
On the Cluster Information page, click the Cluster Resources tab and then click KubernetesWorkerRole-**** to the right of Worker RAM Role.
On the Roles Management page of the Resource Access Management console, click k8sWorkerRolePolicy-**** on the Permissions tab.
On the Policy Document tab, click Modify Policy Document. In the Modify Policy Document panel, copy the following content to the Policy Document
field and click OK.
In the left-side navigation pane of the ACK console, click Clusters.
On the Clusters page, find the cluster that you want to manage and click the name of the cluster
or click Details in the Actions column. The details page of the cluster appears.
In the left-side navigation pane of the details page, choose Workloads > Deployments.
On the Deployments page, click Create from YAML in the upper-right corner.
On the Create page, select a template from the Sample Template drop-down list and add the following annotations to the spec/template/metadata section in Template.
Note Replace <your-deployment-name> with the name of your application.
In the left-side navigation pane of the ACK console, click Clusters.
On the Clusters page, find the cluster that you want to manage and click the name of the cluster
or click Details in the Actions column. The details page of the cluster appears.
In the left-side navigation pane of the details page, choose Workloads > Deployments.
On the Deployments tab, click Create from YAML in the upper-right corner.
On the Create page, select a template from the Sample Template drop-down list and add the following annotations to the spec/template/metadata section in Template.
Note Replace <your-deployment-name> with the name of your application.
If you install the ARMS application monitoring agent for the first time, you must
modify the arms-php.ini ConfigMap in the arms-pilot namespace. The content of the file is the same as that
of the php.ini file of the PHP application.
Note In the extension=/usr/local/arms/arms-php-agent/arms-7.2.so configuration, arms-7.2.so indicates that the version of the PHP application is V7.2. You can change the version
value to 5.4, 5.5, 5.6, 7.0, 7.1, or 7.2.
Copy the content of the arms-php.ini ConfigMap to the spec/template/spec/containers section in the php.ini file. Set mountPath to the path of the php.ini file.
In the left-side navigation pane of the ACK console, click Clusters.
On the Clusters page, find the cluster that you want to manage and click the name of the cluster
or click Details in the Actions column. The details page of the cluster appears.
In the left-side navigation pane of the details page, choose Workloads > Deployments.
Select a namespace from the Namespace drop-down list. In the Deployments list, find the application that you want to monitor
and then choose More > View in YAML in the Actions column.
In the Edit YAML dialog box, add the following annotations to the spec/template/metadata section and click Update.
Note Replace your-deployment-name with the name of your application.
Copy the content of the arms-php.ini ConfigMap to the spec/template/spec/containers section in the php.ini file. Set mountPath to the path of the php.ini file.
On the Deployments page or the StatefulSets page, find the application and check whether the ARMS Console button appears in the Actions column.
Note If ARMS console does not appear in the Actions column, check whether ACK is authorized to access ARMS.
What to do next
After you complete the preceding steps, ARMS Alibaba Cloud Container Service for Kubernetes
is enabled for the application that is deployed in application monitoring. In the
target application's Action Column click ARMS console . The Application Monitoring page of the ARMS console appears. ARMS application monitoring
have the following capabilities:
1. Displays the overall application performance through key metrics. Automatically
discovers the application topology.
2. The 3D topology shows the health status of applications, services, and hosts, as
well as the upstream and downstream dependencies of the applications. It helps you
quickly locate the services that induce faults, the applications affected by the faults,
and the associated hosts, and comprehensively diagnose the root cause of the fault.
3. Capture abnormal and slow transactions, and obtain slow SQL statements, MQ accumulation
analysis reports, or exception classification reports of the interface. Then, analyze
common problems such as right or wrong and slow in more detail.
4. Automatically discovers and monitors common Web frameworks and RPC frameworks in
application code, and automatically collects statistics on metrics such as the call
volume, response time, and number of errors of Web interfaces and RPC interfaces.