Configura Stackdriver Debugger para Go

En esta página se describe cómo configurar el entorno y la aplicación de Go para usar Stackdriver Debugger. Para algunos entornos, debes especificar de forma explícita el nivel de acceso a fin de permitir que el agente de Stackdriver Debugger envíe datos. Recomendamos configurar el nivel de acceso más amplio posible y luego usar Cloud Identity and Access Management para restringir el acceso. De acuerdo con estas recomendaciones, configura el nivel de acceso para que sean todas las API de Cloud con la opción cloud-platform.

Entorno estándar de App Engine

El entorno estándar de App Engine todavía no admite al agente de Stackdriver Debugger para Go.

Entorno flexible de App Engine

El entorno flexible de App Engine todavía no admite al agente de Stackdriver Debugger para Go.

GKE

  1. Asegúrate de que se creó el clúster con uno de los siguientes niveles de acceso:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger

    Ejemplo:

    gcloud container clusters create EXAMPLE-CLUSTER-NAME \
        --scopes https://www.googleapis.com/auth/cloud-platform
    
  2. Sigue las instrucciones para Compute Engine.

Compute Engine

  1. Asegúrate de que tus instancias de VM de Compute Engine estén ejecutando una imagen de Debian Linux de 64 bits.

  2. Asegúrate de que tus instancias de VM de Compute Engine se creen con la opción de nivel de acceso Permitir acceso completo a todas las API de Cloud, o que tengan uno de los siguientes niveles de acceso:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  3. Las optimizaciones actuales del compilador de Go interfieren en la depuración precisa. Como resultado, Stackdriver Debugger muestra información incorrecta sobre la aplicación cuando está compilada con las optimizaciones predeterminadas del compilador de Go.

    Para obtener la información de depuración correcta, compila tu aplicación sin las optimizaciones predeterminadas. Los siguientes comandos de muestra ilustran cómo inhabilitar las optimizaciones cuando se utiliza Go 1.10 o una versión posterior:

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

    El valor anterior de gcflags incluye -N para inhabilitar las optimizaciones y -l para inhabilitar el intercalado.

  4. Descarga el agente de depuración.

    El agente de Stackdriver Debugger es un objeto binario ligero que habilitas para tu aplicación en el inicio. El agente se inicia con tu aplicación y se comunica con el backend de Stackdriver Debugger mientras se ejecuta la aplicación.

    Una vez compilada e implementada la aplicación de Compute Engine, descarga y, luego, instala el agente de depuración:

    go get -u cloud.google.com/go/cmd/go-cloud-debug-agent
    
  5. Inicia el agente y tu programa:

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

    Leyenda:

    • PATH_TO_FILE especifica la ruta relativa al archivo con formato JSON que contiene la configuración de contexto de origen. Consulta Selecciona el código fuente de forma automática para obtener información sobre la generación de este archivo.

    • APP_NAME es el nombre de la aplicación o servicio. Esto, junto con la versión, se utiliza para identificar tu aplicación en GCP Console.

    • APP_VERSION es un marcador de versión que suministra la aplicación. Por ejemplo, puedes usar un número de compilación. GCP Console muestra la versión en ejecución como module - version. Por ejemplo, main - 1.0.

    • PATH_TO_BINARY especifica la ruta de acceso relativa al objeto binario de la aplicación.

    • ARG1 y ARG2 son marcadores de posición para cualquier argumento adicional que requiera tu aplicación.

    Por ejemplo:

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

Ahora puedes usar el depurador con tu aplicación.

Para que la página de Depuración en GCP Console muestre automáticamente el código fuente que coincide con la aplicación implementada, consulta Selecciona el código fuente de forma automática.

En el entorno local y en otros lugares

El agente de Stackdriver Debugger para Go solo se admite en los entornos Kubernetes Engine y Compute Engine. No está admitido en entornos locales o de otro tipo.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Stackdriver Debugger