Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Java application monitoring

Dernière mise à jour :Aug 28, 2026

Application Real-Time Monitoring Service (ARMS) surveille les applications Java exécutées dans des clusters Container Service for Kubernetes (ACK) via le module complémentaire ack-onepilot. Installez et autorisez ce module complémentaire pour diagnostiquer les problèmes en production beaucoup plus rapidement.

Contexte

Application Real-Time Monitoring Service (ARMS) est un produit Alibaba Cloud de gestion des performances des applications (APM). Dans Container Service for Kubernetes (ACK), installez et autorisez le module complémentaire ack-onepilot pour surveiller les applications Java de bout en bout sans modifier le code.

Le module complémentaire détecte automatiquement la topologie et les interfaces des applications, puis génère des cartes topologiques 3D. Il surveille les interfaces et capture les transactions anormales ou lentes. Utilisez ces données de surveillance pour localiser rapidement les interfaces défaillantes ou lentes, reproduire les paramètres d'appel, détecter les fuites de mémoire et identifier les goulots d'étranglement du système. Pour plus d'informations sur la surveillance des applications ARMS, consultez la rubrique Présentation de la surveillance des applications.

Prérequis

  • Un namespace a été créé. Pour plus d'informations, consultez la rubrique Gérer les namespaces et les quotas de ressources. Cette rubrique utilise le namespace arms-demo à titre d'exemple.

  • La version du JDK est prise en charge par Application Monitoring. ARMS prend en charge les versions JDK suivantes :

    • JDK 1.7.0+

      Important

      L'agent ARMS V3.0.X et les versions ultérieures ne prennent plus en charge Java 7. Si vous utilisez toujours Java 7, nous vous recommandons de mettre à niveau votre version Java. Pour plus d'informations, consultez la rubrique Application Monitoring ne prend plus en charge Java 7.

    • JDK 1.8.0_25+

      Remarque
      • Si vous déployez des applications dans des clusters Kubernetes, nous vous recommandons d'utiliser JDK V1.8.0_191 ou une version ultérieure.

      • Assurez-vous que la version du JDK n'est pas 1.8.0_25 ou 1.8.0_31. Sinon, l'installation de l'agent ARMS peut échouer. Dans ce cas, nous vous recommandons de mettre à niveau le JDK vers la dernière version 1.8.X.

    • JDK 11.0.8+

    • JDK 17

  • ARMS est activé.

Étape 1 : Installer le module complémentaire de surveillance des applications ARMS

Important

Le composant hérité arms-pilot n'est plus maintenu. ack-onepilot le remplace et est entièrement compatible : la migration ne nécessite aucune modification de la configuration de votre application. Pour les étapes de migration, consultez la rubrique Désinstaller arms-pilot et installer ack-onepilot.

Remarque

Par défaut, le module complémentaire ack-onepilot prend en charge jusqu'à 1 000 pods. Pour chaque tranche supplémentaire de 1 000 pods dans le cluster, augmentez les ressources CPU du module complémentaire de 0,5 cœur et la mémoire de 512 Mo.

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Components and Add-ons .

  3. Dans la section Logs and Monitoring, recherchez le module complémentaire ack-onepilot et cliquez sur Install sur la carte du module complémentaire.

  4. Dans la boîte de dialogue, configurez les paramètres du module complémentaire. (Recommandé) Conservez les valeurs par défaut. Cliquez sur OK pour terminer l'installation.

Une fois l'installation terminée, vous pouvez mettre à niveau, configurer ou désinstaller le module complémentaire ack-onepilot sur la page Add-ons.

Étape 2 : Accorder des autorisations pour accéder aux ressources ARMS

La nécessité d'accorder manuellement des autorisations dépend de l'existence du Secret addon.arms.token dans le cluster. Si le Secret existe, aucune autorisation n'est requise et vous pouvez passer à l'étape 3. Si le Secret n'existe pas, accordez manuellement au cluster les autorisations nécessaires pour accéder aux ressources ARMS afin qu'ARMS puisse surveiller les applications du cluster.

Remarque

Lorsqu'un cluster contient le Secret addon.arms.token, ARMS accorde automatiquement au cluster les autorisations d'accès aux ressources ARMS, sans identifiants. La plupart des ACK managed cluster incluent ce Secret par défaut, mais les ACK managed cluster créés précédemment peuvent ne pas l'inclure.

Vérifier si le Secret addon.arms.token existe

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Configurations > Secrets.

  3. Sur la page Secrets, sélectionnez kube-system dans la liste déroulante Namespace, puis vérifiez si le Secret addon.arms.token figure dans la liste.

Accorder manuellement des autorisations pour accéder aux ressources ARMS

