visualização
Ainda estamos trabalhando nesse recurso, mas adoraríamos que você experimentasse!
Atualmente, esse recurso é fornecido como parte de um programa de visualização de acordo com nossas políticas de pré-lançamento.
Go é uma linguagem compilada com um tempo de execução opaco, o que a torna incapaz de oferecer suporte à instrumentação automática como outras linguagens. Por esse motivo, o agente New Relic Go foi projetado como um SDK. Como o agente Go é um SDK, ele requer mais trabalho manual para configurar do que o agente para linguagens que suportam instrumentação automática.
Em um esforço para facilitar a instrumentação, a equipe do agente Go criou a ferramenta de instrumentação fácil de Go, que está atualmente em versão prévia. Esta ferramenta faz a maior parte do trabalho para você, sugerindo alterações no seu código-fonte que instrumentam seu aplicativo com o agente New Relic Go.
Para começar, confira este vídeo de quatro minutos ou pule para Como funciona.
Aviso de pré-visualização
Como funciona
Esta ferramenta não interfere na operação do seu aplicativo e não faz nenhuma alteração diretamente no seu código. Veja o que acontece:
- Ele analisa seu código e sugere alterações que permitem que o agente Go capture dados de telemetria.
- Você revisa as alterações no arquivo
.diff
e decide quais alterações adicionar ao seu código-fonte.
Como parte da análise, esta ferramenta pode invocar go get
ou outros comandos da cadeia de ferramentas da linguagem Go que podem modificar seu arquivo go.mod
, mas não seu código-fonte real.
Importante
Esta ferramenta não consegue detectar se você já possui instrumentação New Relic. Por favor, use esta ferramenta somente no aplicativo sem nenhuma instrumentação.
O que é instrumentado?
O escopo do que esta ferramenta pode instrumentar em seu aplicativo é limitado a estas ações:
- Capturando erros em qualquer função encapsulada ou rastreada por uma transação
- Rastreando funções definidas localmente que são invocadas no método
main()
do aplicativo com uma transação - Rastreando funções assíncronas e literais de função com um segmento assíncrono
- Envolvendo manipuladores HTTP
- Injetando distributed tracing no tráfego externo
Bibliotecas suportadas
- biblioteca padrão
- net/http
instalação
Antes de iniciar as etapas de instalação abaixo, certifique-se de ter uma versão do Go instalada que esteja dentro da janela de suporte para o ciclo de vida atual da linguagem de programação Go.
Instalar instrumentação Go easy:
$go install github.com/newrelic/go-easy-instrumentation@latest
Gerar sugestões de instrumentação
Esta ferramenta funciona melhor com o Git. Recomendamos que você verifique se seu aplicativo está em uma ramificação sem nenhuma alteração não preparada antes de aplicar qualquer uma das alterações geradas a ele. Depois de verificar isso, siga estas etapas para gerar e aplicar as alterações que instalam o agente New Relic Go em um aplicativo:
- Execute o seguinte comando CLI para criar um arquivo chamado
new-relic-instrumentation.diff
no seu diretório de trabalho:bash$go-easy-instrumentation -path ../my-application/ - Abra o arquivo
.diff
e verifique ou corrija o conteúdo. - Quando estiver satisfeito com as sugestões de instrumentação, salve o arquivo e aplique as alterações:bash$mv new-relic-instrumentation.diff ../my-application/$cd ../my-application$git apply new-relic-instrumentation.diff
Depois que as alterações forem aplicadas, o aplicativo deverá ser executado com o agente New Relic Go instalado. Se a instalação do agente não estiver funcionando da maneira que você deseja, você pode recuperá-la facilmente usando comandos comuns do Git. Por exemplo, você pode tentar um dos seguintes:
- Guarde as mudanças com
git stash
- Reverter o código para um commit anterior
Qual é o próximo?
Se você tiver alguma sugestão ou encontrar problemas, crie um problema no Github.