Como configurar o Stackdriver Debugger para Go

Nesta página, você verá como configurar seu ambiente e o aplicativo em 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 depois usar o Cloud Identity and Access Management para restringir o acesso. Para manter essa prática recomendada, configure o escopo de acesso para todas as APIs do Cloud com a opção cloud-platform.

Antes de começar

Para começar a usar o Debugger, verifique se a API Stackdriver Debugger está ativada.
Ativar a API Stackdriver Debugger

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

GCLOUD

Para ativar o Debugger usando a gcloud, conclua as etapas abaixo:

  1. Crie seu cluster com um destes escopos de acesso:

    • https://www.googleapis.com/auth/cloud-platform concede ao cluster acesso a todas as APIs do Google Cloud.

    • https://www.googleapis.com/auth/cloud_debugger concede ao cluster acesso apenas à API Stackdriver Debugger. Use esse escopo de acesso para reforçar a segurança do seu cluster.

    gcloud container clusters create example-cluster-name \
           --scopes=https://www.googleapis.com/auth/cloud_debugger
    
  2. Adicione as linhas a seguir ao Dockerfile para incluir o agente do Debugger ao app em contêiner:

    RUN go get -u cloud.google.com/go/cmd/go-cloud-debug-agent \
        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 para o arquivo com formato JSON que contém a configuração do contexto de origem;

    • APP_NAME é o nome do seu aplicativo ou serviço. Além da versão, ele é usado para identificar seu aplicativo no Console do Cloud.

    • APP_VERSION é um marcador de versão fornecido pelo aplicativo. Por exemplo, é possível usar um número de versão. O Console do Cloud exibe a versão em execução como module - version. Por exemplo, main - 1.0;

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

    • ARG1 e ARG2 são marcadores para quaisquer argumentos a mais que o aplicativo exigir.

O depurador agora estará pronto para uso quando você implantar o app em contêiner.

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

CONSOLE

Para ativar o Debugger usando o Console, conclua as etapas a seguir:

  1. Depois de selecionar o tipo de cluster, clique em Mais opções no painel Pool de nós:

    Campo

  2. Selecione uma das opções abaixo no painel Segurança:

    • Permitir acesso completo a todas as APIs do Cloud.

    • Permitir o acesso de cada API e, em seguida, selecionar Ativado para o Cloud Debugger.

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 destes escopos de acesso:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  3. As otimizações atuais do compilador em 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. As amostras de comandos a seguir demonstram como desativar as otimizações ao usar o Go 1.10 ou uma versão mais recente:

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

    O valor gcflags anterior inclui -N para desativar otimizações e -l para desativar o inlining.

  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 para o arquivo com formato JSON que contém a configuração do contexto de origem;

    • APP_NAME é o nome do seu aplicativo ou serviço. Além da versão, ele é usado para identificar seu aplicativo no Console do Cloud.

    • APP_VERSION é um marcador de versão fornecido pelo aplicativo. Por exemplo, é possível usar um número de versão. O Console do Cloud exibe a versão em execução como module - version. Por exemplo, main - 1.0;

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

    • ARG1 e ARG2 são marcadores para quaisquer argumentos a mais 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.

Ambiente local e outros

O agente do Stackdriver Debugger para Go é compatível com ambientes locais ou outros que usam o Go 1.9 e versões anteriores.

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

Enviar comentários sobre…

Documentação do Stackdriver Debugger