Como configurar o Stackdriver Debugger para Go

Esta página descreve como configurar seu ambiente e seu aplicativo Go para usar o Stackdriver Debugger. Para alguns ambientes, é preciso especificar explicitamente o escopo de acesso para permitir que o agente do Stackdriver Debugger envie dados. Recomendamos definir o escopo de acesso da forma mais ampla possível e, em seguida, usar o Cloud Identity and Access Management para restringir o acesso. Para manter essa prática recomendada, defina o escopo de acesso para todas as APIs Cloud com a opção cloud-platform.

Ambiente padrão do App Engine

O agente do Stackdriver Debugger para Go ainda não é aceito no ambiente padrão do App Engine.

Ambiente flexível do App Engine

O agente do Stackdriver Debugger para Go ainda não é aceito no ambiente flexível do App Engine.

Google Kubernetes Engine

  1. Crie seu cluster com um dos seguintes escopos de acesso:
    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger

    Para criar um cluster usando o gcloud, faça o seguinte:

    1. Atualize o gcloud para a versão mais recente (opcional):
      gcloud components update
    2. Defina o código do projeto padrão:
      gcloud config set project [PROJECT_ID]
    3. Se você estiver trabalhando com clusters zonais, defina a zona de computação padrão:
      gcloud config set compute/zone [COMPUTE_ZONE]
    4. Se você estiver trabalhando com clusters regionais, defina a região de computação padrão:
      gcloud config set compute/region [COMPUTE_REGION]
    5. Execute o comando de criação:
      gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform

    Para informações mais detalhadas, consulte Como criar um cluster.

  2. Siga as instruções do Compute Engine.

Compute Engine

  1. Verifique se as instâncias de VM do Compute Engine estão executando uma imagem do Debian Linux de 64 bits.

  2. Verifique se as instâncias de VM do Compute Engine foram criadas com a opção de escopo de acesso Permitir acesso completo a todas as APIs do Cloud ou se elas têm um dos seguintes escopos de acesso:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  3. As otimizações atuais do compilador Go interferem na precisão da depuração. Como resultado, o Stackdriver Debugger mostra informações incorretas sobre seu aplicativo quando ele é criado com as otimizações padrão do compilador Go.

    Para ver as informações de depuração corretas, crie o aplicativo sem as otimizações padrão. Os exemplos de comandos a seguir demonstram como desativar as otimizações ao usar o go1.10 ou uma versão mais recente:

    go build -gcflags=all='-N -l'
    

    O valor anterior de gcflags inclui -N para desativar otimizações e -l para desativar a colocação in-line.

  4. Faça o download do agente do Debugger.

    O agente do Stackdriver Debugger é um binário leve que você ativa para o aplicativo na inicialização. O agente é iniciado com o aplicativo e se comunica com o back-end do Stackdriver Debugger enquanto o aplicativo está em execução.

    Depois de criar e implantar seu aplicativo do Compute Engine, faça o download e instale o agente de depuração:

    go get -u cloud.google.com/go/cmd/go-cloud-debug-agent
    
  5. Inicie o agente e o programa:

    go-cloud-debug-agent -sourcecontext=[PATH_TO_FILE] -appmodule=[APP_NAME] \
                     -appversion=[APP_VERSION] -- [PATH_TO_BINARY] [ARG1] [ARG2]
    

    Em que:

    • PATH_TO_FILE especifica o caminho relativo ao arquivo com formato JSON que contém a configuração de contexto de origem. Consulte Como selecionar o código-fonte automaticamente para ver informações sobre como gerar esse arquivo;

    • APP_NAME é o nome do seu aplicativo ou serviço. Juntamente com a versão, essa informação é usada para identificar o aplicativo no Console do GCP;

    • APP_VERSION é um marcador de versão fornecido pelo aplicativo. Por exemplo, você pode usar um número de versão. O Console do GCP mostra a versão em execução como module - version. Por exemplo, main - 1.0;

    • PATH_TO_BINARY especifica o caminho relativo ao binário do aplicativo;

    • ARG1 e ARG2 são marcadores de posição para quaisquer argumentos adicionais que o aplicativo exigir.

    Exemplo:

    go-cloud-debug-agent -appmodule=main -appversion=1.0 -- bin/my-app my-arg
    

O depurador está pronto para ser usado com o app.

Para que a página "Depuração" no Console do GCP mostre automaticamente o código-fonte correspondente ao app implantado, consulte Como selecionar o código-fonte automaticamente.

Ambiente local e outros

O agente do Stackdriver Debugger para Go só é aceito nos ambientes Kubernetes Engine e Compute Engine. Ele não é aceito em ambientes locais ou outros.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Stackdriver Debugger