Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:Surveiller les applications multi-conteneurs au sein d'un même pod

Dernière mise à jour :Aug 10, 2026

Dans un scénario sidecar, un seul pod peut exécuter plusieurs conteneurs hébergeant des applications développées dans divers langages de programmation. Cette rubrique explique comment utiliser le composant ack-onepilot pour instrumenter ces applications polyglottes.

Prérequis

La version du composant ack-onepilot doit être la 4.2.0 ou une version ultérieure.

Procédure

  1. Installez ack-onepilot et accordez-lui les permissions d'accès aux ressources requises, comme décrit dans l'une des rubriques suivantes :

  2. Ajoutez les libellés requis à la charge de travail.

    Exemple de fichier YAML d'application

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: multicontainer          
      name: multicontainer
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: multicontainer
      strategy:
        rollingUpdate:
          maxSurge: 25%
          maxUnavailable: 25%
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: multicontainer
            apsara.apm/container.test-java.app-language: java
            apsara.apm/container.test-java.armsPilotAutoEnable: 'on'
            apsara.apm/container.test-java.armsPilotCreateAppName: multilanguage-java
            apsara.apm/container.test-go.app-language: golang
            apsara.apm/container.test-go.armsPilotAutoEnable: 'on'
            apsara.apm/container.test-go.armsPilotCreateAppName: multilanguage-go
            apsara.apm/container.test-python.app-language: python
            apsara.apm/container.test-python.armsPilotAutoEnable: 'on'
            apsara.apm/container.test-python.armsPilotCreateAppName: multilanguage-python
        spec:
          containers:
            - command:
                - sleep
                - '360000'
              image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest
                # Replace with your actual Java application image.
              imagePullPolicy: Always
              name: test-java
              resources:
                requests:
                  cpu: 250m
                  memory: 512Mi
            - command:
                - sleep
                - '3600000'
              image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest
                # Replace with your actual Go application image.
              imagePullPolicy: Always
              name: test-go
              resources:
                requests:
                  cpu: 500m
                  memory: 512Mi
            - command:
                - sleep
                - '3600000'
              image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest
                # Replace with your actual Python application image.
              imagePullPolicy: Always
              name: test-python
              resources:
                requests:
                  cpu: 500m
                  memory: 512Mi

    Le fichier YAML ci-dessus définit une application qui utilise Java, Go et Python dans trois conteneurs distincts : test-java, test-go et test-python.

    Pour isoler les données de surveillance, instrumentez chaque conteneur afin qu'il transmette les données à une application ARMS distincte. Suivez les étapes ci-dessous :

    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 Stateless, repérez votre application cible, puis choisissez image > Edit YAML dans la colonne Actions.

      Pour créer une nouvelle application, cliquez sur Create From YAML.

    4. Dans le fichier YAML, ajoutez les labels suivants sous la section spec.template.metadata, puis cliquez sur Update.

      labels:
        # Replace ${containerName} with the actual container name.
        apsara.apm/container.${containerName}.app-language: java # Replace with the container's actual programming language.
        apsara.apm/container.${containerName}.armsPilotAutoEnable: 'on'
        apsara.apm/container.${containerName}.armsPilotCreateAppName: "<your-deployment-name>"    # Replace <your-deployment-name> with your application name.
  3. L'instrumentation est réussie si vos applications apparaissent sur la page Application Monitoring > Application List de la console ARMS et transmettent des données.

    Dans la zone de recherche, saisissez multilanguage- pour filtrer les trois applications : multilanguage-go, multilanguage-java et multilanguage-python.