O Instgo é uma ferramenta de instrumentação em tempo de compilação que adiciona monitoramento do Application Real-Time Monitoring Service (ARMS) a aplicações Go. Adicione instgo antes do seu comando padrão go build, e o binário compilado passará a reportar automaticamente os seguintes dados de monitoramento ao ARMS:
Topologia de aplicação
Cadeias de chamada
Análise de SQL
Não é necessário alterar o código-fonte.
As instruções a seguir se aplicam ao instgo 1.3.0 e versões posteriores. Execute instgo version para verificar sua versão. Se for anterior à 1.3.0, faça o upgrade seguindo as instruções em Start monitoring a Go application .
Pré-requisitos
O ambiente de build deve ter acesso à internet ou conectividade com a rede interna da Alibaba Cloud. O grupo de segurança deve permitir tráfego TCP de saída na porta 80.
Para implantar o binário compilado em um ambiente de produção, configure os parâmetros de compilação LicenseKey e RegionId. Para mais detalhes, consulte Start monitoring a Go application.
Baixar o instgo
-
Baixe o binário para sua plataforma e região. Use
wgetpara baixar o instgo. Selecione o comando correspondente ao seu sistema operacional, arquitetura de CPU e região. Salve o instgo em um diretório onde o usuário de build tenha permissões de escrita, pois o instgo aciona uma atualização automática durante a compilação.O binário é idêntico em todas as regiões. Se o seu ambiente consegue acessar os endpoints públicos do Object Storage Service (OSS), utilize o endpoint público de qualquer região.
-
Conceda permissões de execução.
Linux/Darwin
chmod +x instgoWindows
Nenhuma permissão adicional é necessária.
-
Verifique a instalação.
Execute o comando de versão. Uma instalação bem-sucedida exibe uma mensagem semelhante a
Instgo version 1.3.0_dea8285.Linux/Darwin
Instgo version 1.3.0_dea8285Windows
./instgo version (Opcional) Adicione o instgo ao seu PATH para facilitar o acesso.
O instgo é atualizado automaticamente no início de cada compilação, conforme o cronograma de lançamentos do ARMS. Em casos raros, isso pode causar falha no build. Tente compilar novamente para resolver o problema.
Se a versão do instgo for anterior à 1.3.0, o comando
updatepode não estar disponível. Exclua o binário existente e baixe a versão mais recente.
Compilar uma aplicação Go
Certifique-se de que o comando go esteja no PATH antes de compilar. Verifique executando go version.
Adicione instgo como prefixo ao seu comando go build existente. Todas as flags e argumentos padrão do go build são repassados sem alteração.
Comando original:
go build -ldflags "-X main.Env=prod -X main.Version=1.0.0" -o app main.go
Com instgo:
instgo go build -ldflags "-X main.Env=prod -X main.Version=1.0.0" -o app main.go
Se o instgo não estiver no PATH, especifique o caminho completo ou relativo:
/path/to/instgo go build -ldflags "-X main.Env=prod -X main.Version=1.0.0" -o app main.go
Parâmetros de compilação
Execute instgo list para visualizar todos os parâmetros disponíveis e seus valores atuais.
Os parâmetros padrão são adequados para desenvolvimento e testes locais. Para implantações em produção, defina o LicenseKey e o RegionId antes de compilar.
Referência de parâmetros
Obrigatórios para produção
|
Flag |
Environment variable |
Type |
Default |
Descrição |
|
|
|
String |
None |
LicenseKey do ARMS. Ao definir este valor, o modo desenvolvedor é desativado. Recupere-o chamando a operação de API DescribeTraceLicenseKey. |
|
|
|
String |
cn-hangzhou |
Região para download do pacote do agente e envio dos logs de compilação. Se o ambiente de build estiver em uma VPC, defina este parâmetro com a região desse ambiente. |
|
|
|
Bool |
true |
Modo desenvolvedor. Permite testes com recursos reduzidos. Desativado automaticamente quando o LicenseKey é definido. |
Configuração do agente
|
Flag |
Environment variable |
Type |
Default |
Descrição |
|
|
|
String |
None |
Fixa uma versão específica do agente Golang. |
|
|
|
String |
None |
Caminho local para um agente Golang pré-baixado. |
|
|
|
String |
None |
Diretório de cache para o agente Golang. |
|
|
|
Int |
180 |
Tempo limite em segundos para download do agente Golang. |
|
|
|
Bool |
false |
Baixa o agente Golang pela rede interna. |
Controle de instrumentação
|
Flag |
Environment variable |
Type |
Default |
Descrição |
|
|
|
Bool |
false |
Desativa todos os aprimoramentos automáticos de código do ARMS. Use com cautela. |
|
|
|
String |
None |
Adiciona um modelo personalizado de aprimoramento de código. Consulte Use the custom extension feature of the Golang agent. |
|
|
|
String |
None |
Aplica regras não-base fornecidas pelo agente ARMS, como |
|
|
|
String |
None |
SDKs a excluir da instrumentação (por exemplo, |
Opções de build
|
Flag |
Environment variable |
Type |
Default |
Descrição |
|
|
|
Bool |
false |
Compila no modo vendor. |
|
|
|
Bool |
false |
Exibe logs detalhados de compilação. |
|
|
|
String |
None |
ID de usuário para compilação, a fim de evitar vazamento da license key. |
|
|
|
String |
None |
Caminho do cache Go (por exemplo, |
Persistir parâmetros com o comando set
O comando set salva os parâmetros em $HOME/.instgo.yaml. As compilações subsequentes leem esses valores automaticamente.
Configure o instgo para produção:
instgo set --licenseKey=${ARMS_LICENSEKEY} --regionId=${ARMS_REGIONID} --dev=false
Em seguida, compile normalmente:
instgo go build -a
Redefinir parâmetros para os valores padrão
instgo reset
Substituir parâmetros com variáveis de ambiente
As variáveis de ambiente se aplicam apenas à sessão atual do shell e têm precedência sobre os valores salvos com o comando set.
Recupere o LicenseKey chamando a operação de API DescribeTraceLicenseKey.
Linux/Darwin
export INSTGO_LICENSE_KEY=${ARMS_LICENSEKEY}
export INSTGO_REGION_ID=${ARMS_REGIONID}
export INSTGO_DEV="false"
Windows
$env:INSTGO_LICENSE_KEY=${ARMS_LICENSEKEY}
$env:INSTGO_REGION_ID=${ARMS_REGIONID}
$env:INSTGO_DEV="false"
Em seguida, compile:
instgo go build -a
Como alternativa, defina as variáveis de ambiente diretamente no comando de build:
Linux/Darwin
INSTGO_LICENSE_KEY=${ARMS_LICENSEKEY} INSTGO_REGION_ID=${ARMS_REGIONID} INSTGO_DEV="false" instgo go build -a
Windows
$env:INSTGO_LICENSE_KEY=${ARMS_LICENSEKEY}; $env:INSTGO_REGION_ID=${ARMS_REGIONID}; $env:INSTGO_DEV="false"; instgo.exe go build -a
Limpar arquivos temporários
Remova os arquivos temporários de compilação e execução do diretório atual:
instgo clean
Para também excluir os agentes Golang armazenados em cache localmente:
instgo clean --localAgents
Atualizar o instgo
Atualize o instgo e o agente Golang para as versões mais recentes:
instgo update
Histórico de versões
|
Versão |
Data de lançamento |
Alterações |
|
1.4.7 |
20 de setembro de 2026 |
Alterada a versão padrão do agente para 2.11.0. |
|
1.4.6 |
27 de janeiro de 2026 |
Alterada a versão padrão do agente para 2.3.0. Adicionado o parâmetro |
|
1.4.5 |
9 de janeiro de 2026 |
Alterada a versão padrão do agente para 2.2.3. Adicionado o parâmetro |
|
1.4.4 |
22 de dezembro de 2025 |
Corrigida a detecção de versão do Go no Red Hat. Adicionada a opção |
|
1.4.3 |
9 de dezembro de 2025 |
Alterada a versão padrão do agente para 2.2.0. Reduzida a quantidade de logs gerados. |
|
1.4.2 |
28 de outubro de 2025 |
Alterada a versão padrão do agente para 2.0.4. Adicionada integração com |
|
1.4.1 |
14 de outubro de 2025 |
Alterada a versão padrão do agente para 2.0.4. Corrigida a detecção incorreta de versão do Go. |
|
1.4.0 |
11 de setembro de 2025 |
Alterada a versão padrão do agente para 1.8.6. Adicionada configuração do diretório pkg. Adicionada conversão de regras personalizadas do formato 1.x para o formato 2.x. |
|
1.3.9 |
5 de agosto de 2025 |
Alterada a versão padrão do agente para 1.8.5. Corrigida a análise do campo tool do |
|
1.3.8 |
29 de maio de 2025 |
Corrigida falha de compilação quando |
|
1.3.7 |
19 de maio de 2025 |
Adicionado suporte à compilação via |
|
1.3.6 |
28 de abril de 2025 |
Alterada a versão padrão do agente para 1.7.0. Adicionados logs de debug. |
|
1.3.5 |
17 de abril de 2025 |
Adicionado suporte ao modo vendor. |
|
1.3.4 |
31 de março de 2025 |
Adicionado suporte a proxy de comandos nativos do Go. |
|
1.3.3 |
28 de fevereiro de 2025 |
Alterada a versão padrão do agente para 1.6.0. |
|
1.3.2 |
17 de janeiro de 2025 |
Corrigido um problema em que usuários sem permissão de escrita no binário do instgo acionavam atualizações automáticas repetidas. Caso você enfrente esse problema, exclua o instgo e baixe-o novamente. |
|
1.3.1 |
10 de janeiro de 2025 |
Alterado o diretório de cache padrão do agente para |
|
1.3.0 |
5 de dezembro de 2024 |
Adicionado o modo de compilação por prefixo. Adicionados os comandos |