Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Monitoramento de Aplicações Java

Última atualização: Jun 27, 2026

O Application Real-Time Monitoring Service (ARMS) oferece gerenciamento de desempenho de aplicações (APM) sem código para aplicações Java executadas no Container Service for Kubernetes (ACK). Instale o add-on ack-onepilot no cluster para que o ARMS descubra automaticamente a topologia da aplicação, monitore interfaces e capture requisições com falha ou lentas, sem alterar o código. Para mais informações sobre o Monitoramento de Aplicações do ARMS, consulte O que é o Monitoramento de Aplicações.

Após a configuração, você pode:

  • Identificar requisições com falha e lentas

  • Reproduzir parâmetros de requisição

  • Detectar vazamentos de memória

  • Descobrir gargalos do sistema

  • Visualize dependências de serviço como um mapa de topologia 3D

Pré-requisitos

Antes de começar, verifique se você tem:

Versões compatíveis do JDK:

Versão do JDK

Status de suporte

Observações

1.7.0+

Obsoleto

O agente ARMS V3.0.X e posteriores não suportarão mais o Java 7. Atualize para uma versão mais recente. Consulte O Monitoramento de Aplicações não suporta mais o Java 7.

1.8.0_25

Não recomendado

A instalação do agente pode falhar. Atualize para a versão 1.8.X mais recente.

1.8.0_31

Não recomendado

A instalação do agente pode falhar. Atualize para a versão 1.8.X mais recente.

1.8.0_191+

Recomendado

Versão mínima recomendada para clusters Kubernetes.

11.0.8+

Suportado

17

Suportado

Etapa 1: Instale o add-on ack-onepilot

Importante

O antigo componente arms-pilot não recebe mais manutenção. O ack-onepilot é seu substituto e totalmente compatível, sem exigir alterações na configuração da aplicação. Para migrar do arms-pilot, consulte Como desinstalar o arms-pilot e instale o ack-onepilot?

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

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

  3. Na seção Logs and Monitoring, localize o ack-onepilot e clique em Install. Na caixa de diálogo, mantenha os valores padrão dos parâmetros e clique em OK.

Nota

Por padrão, o ack-onepilot suporta até 1.000 pods. Para cada 1.000 pods adicionais, adicione 0,5 núcleos de CPU e 512 MB de memória ao componente ack-onepilot. Após a instalação, atualize, configure ou desinstale o ack-onepilot na página Add-ons.

Etapa 2: Autorizar o ARMS a acessar recursos

O método de autorização depende da existência do Secret addon.arms.token no cluster. Esse Secret permite que o ARMS autorize automaticamente sem senha. A maioria dos clusters gerenciados pelo ACK criados recentemente já o inclui por padrão, mas alguns clusters mais antigos podem não tê-lo.

Verifique se o cluster possui o addon.arms.token:

  1. Faça login no console do ACK e clique em Clusters.

  2. Clique em no nome do cluster. No painel de navegação à esquerda, escolha Configurations > Secrets.

  3. Selecione kube-system na lista suspensa Namespace e verifique se o addon.arms.token está listado.

Se o addon.arms.token existir: Nenhuma autorização adicional é necessária. Pule para a Etapa 3.

Se o addon.arms.token não existir: Conceda acesso ao ARMS para a Worker RAM Role do cluster:

  1. Faça login no console do ACK e clique em Clusters.

  2. Clique em no nome do cluster. No painel de navegação à esquerda, clique em Cluster Information.

  3. Na aba Basic Information, vá até a seção Cluster Resources e clique em no link ao lado de Worker RAM Role.

  4. Na aba Permissions, clique em Grant Permission.

  5. Selecione a política AliyunARMSFullAccess e clique em Grant permissions.

Se o cluster estiver conectado a Elastic Container Instances (ECI): Acesse a página de Autorização Rápida do RAM para conceder a função AliyunMSEForECIRole e reinicie os pods do ack-onepilot.

Etapa 3: Ative o monitoramento do ARMS para sua Deployment Java

Adicione rótulos do ARMS à seção spec.template.metadata do YAML da Deployment para ativar o monitoramento quando a aplicação iniciar.

  1. Faça login no console do ACK e clique em Clusters.

  2. Clique em no nome do cluster. No painel de navegação à esquerda, escolha Workloads > Deployments.

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

  4. Escolha um modelo na lista suspensa Sample Template e adicione os seguintes rótulos à seção spec.template.metadata no editor Template:

    armsSecAutoEnable: "on" conecta a aplicação à Segurança de Aplicações . Este rótulo é opcional. Para detalhes de faturamento, consulte Faturamento .
    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    # Replace with your application name
      armsSecAutoEnable: "on"    # Include this label only if you want to enable Application Security

    Substitua <your-deployment-name> pelo nome real da aplicação.

    O modelo YAML completo a seguir cria um namespace, duas Deployments e serviços de suporte, com o monitoramento do ARMS ativado em ambas as Deployments:

    YAML Example

    Expandir para visualize o modelo YAML completo

    apiVersion: v1
    kind: Namespace
    metadata:
      name: arms-demo
    ---
    apiVersion: apps/v1 # For versions earlier than 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 earlier than 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 listens on.
        - name: arms-demo-component-svc
          port: 6666
          targetPort: 8888
      # Label keys and values must match in order to receive traffic.
      selector:
        app: arms-springboot-demo-subcomponent
    ---
    apiVersion: apps/v1 # For versions earlier than 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 listens on.
        - name: arms-mysql-svc
          port: 3306
          targetPort: 3306
      # Label keys and values must match in order to receive traffic.
      selector:
        app: mysql
    ---

Verificar a configuração

Após o início da Deployment, confirme se o monitoramento está ativo:

  1. Na página Deployments do console do ACK, localize a aplicação e clique em image > ARMS Console na coluna Actions.

  2. No console do ARMS, confirme se o nome da aplicação aparece na lista de aplicações.

image.png

Próximos passos

  • Visão geral da aplicação — Explore o painel de Monitoramento de Aplicações do ARMS: rastreamento de requisições, mapas de topologia e métricas de desempenho.

Perguntas frequentes