Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Instale o agente Go com ack-onepilot

Última atualização: Aug 24, 2026

Para monitorar aplicações Go implantadas no Container Service for Kubernetes (ACK) ou no Container Compute Service (ACS), instale o componente ack-onepilot do Application Real-Time Monitoring Service (ARMS) e compile o arquivo binário Go. Em seguida, visualize dados de monitoramento, como topologia da aplicação, chamadas de API e análise de banco de dados, no ARMS. Este tópico descreve como instalar um agente Go para uma aplicação implantada no Container Service for Kubernetes (ACK) ou no Container Compute Service (ACS).

Nota
  • As etapas de instalação para ACK e ACS são idênticas. Este guia usa o ACK como exemplo.

  • Em caso de dúvidas sobre o agente Go, entre em contato pelo grupo de perguntas e respostas no DingTalk (ID: 159215000379).

Pré-requisitos

Passo 1: Conceda permissões para acessar recursos do ARMS

ACK managed cluster

Se não existir um ARMS Addon Token no seu ACK managed cluster, conceda manualmente as permissões para que o cluster acesse os recursos do ARMS.

Verifique se existe um ARMS Addon Token no cluster

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters. Na página Clusters, clique no nome do cluster para acessar a página de detalhes.

  2. No painel de navegação à esquerda, escolha Configurations > Secrets. Na parte superior da página, selecione kube-system na lista suspensa Namespace e verifique se addon.arms.token aparece na página Secrets.

Nota

Se um cluster possuir o ARMS Addon Token, o ARMS realizará autorização sem senha nesse cluster. O ARMS Addon Token pode não estar presente em alguns clusters ACK gerenciados. Recomendamos verificar se o cluster ACK gerenciado possui o ARMS Addon Token antes de usar o ARMS para monitorar aplicações nele. Caso o cluster não tenha o ARMS Addon Token, autorize o acesso do cluster ao ARMS.

Adicione políticas de permissão manualmente

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters. Na página Clusters, clique no nome do cluster.

  2. Na aba Basic Information da página Cluster Information, clique no link ao lado de Worker RAM Role na seção Cluster Resources.

  3. Na página exibida, clique em Grant Permission na aba Permissions.

  4. No painel Grant Permission, adicione as seguintes políticas e clique em Grant permissions.

    • AliyunTracingAnalysisFullAccess: acesso total ao Managed Service for OpenTelemetry.

    • AliyunARMSFullAccess: acesso total ao ARMS.

ACK dedicated and registered clusters

Para monitorar aplicações em clusters ACK dedicados e clusters registrados do ACK One, garanta que a conta Alibaba Cloud tenha as permissões AliyunARMSFullAccess e AliyunSTSAssumeRoleAccess. Para mais informações sobre como conceder permissões, consulte Grant permissions to a RAM user.

Após instalar o componente ack-onepilot, forneça também o par de AccessKey (AccessKey ID e AccessKey secret) de uma conta Alibaba Cloud com permissões no ARMS.

Método 1: Especifique o par de AccessKey no Helm

  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 cluster desejado. No painel de navegação à esquerda, escolha Application > Helm. Localize o componente ack-onepilot e clique em Atualize na coluna Actions.

  3. Substitua accessKey e accessKeySecret pelo seu AccessKey ID e AccessKey secret e clique em OK.

    Nota

    Para obter informações sobre como adquirir um par de AccessKey, consulte Create an AccessKey pair.

    Na página Update Release, no editor de configuração YAML, localize os campos accessKey e accessKeySecret na seção controller.

  4. Reinicie o Deployment da aplicação.

Método 2: Referencie o par de AccessKey a partir de um secret

  1. Faça login no Container Service for Kubernetes (ACK) console. No painel de navegação à esquerda, clique em Clusters.

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

  3. Selecione o namespace ack-onepilot, crie um secret e adicione as informações do par de AccessKey.

    Nota

    Para obter informações sobre como adquirir um par de AccessKey, consulte Create an AccessKey pair.

    Defina Name como ack-onepilot-aksk e Type como Opaque. Na tabela de dados, adicione pares chave-valor chamados ak e sk e defina seus valores com o AccessKey ID e o AccessKey secret correspondentes. Em seguida, clique em OK.

  4. No painel de navegação à esquerda, escolha Workloads > Stateless. Clique no componente ack-onepilot, geralmente chamado ack-onepilot-ack-onepilot e localizado no namespace ack-onepilot.

  5. No canto superior direito da página ack-onepilot-ack-onepilot, clique em Edite. Depois, na seção Environment Variables, adicione ONE_PILOT_ACCESSKEY e ONE_PILOT_ACCESSKEY_SECRET, defina seus valores referenciando o Secret e clique em OK.

    Defina o secret referenciado para ambas as variáveis como ack-onepilot-aksk. Defina a chave para ONE_PILOT_ACCESSKEY como ak e a chave para ONE_PILOT_ACCESSKEY_SECRET como sk.

ACK serverless clusters (ASK) and ECI-integrated clusters

Conclua a autorização na página Resource Access Authorization e reinicie todos os pods do componente ack-onepilot.

