Symptoms

No data is displayed in Application Monitoring after the Application Real-Time Monitoring Service (ARMS) agent is installed on a Java application in a Container Service for Kubernetes (ACK) cluster.

Causes

The pod of the application is not injected into arms-init-container, the YAML file of the application contains no annotations for the labels parameter, or Security Token Service (STS) is not authorized.

Solutions

  1. Log on to the ACK console.
  2. In the left-side navigation pane, click Clusters. On the Clusters page, find the ACK cluster and click Applications in the Actions column.
  3. At the top of the Pods tab, select the namespace in which your application resides. Find the application and click Edit in the Actions column.
  4. In the Edit YAML dialog box, check whether the YAML file contains initContainers.
    db_am_ack_apppod_yaml
    • If the YAML file does not contain initContainers, the pod has not been injected into arms-init-container. Perform Step 5.
    • If the YAML file contains initContainers, the pod has been injected into arms-init-container. Perform Step 8.
  5. At the top of the Pods tab, select ack-onepilot from the Namespace drop-down list. Check whether a pod whose name is prefixed with ack-onepilot exists in the pod list.
    • If such a pod exists, perform Step 6.
    • If such a pod does not exist, install the ack-onepilot agent from the application marketplace. For more information, see Install the ARMS agent.
  6. On the Deployments or Deployments tab, choose More > View YAML in the Actions column. In the Edit YAML dialog box, check whether the YAML file contains the following annotations for the labels parameter.
    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    // Replace <your-deployment-name> with the actual application name. 
      one-agent.jdk.version: "OpenJDK11"   // If the application uses JDK 11, you must configure this parameter.  
    • If the YAML file contains the preceding annotations, perform Step 7.
    • If the YAML file does not contain the preceding annotations, perform the following operations: In the Edit YAML dialog box, add the annotations to the spec > template > metadata section. Then, click Update.
  7. On the Pods tab, find the pod where your application resides and click Logs in the Actions column to check whether the pod logs of ack-onepilot reports a Security Token Service (STS) error in the "Message":"STS error" format.
  8. On the Pods tab, find the pod where your application resides and click Edit in the Actions column. In the Edit YAML dialog box, check whether the YAML file contains the following javaagent parameter:
    -javaagent:/home/admin/.opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar
    • If the YAML file contains the parameter, find the pod of the application on the Pods page, and click Terminal in the Actions column to go to the command line page. Run the following command to check whether a log file name is suffixed with .log. Then, contact the DingTalk account arms160804.
      cd /home/admin/.opt/ArmsAgent/logs
    • If the YAML file does not contain the parameter, contact the DingTalk account arms160804 for technical support.