Effectuez les étapes suivantes uniquement si le Secret addon.arms.token n'existe pas dans le cluster.

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Cluster Information.

  3. Sous l'onglet Basic Information, recherchez la section Cluster Resources et cliquez sur le lien situé à droite de Worker RAM Role.

  4. Sur la page Role, cliquez sur l'onglet Permissions, puis cliquez sur Add Permissions.

  5. Définissez l'autorisation sur AliyunARMSFullAccess, puis cliquez sur OK.

Accorder des autorisations pour les clusters intégrés à Elastic Container Instance (ECI)

Pour surveiller les applications dans un ACK managed cluster intégré à ECI, accordez les autorisations sur la page d'autorisation rapide RAM, puis redémarrez tous les pods du module complémentaire ack-onepilot.

Étape 3 : Activer la surveillance des applications ARMS pour une application Java

Activez la surveillance des applications ARMS lors de la création d'une application Java. Les étapes suivantes permettent de créer un Deployment à partir d'un modèle YAML dans la console ACK.

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workloads > Deployments.

  3. Sur la page Deployments, cliquez sur Create from YAML.

  4. Sélectionnez Sample Template, puis ajoutez les labels suivants à la section spec.template.metadata dans le champ Template (format YAML) :

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    # Replace <your-deployment-name> with the actual application name.
      # armsSecAutoEnable: "on"    # If you want to connect the application to Application Security, you must configure this parameter.

Les libellés armsPilotAutoEnable: "on" et armsPilotCreateAppName: "arms-k8s-demo" dans le modèle de pod du Deployment activent la surveillance des applications ARMS. L'extrait YAML suivant indique où les libellés sont ajoutés dans le modèle de pod :

apiVersion: v1
kind: Namespace
metadata:
  name: arms-demo
---
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: arms-springboot-demo
  namespace: arms-demo
  labels:
    app: arms-springboot-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo
  template:
    metadata:
      labels:
        app: arms-springboot-demo
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo"
    spec:
      containers:
        - resources:
            limits:
              # ...

Le fichier YAML complet suivant crée un Deployment et active la surveillance des applications ARMS :

apiVersion: v1
kind: Namespace
metadata:
  name: arms-demo
---
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: arms-springboot-demo
  namespace: arms-demo
  labels:
    app: arms-springboot-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo
  template:
    metadata:
      labels:
        app: arms-springboot-demo
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo"
        one-agent.jdk.version: "OpenJDK11"
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
          imagePullPolicy: Always
          name: arms-springboot-demo
          env:
            - name: SELF_INVOKE_SWITCH
              value: "true"
            - name: COMPONENT_HOST
              value: "arms-demo-component"
            - name: COMPONENT_PORT
              value: "6666"
            - name: MYSQL_SERVICE_HOST
              value: "arms-demo-mysql"
            - name: MYSQL_SERVICE_PORT
              value: "3306"
---
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: arms-springboot-demo-subcomponent
  namespace: arms-demo
  labels:
    app: arms-springboot-demo-subcomponent
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo-subcomponent
  template:
    metadata:
      labels:
        app: arms-springboot-demo-subcomponent
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo-subcomponent"
        one-agent.jdk.version: "OpenJDK11"
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
          imagePullPolicy: Always
          name: arms-springboot-demo-subcomponent
          env:
            - name: SELF_INVOKE_SWITCH
              value: "false"
            - name: MYSQL_SERVICE_HOST
              value: "arms-demo-mysql"
            - name: MYSQL_SERVICE_PORT
              value: "3306"
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: arms-demo-component
  name: arms-demo-component
  namespace: arms-demo
spec:
  ports:
    # the port that this service should serve on
    - name: arms-demo-component-svc
      port: 6666
      targetPort: 8888
  # label keys and values that must match in order to receive traffic for this service
  selector:
    app: arms-springboot-demo-subcomponent
---
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: arms-demo-mysql
  namespace: arms-demo
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1
          name: mysql
          ports:
            - containerPort: 3306
              name: mysql
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: mysql
  name: arms-demo-mysql
  namespace: arms-demo
spec:
  ports:
    # the port that this service should serve on
    - name: arms-mysql-svc
      port: 3306
      targetPort: 3306
  # label keys and values that must match in order to receive traffic for this service
  selector:
    app: mysql
---
Remarque

Une fois les étapes précédentes effectuées, la surveillance des applications ARMS est activée pour l'application déployée dans le cluster ACK.

Étapes suivantes

Pour afficher les détails de la surveillance des applications, accédez à la page Deployments et recherchez l'application. Dans la colonne Actions, cliquez sur l'icône imageimage et choisissez ARMS Console. Pour plus d'informations, consultez la rubrique Vue d'ensemble des applications.

FAQ

Les rubriques suivantes répondent aux questions fréquemment posées sur la surveillance des applications :