Passo 2: Instale o componente ack-onepilot

  1. Faça login no ACK console. Na página Clusters, clique no nome do cluster.

  2. No painel de navegação à esquerda, clique em Component Management e pesquise por ack-onepilot.

    Importante

    Certifique-se de que a versão do ack-onepilot seja 3.2.0 ou posterior.

  3. Clique em Install no cartão ack-onepilot.

    Nota

    Por padrão, o componente ack-onepilot suporta 1.000 pods. Para cada 1.000 pods adicionais no cluster, adicione 0,5 núcleos de CPU e 512 MB de memória ao componente.

  4. Na caixa de diálogo exibida, configure os parâmetros e clique em OK. Recomendamos utilizar os valores padrão.

    Nota

    Após instalar o ack-onepilot, atualize-o, configure-o ou desinstale-o na página Add-ons.

Passo 3: Compile a imagem da aplicação Go

  1. (Opcional) Se o projeto incluir um diretório vendor, adicione -mod=vendor após go build.

  2. Use o comando wget para baixar a ferramenta de compilação instgo e selecione o endereço de download correspondente ao ambiente de compilação e à região da máquina de compilação.

    O instgo se atualiza automaticamente durante a compilação. Salve o instgo em um diretório onde o usuário de build tenha permissões de escrita.

    Nota
    • O Instgo é uma ferramenta de build fornecida pelo ARMS para aplicações Go. Após compilar o projeto Go com o instgo, o ARMS poderá monitorar a aplicação.

    • A ferramenta de build é a mesma em todas as regiões. Se a rede pública conseguir acessar a URL do OSS, baixe a ferramenta pelo endpoint público da região China (Hangzhou) compatível com o sistema operacional e a arquitetura.

    Visualizar comandos de download

    Linux (AMD64)

    Public URL

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo

    Linux (ARM64)

    Public URL

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-arm64" -O instgo

    Mac (ARM64)

    Public URL

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-arm64" -O instgo

    Mac (AMD64)

    Public URL

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-amd64" -O instgo

    Windows (AMD64)

    Public URL

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-windows-amd64.exe" -O instgo.exe

  3. Conceda permissões de execução à ferramenta de build.

    Linux and Mac

    # Grant execute permission
    chmod +x instgo

    Windows

    No Windows, não é necessário conceder permissões de execução.

  4. (Opcional) Configure o UID como um parâmetro de build.

    Importante

    Se você pular esta etapa, o instgo instalará a versão mais recente do agente ARMS por padrão.

    Use o comando set para configurar o UID ou a chave de licença como um parâmetro de build.

    instgo set --uid={YourAliyunUid} // You must use instgo 1.4.5 or a later version. The uid is the UID of your primary Alibaba Cloud account.
  5. Prefixe o comando de build original com instgo.

    instgo go build {arg1} {arg2} {arg3}

    Este método também se aplica caso utilize go install.

  6. Crie uma imagem usando o arquivo binário gerado na etapa anterior.

Passo 4: Ative o monitoramento do ARMS para aplicações Go

O modelo YAML a seguir apresenta um exemplo completo de como criar uma aplicação stateless (Deployment) e ativar o monitoramento de aplicações do ARMS:

Visualize o arquivo YAML de exemplo completo (Go)

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: otel-go-client
  name: otel-go-client
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: otel-go-client
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        aliyun.com/app-language: golang
        armsPilotAutoEnable: 'on'
        armsPilotCreateAppName: otel-go-client
        app: otel-go-client
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/private-mesh/hellob:otel-client-arms-go-test-0.0.1
          imagePullPolicy: Always
          name: client
          resources:
            requests:
              cpu: 250m
              memory: 300Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

---

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: otel-go-server
  name: otel-go-server
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: otel-go-server
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: otel-go-server
        aliyun.com/app-language: golang
        armsPilotAutoEnable: 'on'
        armsPilotCreateAppName: otel-go-server
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/private-mesh/hellob:otel-server-arms-go-test-0.0.1
          imagePullPolicy: Always
          name: server
          resources:
            requests:
              cpu: 250m
              memory: 300Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

---

apiVersion: v1
kind: Service
metadata:
  labels:
    app: otel-go-server
  name: otel-server
  namespace: default
spec:
  internalTrafficPolicy: Cluster
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: http
      port: 9000
      protocol: TCP
      targetPort: 9000
  selector:
    app: otel-go-server
  sessionAffinity: None
  type: ClusterIP
  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. No topo da página Clusters, selecione o grupo de recursos e a região onde o cluster desejado está localizado e clique no nome desse cluster. No painel de navegação à esquerda, clique em Workloads e selecione Stateless, StatefulSets ou DaemonSets.

  3. Localize a aplicação desejada e escolha image > Edit YAML na coluna Actions.

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

  4. No arquivo YAML, adicione os seguintes labels no nível spec.template.metadata.

    labels:
      aliyun.com/app-language: golang # Required for Go applications. This indicates that this is a Go application.
      armsPilotAutoEnable: 'on'
      armsPilotCreateAppName: "<YOUR-DEPLOYMENT-NAME>"    # Replace <YOUR-DEPLOYMENT-NAME> with your application name.
  5. Clique em Update.

Resultados

Após cerca de um minuto, o agente estará conectado se a aplicação Go aparecer na página Application Monitoring > Application List no ARMS console e estiver reportando dados.