Todos os produtos
Search
Central de documentação

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

Última atualização: Oct 09, 2026

Para monitorar aplicações Go implantadas no Container Service for Kubernetes (ACK) ou Container Compute Service (ACS), você precisa instalar o componente ack-onepilot do Application Real-Time Monitoring Service (ARMS) e compilar seu 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 Container Compute Service (ACS).

Nota
  • Os passos de instalação para ACK e ACS são idênticos. Este guia usa ACK como exemplo.

  • Se você tiver dúvidas sobre o agente Go, entre em contato conosco no grupo de perguntas e respostas do DingTalk (ID: 159215000379).

Pré-requisitos

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

ACK managed cluster

Se não houver ARMS Addon Token no seu ACK managed cluster, você precisa conceder manualmente as permissões do cluster para acessar recursos do ARMS.

Verifique se existe ARMS Addon Token no cluster.

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

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

Nota

Se um cluster tiver ARMS Addon Token, o ARMS realiza autorização sem senha no cluster. O ARMS Addon Token pode não existir em alguns ACK managed clusters. Recomendamos verificar se um ACK managed cluster possui ARMS Addon Token antes de usar o ARMS para monitorar aplicações no cluster. Se o cluster não tiver ARMS Addon Token, você precisa autorizar o cluster a acessar o ARMS.

Adicione manualmente políticas de permissão

  1. Faça login no ACK console. 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 aba Permissions, clique em Grant Permission.

  4. No painel Grant Permission, adicione as duas políticas de acesso a seguir e clique em Confirm Grant Permission.

    • AliyunTracingAnalysisFullAccess: acesso completo ao Managed Service for OpenTelemetry.

    • AliyunARMSFullAccess: acesso completo ao ARMS.

Clusters ACK dedicated e registered

Para monitorar aplicações em ACK dedicated clusters e ACK One registered clusters, certifique-se de 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, você também precisa fornecer o par AccessKey (AccessKey ID e AccessKey secret) de uma conta Alibaba Cloud que tenha permissões do ARMS.

Método 1: Especifique o par 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 Update na coluna Actions.

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

    Nota

    Para informações sobre como obter um par 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 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 seu par AccessKey.

    Nota

    Para informações sobre como obter um par 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 AccessKey secret correspondentes. Em seguida, clique em OK.

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

  5. No canto superior direito da página ack-onepilot-ack-onepilot, clique em Edit. Em seguida, 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.

Clusters ACK serverless (ASK) e clusters integrados com ECI

Complete a autorização na página Resource Access Authorization, em seguida 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 card do ack-onepilot.

    Nota
    • Por padrão, o componente ack-onepilot suporta 1.000 pods. Para cada 1.000 pods adicionais no cluster, você precisa adicionar 0,5 núcleos de CPU e 512 MB de memória para o componente.

    • Se você instalar o ack-onepilot em um cluster ACS, configure accessKey e accessKeySecret na parte inferior do card de instalação. Use o AccessKey ID e AccessKey secret da sua conta Alibaba Cloud. Para informações sobre como obtê-los, consulte Create an AccessKey. Certifique-se de que a conta Alibaba Cloud tenha as permissões AliyunARMSFullAccess e AliyunSTSAssumeRoleAccess.

  4. Na página que aparece, configure os parâmetros. Recomendamos usar os valores padrão. Clique em OK.

    Nota

    Após instalar o ack-onepilot, você pode fazer upgrade, configurar ou desinstalá-lo na página Add-ons.

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

  1. (Opcional) Se o seu 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 que corresponda ao seu ambiente de compilação e à região da sua 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 compilação tenha permissões de escrita.

    Nota
    • Instgo é uma ferramenta de compilação que o ARMS fornece para aplicações Go. Após compilar seu projeto Go usando o instgo, o ARMS pode monitorar sua aplicação Go.

    • A ferramenta de compilação é a mesma em todas as regiões. Se sua rede pública puder acessar a URL do OSS, você pode baixar a ferramenta do endpoint público da região China (Hangzhou) que corresponda ao seu sistema operacional e arquitetura.

    Visualize os comandos de download

    Linux (AMD64)

    URL pública

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

    Linux (ARM64)

    URL pública

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

    Mac (ARM64)

    URL pública

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

    Mac (AMD64)

    URL pública

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

    Windows (AMD64)

    URL pública

    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 compilação.

    Linux e Mac

    # Grant execute permission
    28	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 compilação.

    Importante

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

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

    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. Adicione o prefixo instgo ao seu comando de compilação original.

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

    Este método também se aplica se você usar 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 mostra 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
29	kind: Deployment
30	metadata:
31	  labels:
32	    app: otel-go-client
33	  name: otel-go-client
34	  namespace: default
35	spec:
36	  progressDeadlineSeconds: 600
37	  replicas: 1
38	  revisionHistoryLimit: 10
39	  selector:
40	    matchLabels:
41	      app: otel-go-client
42	  strategy:
43	    rollingUpdate:
44	      maxSurge: 25%
45	      maxUnavailable: 25%
46	    type: RollingUpdate
47	  template:
48	    metadata:
49	      labels:
50	        aliyun.com/app-language: golang
51	        armsPilotAutoEnable: 'on'
52	        armsPilotCreateAppName: otel-go-client
53	        app: otel-go-client
54	    spec:
55	      containers:
56	        - image: registry.cn-hangzhou.aliyuncs.com/private-mesh/hellob:otel-client-arms-go-test-0.0.1
57	          imagePullPolicy: Always
58	          name: client
59	          resources:
60	            requests:
61	              cpu: 250m
62	              memory: 300Mi
63	          terminationMessagePath: /dev/termination-log
64	          terminationMessagePolicy: File
65	      dnsPolicy: ClusterFirst
66	      restartPolicy: Always
67	      schedulerName: default-scheduler
68	      securityContext: {}
69	      terminationGracePeriodSeconds: 30
70
71	---
72
73	apiVersion: apps/v1
74	kind: Deployment
75	metadata:
76	  labels:
77	    app: otel-go-server
78	  name: otel-go-server
79	  namespace: default
80	spec:
81	  progressDeadlineSeconds: 600
82	  replicas: 1
83	  revisionHistoryLimit: 10
84	  selector:
85	    matchLabels:
86	      app: otel-go-server
87	  strategy:
88	    rollingUpdate:
89	      maxSurge: 25%
90	      maxUnavailable: 25%
91	    type: RollingUpdate
92	  template:
93	    metadata:
94	      labels:
95	        app: otel-go-server
96	        aliyun.com/app-language: golang
97	        armsPilotAutoEnable: 'on'
98	        armsPilotCreateAppName: otel-go-server
99	    spec:
100	      containers:
101	        - image: registry.cn-hangzhou.aliyuncs.com/private-mesh/hellob:otel-server-arms-go-test-0.0.1
102	          imagePullPolicy: Always
103	          name: server
104	          resources:
105	            requests:
106	              cpu: 250m
107	              memory: 300Mi
108	          terminationMessagePath: /dev/termination-log
109	          terminationMessagePolicy: File
110	      dnsPolicy: ClusterFirst
111	      restartPolicy: Always
112	      schedulerName: default-scheduler
113	      securityContext: {}
114	      terminationGracePeriodSeconds: 30
115
116	---
117
118	apiVersion: v1
119	kind: Service
120	metadata:
121	  labels:
122	    app: otel-go-server
123	  name: otel-server
124	  namespace: default
125	spec:
126	  internalTrafficPolicy: Cluster
127	  ipFamilies:
128	    - IPv4
129	  ipFamilyPolicy: SingleStack
130	  ports:
131	    - name: http
132	      port: 9000
133	      protocol: TCP
134	      targetPort: 9000
135	  selector:
136	    app: otel-go-server
137	  sessionAffinity: None
138	  type: ClusterIP
  1. 139

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

    140
  2. Na parte superior da página Clusters, selecione o grupo de recursos e a região onde o cluster desejado está localizado, e clique no nome do 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:
    141	  aliyun.com/app-language: golang # Required for Go applications. This indicates that this is a Go application.
    142	  armsPilotAutoEnable: 'on'
    143	  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 sua aplicação Go aparecer na página Application Monitoring > Application List no ARMS console e estiver reportando dados.

144