A instalação do agente Go permite que o Application Real-Time Monitoring Service (ARMS) monitore sua aplicação Go e forneça dados sobre topologia da aplicação, traces e análise de SQL.
Para aplicações em ambiente Kubernetes, não instale o agente manualmente. Use o componente fornecido para integrar a aplicação ao ARMS. Para mais informações, consulte Install the Go agent for Container Service for Kubernetes (ACK) and Container Compute Service (ACS) using the ack-onepilot component.
Em caso de dúvidas sobre o agente Go, entre em contato conosco pelo grupo de perguntas e respostas no DingTalk (ID: 159215000379).
Pré-requisitos
O ambiente de build deve ter conexão com a internet ou com uma rede interna da Alibaba Cloud. Verifique se o grupo de segurança permite tráfego TCP de saída nas portas 8080, 9990, 80 e 443.
Verifique o ambiente de rede. Para mais informações, consulte Network configurations for Go application monitoring.
Confira o sistema operacional, a arquitetura, a versão do Go e a versão do framework do ambiente de build. Para mais informações, consulte Go components and frameworks supported by ARMS Application Monitoring.
Etapa 1: Compilar a imagem da aplicação Go
Para usar o monitoramento de aplicações Go do ARMS, basta utilizar a ferramenta instgo durante o build, adicionando instgo como prefixo ao comando original go build. Não é necessário modificar código de negócio nem integrar o SDK do OpenTelemetry. O agente instgo implementa instrumentação automática baseada no padrão OpenTelemetry e insere o código de monitoramento automaticamente durante a fase de análise AST na compilação.
(Opcional) Se o projeto incluir um diretório vendor durante o build, adicione
-mod=vendorapósgo build.-
Use o comando
wgetpara baixar a ferramenta de build instgo. Selecione uma URL de download compatível com o sistema operacional e a arquitetura do ambiente de build.O instgo é atualizado automaticamente durante o processo de build. Salve o instgo em um diretório onde o usuário de build tenha permissões de escrita.
NotaO instgo é uma ferramenta de build do ARMS que instrumenta seu projeto Go e permite o monitoramento da aplicação.
Se houver acesso à internet para o Object Storage Service (OSS), use a URL de download de China (Hangzhou) correspondente ao seu sistema operacional e arquitetura.
-
Torne a ferramenta de build executável.
Linux/Mac
# Grant the executable permission. chmod +x instgoWindows
No Windows, não é necessário conceder permissão de execução.
-
(Opcional) Configure um UID como parâmetro de build.
ImportanteSe esta etapa for ignorada, o instgo instalará a versão mais recente do agente ARMS por padrão.
Use o comando
setpara configurar um UID como parâmetro de build.instgo set --uid={YourAliyunUid} // instgo 1.4.5 or later is required. The UID is the ID of your Alibaba Cloud primary account. -
Adicione
instgocomo prefixo ao comando de build original e execute-o.instgo go build {arg1} {arg2} {arg3}Caso utilize
go installpara compilar o projeto, também é possível adicionarinstgocomo prefixo ao comando de build original. Use o arquivo binário gerado na etapa anterior para criar uma imagem.
Etapa 2: Configurar variáveis de ambiente
-
Após o build, adicione as seguintes variáveis de ambiente à aplicação Go:
export ARMS_ENABLE=true export ARMS_APP_NAME=xxx # The name of your application. export ARMS_REGION_ID=xxx # The region ID of your Alibaba Cloud account. export ARMS_LICENSE_KEY=xxx # The license key from the ARMS console.NotaPara reportar dados pela internet por padrão, defina a variável de ambiente
ARMS_NETWORK_STRATEGY=public. -
Em vez de exportar variáveis de ambiente, use a flag -ldflags para especificá-las durante o processo de build.
Substitua
modulepelo nome do módulo configurado no go mod. Para outros parâmetros, consulte as variáveis de ambiente.instgo go build -ldflags " -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.ArmsApmName=${appName}' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.ArmsEnable=true' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.LicenseKey=${licenseKey}' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.RegionId=${regionId}'" -
Ao usar o systemctl para iniciar a aplicação, execute os comandos abaixo para definir as variáveis de ambiente:
systemctl set-environment ARMS_ENABLE=true systemctl set-environment ARMS_APP_NAME=xxx # The name of your application. systemctl set-environment ARMS_REGION_ID=xxx # The region ID of your Alibaba Cloud account. systemctl set-environment ARMS_LICENSE_KEY=xxx # The license key from the ARMS console.
(Opcional) Configuração do Dockerfile
Em ambientes Docker, modifique o Dockerfile conforme o exemplo a seguir.
FROM golang:1.21 AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo
RUN chmod +x instgo
RUN ./instgo go build -o myapp .
FROM debian:bookworm-slim
WORKDIR /app
COPY --from=builder /app/myapp .
ENV ARMS_ENABLE=true
ENV ARMS_APP_NAME=AppName
ENV ARMS_REGION_ID=regionId
ENV ARMS_LICENSE_KEY=licenseKey
EXPOSE 8080
CMD ["./myapp"]
Verificar os resultados
Após aproximadamente um minuto, verifique a página no console do ARMS. Se a aplicação aparecer e estiver reportando dados, a instalação do agente foi bem-sucedida.