Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Monitorar aplicações multicontêiner em um único pod

Última atualização: Jun 27, 2026

Em cenários de sidecar, um único pod pode executar vários contêineres com aplicações desenvolvidas em diferentes linguagens de programação. Este tópico explica como usar o componente ack-onepilot para instrumentar essas aplicações poliglotas.

Pré-requisitos

A versão do ack-onepilot deve ser 4.2.0 ou superior.

Procedimento

  1. Instale o ack-onepilot e conceda as permissões de acesso a recursos necessárias, conforme descrito em um dos tópicos a seguir:

  2. Adicione os rótulos necessários à carga de trabalho.

    Exemplo de YAML da aplicação

    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

    O YAML anterior define uma aplicação que usa Java, Go e Python em três contêineres separados: test-java, test-go e test-python.

    Para isolar os dados de monitoramento, instrumente cada contêiner para reportar dados a uma aplicação ARMS distinta. Siga estas etapas:

    1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

    2. Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

    3. Na página Stateless, localize a aplicação desejada e escolha image > Edit YAML na coluna Actions.

      Para criar uma nova aplicação, clique em Create From YAML.

    4. No arquivo YAML, adicione os seguintes labels na seção spec.template.metadata e clique em 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. A instrumentação será bem-sucedida se as aplicações aparecerem na página Application Monitoring > Application List do console do ARMS e estiverem reportando dados.

    Na caixa de pesquisa, insira multilanguage- para filtrar as três aplicações: multilanguage-go, multilanguage-java e multilanguage-python.