O ARMS Application Monitoring permite monitorar aplicações Go em ambientes Kubernetes genéricos, incluindo topologia da aplicação, chamadas de API, erros, transações lentas e análise de SQL. Este tópico descreve como conectar essas aplicações ao ARMS Application Monitoring.
Este tópico aplica-se apenas a clusters Kubernetes não ACK. Para clusters Container Service for Kubernetes (ACK), consulte Instalar o probe Go para clusters ACK e Container Compute Service (ACS) usando o componente ack-onepilot.
Pré-requisitos
O componente kube-apiserver do cluster Kubernetes deve estar na versão 1.10 ou posterior.
Se o cluster Kubernetes não estiver implantado na Alibaba Cloud, ele precisará ter acesso à internet ou estar conectado a uma VPC da Alibaba Cloud, por exemplo, via Cloud Enterprise Network (CEN).
A aplicação Go deve ser da versão 1.18 ou posterior.
Etapa 1: Compilar a imagem da aplicação Golang
(Opcional) Se o projeto incluir um diretório
vendordurante a compilação, adicione-mod=vendorapósgo build.-
Use o comando
wgetpara baixe a ferramenta de compilação instgo. Selecione o endereço de download conforme o ambiente de compilação e a região da máquina de build.O instgo aciona atualizações automáticas durante a compilação. Salve-o em um diretório onde o usuário de build tenha permissões de escrita.
NotaO Instgo é uma ferramenta de compilação de aplicações Golang fornecida pelo ARMS. Após compilar o projeto Golang com o instgo, o ARMS começa a monitorar a aplicação.
As ferramentas de compilação baixadas para cada região são idênticas. Se o ambiente de rede pública tiver acesso a endereços OSS, use o endereço de rede pública de Hangzhou correspondente ao sistema operacional e à arquitetura para obter a ferramenta.
-
Conceda permissões de execução à ferramenta de compilação.
Linux/Mac
# Grant execute permissions chmod +x instgoWindows
Não são necessárias permissões de execução no Windows.
-
(Opcional) Configure a LicenseKey ou UID como parâmetro de compilação.
ImportanteSe você pular esta etapa, o instgo instale a versão mais recente do probe ARMS por padrão.
-
Obtenha a LicenseKey usando a OpenAPI DescribeTraceLicenseKey.
Na página de documentação da DescribeTraceLicenseKey, clique em Debug, selecione uma região e depois clique em Initiate Call para obter a LicenseKey.

-
Use o comando
setpara configure o UID ou a LicenseKey como parâmetro de compilação.instgo set --uid={YourAliyunUid} // Requires instgo version 1.4.5 or later. The UID is your Alibaba Cloud account UID. instgo set --licenseKey=${YourLicenseKey} // Configure either the UID or the LicenseKey.
-
-
Adicione
instgocomo prefixo ao comando de compilação existente e execute a compilação.instgo go build {arg1} {arg2} {arg3}Se usar
go installpara compilar o projeto, também adicioneinstgocomo prefixo ao comando de compilação existente e execute-o. Crie a imagem usando o arquivo binário compilado na etapa anterior.
Etapa 2: Instalar o Helm 3
Etapa 3: Instale o agente
O Application Real-Time Monitoring Service (ARMS) suporta apenas aplicações stateless (Deployment) e stateful (StatefulSet). Os passos de integração são os mesmos para ambos. Este exemplo demonstra como conectar uma aplicação stateless (Deployment) no Kubernetes ao ARMS.
-
Execute o seguinte comando
wgetpara baixe o pacote de instalação do ack-onepilot.wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-5.1.1.tgz' -
Execute o comando abaixo para extrair o pacote de instalação do ack-onepilot.
tar xvf ack-onepilot-5.1.1.tgz -
Edite o arquivo values.yaml no pacote de instalação. Modifique os seguintes parâmetros para corresponder ao seu ambiente e salve o arquivo.
registry: registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ cluster_id: __ACK_CLUSTER_ID__ accessKey: __ACCESSKEY__ accessKeySecret: __ACCESSKEY_SECRET__ uid: "__ACK_UID__" region_id: __ACK_REGION_ID__registry: O registro de imagens para o ack-onepilot.cluster_id: Um ID de cluster personalizado que identifica exclusivamente seu cluster Kubernetes. Recomendamos o formato<uid>-<clusterid>.-
accessKeyeaccessKeySecret: O AccessKey ID e o AccessKey Secret da sua conta Alibaba Cloud (conta principal). Para obtê-los, consulte Criar um AccessKey.ImportanteCertifique-se de que a conta principal possua as permissões AliyunARMSFullAccess e AliyunSTSAssumeRoleAccess.
uid: O ID da sua conta Alibaba Cloud (conta principal). Você pode obtê-lo passando o mouse sobre sua foto de perfil no canto superior direito do console Alibaba Cloud.region_id: O ID da região da Alibaba Cloud. Para obter uma lista das regiões suportadas, consulte Regiões disponíveis.
-
Execute o comando a seguir para instale o ack-onepilot.
Execute este comando fora do diretório do pacote de instalação do ack-onepilot.
helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace
Etapa 4: Modifique o arquivo YAML do Deployment
-
Execute o comando abaixo para visualize o arquivo YAML do Deployment alvo.
kubectl get deployment {deployment-name} -o yamlNotaSe não souber o
{deployment-name}, execute o comando a seguir para listar todos os Deployments. Em seguida, localize o nome do Deployment desejado na saída.kubectl get deployments --all-namespaces -
Edite o arquivo YAML do Deployment alvo.
kubectl edit deployment {deployment-name} -o yaml -
No arquivo YAML, adicione o seguinte conteúdo em
spec.template.metadata.labels: aliyun.com/app-language: "golang" # Required for Go applications. armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" # Replace <your-deployment-name> with your application name.Se precisar crie um novo Deployment no ambiente K8s e conectá-lo ao ARMS, use o arquivo YAML completo abaixo:
Resultado
A integração será bem-sucedida se a aplicação Go aparecer no console ARMS em e começar a reportar dados em aproximadamente um minuto.