Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Java application monitoring

Última atualização: Sep 17, 2026

O Application Real-Time Monitoring Service (ARMS) monitora aplicações Java executadas em clusters do Container Service for Kubernetes (ACK) por meio do add-on ack-onepilot. Instale e autorize o add-on para diagnosticar problemas em produção com muito mais agilidade.

Informações básicas

Application Real-Time Monitoring Service (ARMS) é um product de gerenciamento de desempenho de aplicações (APM) da Alibaba Cloud. No Container Service for Kubernetes (ACK), instale e autorize o add-on ack-onepilot para monitorar aplicações Java de ponta a ponta sem modificar nenhum código.

O add-on descobre automaticamente a topologia e as interfaces da aplicação, gerando mapas de topologia 3D. Ele monitora as interfaces e captura transações anômalas e lentas. Utilize esses dados de monitoramento para localizar rapidamente interfaces com falha ou lentas, reproduzir parâmetros de chamada, detectar vazamentos de memória e identificar gargalos do sistema. Para obter mais informações sobre o monitoramento de aplicações do ARMS, consulte What is application monitoring? O que é o monitoramento de aplicações?

Pré-requisitos

  • Um namespace criado. Para mais informações, consulte Manage namespaces and resource quotas. Este tópico usa o namespace arms-demo como exemplo.

  • A versão do JDK deve ser compatível com o Monitoramento de Aplicações. O ARMS oferece suporte às seguintes versões do JDK:

    • JDK 1.7.0+

      Importante

      O agente do ARMS V3.0.X e posteriores não oferecerão mais suporte ao Java 7. Se você ainda utiliza o Java 7, recomendamos atualizar sua versão do Java. Para mais informações, consulte Application Monitoring no longer supports Java 7.

    • JDK 1.8.0_25+

      Nota
      • Para implantações de aplicações em clusters Kubernetes, recomenda-se o uso do JDK V1.8.0_191 ou superior.

      • Certifique-se de que a versão do JDK não seja 1.8.0_25 ou 1.8.0_31. Caso contrário, a instalação do agente do ARMS pode falhar. Nessa situação, recomenda-se atualizar o JDK para a versão 1.8.X mais recente.

    • JDK 11.0.8+

    • JDK 17

  • ARMS is activated.

Etapa 1: Instalar o add-on de monitoramento de aplicações do ARMS

Importante

O componente legado arms-pilot não recebe mais manutenção. O ack-onepilot é seu substituto e oferece compatibilidade total — a migração não exige alterações na configuração da sua aplicação. Para visualizar as etapas de migração, consulte Uninstall arms-pilot and install ack-onepilot.

Nota

Por padrão, o add-on ack-onepilot suporta até 1.000 pods. Para cada 1.000 pods adicionais no cluster, aumente os recursos de CPU do add-on em 0,5 núcleo e a memória em 512 MB.

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

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Components and Add-ons .

  3. Na seção Logs and Monitoring, localize o add-on ack-onepilot e clique em Install no cartão do add-on.

  4. Na caixa de diálogo, configure os parâmetros do add-on. (Recomendado) Mantenha os valores padrão. Clique em OK para concluir a instalação.

Após a conclusão da instalação, você pode atualizar, configurar ou desinstalar o add-on ack-onepilot na página Add-ons.

Etapa 2: Conceder permissões para acessar recursos do ARMS

A necessidade de conceder permissões manualmente depende da existência do Secret addon.arms.token no cluster. Se o Secret existir, nenhuma autorização será necessária e você poderá pular para a Etapa 3. Caso o Secret não exista, conceda manualmente as permissões ao cluster para acessar recursos do ARMS, permitindo que o service monitore as aplicações no cluster.

Nota

Quando um cluster contém o Secret addon.arms.token, o ARMS concede automaticamente ao cluster permissões para acessar seus recursos, sem necessidade de credenciais. A maioria dos clusters gerenciados pelo ACK inclui o Secret por padrão, mas clusters gerenciados pelo ACK criados anteriormente podem não incluí-lo.

Verificar se o Secret addon.arms.token existe

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

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

  3. Na página Secrets, selecione kube-system na lista suspensa Namespace e verifique se o Secret addon.arms.token está listado.

Conceder permissões para acessar recursos do ARMS manualmente

Execute as etapas a seguir apenas se o Secret addon.arms.token não existir no cluster.

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

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Cluster Information.

  3. Na aba Basic Information, localize a seção Cluster Resources e clique no link à direita de Worker RAM Role.

  4. Na página Role, clique na aba Permissions e, em seguida, clique em Add Permissions.

  5. Defina a permissão como AliyunARMSFullAccess e clique em OK.

Conceder permissões para clusters integrados ao Elastic Container Instance (ECI)

Para monitorar aplicações em um cluster gerenciado pelo ACK integrado ao ECI, conceda as permissões na página de Autorização Rápida do RAM e reinicie todos os pods do add-on ack-onepilot.

Etapa 3: Ativar o monitoramento de aplicações do ARMS para uma aplicação Java

Ative o monitoramento de aplicações do ARMS ao criar uma aplicação Java. As etapas a seguir criam um Deployment a partir de um modelo YAML no console do ACK.

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

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

  3. Na página Deployments, clique em Create from YAML.

  4. Selecione Sample Template e adicione os seguintes labels à seção spec.template.metadata no campo Template (formato 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.

Os rótulos armsPilotAutoEnable: "on" e armsPilotCreateAppName: "arms-k8s-demo" no modelo de pod do Deployment ativam o monitoramento de aplicações do ARMS. O trecho YAML a seguir mostra onde os rótulos são adicionados no modelo 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:
              # ...

O arquivo YAML de exemplo completo a seguir cria um Deployment e ativa o monitoramento de aplicações do 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
---
Nota

Após concluir as etapas anteriores, o monitoramento de aplicações do ARMS estará ativado para a aplicação implantada no cluster ACK.

Próximas etapas

Para visualizar detalhes do monitoramento de aplicações, acesse a página Deployments e localize a aplicação. Na coluna Actions, clique em image e escolha ARMS Console. Para mais informações, consulte application overview.

Perguntas frequentes

Os tópicos a seguir respondem às perguntas mais frequentes sobre monitoramento de aplicações: