Configura Stackdriver Debugger para Java

En esta página se describe cómo configurar el entorno y la aplicación de Java 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 depurador está habilitado de forma predeterminada; no se requiere configuración. La página de Depuración en GCP Console intentará mostrar automáticamente los archivos de origen de Java utilizados para compilar la aplicación.

Para obtener más información, consulta Selecciona el código fuente de forma automática.

Entorno flexible de App Engine

El depurador está habilitado de forma predeterminada para el entorno de ejecución de Java; no se requiere configuración. La página de Depuración en GCP Console intentará mostrar automáticamente los archivos de origen de Java utilizados para compilar la aplicación.

El depurador se incluye de forma predeterminada en los entornos de ejecución personalizados que utilizan las imágenes base que proporciona Google para Java. No se requiere configuración si se utiliza el punto de entrada predeterminado. La página de Depuración en GCP Console intentará mostrar automáticamente los archivos de origen de Java utilizados para compilar la aplicación.

Para usar Stackdriver Debugger con entornos de ejecución personalizados compilados con otras imágenes base, sigue las instrucciones de configuración de Compute Engine.

Para obtener más información, consulta Selecciona el código fuente de forma automática.

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

Puedes usar Stackdriver Debugger con cualquier aplicación de Java que se ejecute en una instancia de Google Compute Engine. Recomendamos que lo habilites en todas las instancias en ejecución de tu aplicación.

  1. Asegúrate de que tus instancias de VM de Compute Engine estén ejecutando:

    • Una imagen de Debian Linux de 64 bits
    • Java JDK versión 7, 8 o 9
  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. Descarga el paquete de agente compilado previamente:

    mkdir /opt/cdbg
    wget -qO- https://storage.googleapis.com/cloud-debugger/compute-java/debian-wheezy/cdbg_java_agent_gce.tar.gz | \
        tar xvz -C /opt/cdbg
    
  4. Agrega el agente a tu invocación de Java:
    (Si estás utilizando Tomcat o Jetty, consulta la sección Servidores web).

    java -agentpath:/opt/cdbg/cdbg_java_agent.so \
      -Dcom.google.cdbg.module=MODULE \
      -Dcom.google.cdbg.version=VERSION \
      -jar PATH_TO_JAR_FILE
    

    Leyenda:

    • PATH_TO_JAR_FILE es la ruta de acceso relativa al archivo JAR de la aplicación. Por ejemplo: ~/myapp.jar.

    • MODULE es el nombre de la aplicación. Junto con la versión, identifica la aplicación en GCP Console. Ejemplos: MyApp, Backend o Frontend.

    • VERSION es la versión de la aplicación (p. ej., el ID de compilación). GCP Console muestra la aplicación en ejecución como MODULE - VERSION. Ejemplos: v1.0, build_147 o v20160520.

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.

Servidores web

Los servidores web de Java generalmente comienzan a través de un proceso de arranque, y cada servidor web tiene su propia manera de personalizar las opciones de Java.

Tomcat

Agrega esta línea a /etc/default/tomcat7 o /etc/default/tomcat8:

JAVA_OPTS="${JAVA_OPTS} -agentpath:/opt/cdbg/cdbg_java_agent.so \
  -Dcom.google.cdbg.module=MODULE \
  -Dcom.google.cdbg.version=VERSION"

Si ejecutas Tomcat en un contenedor Docker, agrega esta línea a Dockerfile en su lugar:

ENV JAVA_OPTS -agentpath:/opt/cdbg/cdbg_java_agent.so \
              -Dcom.google.cdbg.module=MODULE \
              -Dcom.google.cdbg.version=VERSION

Jetty

Agrega estas líneas a /var/lib/jetty/start.d:

--exec
-agentpath:/opt/cdbg/cdbg_java_agent.so
-Dcom.google.cdbg.module=MODULE
-Dcom.google.cdbg.version=VERSION

En el entorno local y en otros lugares

  1. Descarga el paquete de agente compilado previamente del depurador:

    mkdir /opt/cdbg
    wget -qO- https://storage.googleapis.com/cloud-debugger/compute-java/debian-wheezy/cdbg_java_agent_service_account.tar.gz | \
        tar xvz -C /opt/cdbg
    
  2. Descarga las credenciales de la cuenta de servicio.
    Con el propósito de usar el agente de Stackdriver Debugger para Java en máquinas no alojadas en Google Cloud Platform, el agente debe usar las credenciales de una cuenta de servicio de GCP a fin de autenticarse con el Servicio de Stackdriver Debugger.

    Usa la página de Cuentas de servicio de GCP Console a fin de crear un archivo de credenciales para una cuenta de servicio nueva o existente. La cuenta de servicio debe tener al menos la función de Stackdriver Debugger Agent.

    Coloca el archivo JSON de la cuenta de servicio junto con el agente de Stackdriver Debugger para Java.

  3. Agrega el agente a tu invocación de Java:

    java -agentpath:/opt/cdbg/cdbg_java_agent.so \
      -Dcom.google.cdbg.module=MODULE \
      -Dcom.google.cdbg.version=VERSION \
      -Dcom.google.cdbg.auth.serviceaccount.enable=true
      -Dcom.google.cdbg.auth.serviceaccount.jsonfile=/opt/cdbg/gcp-svc.json
      -jar PATH_TO_JAR_FILE
    

    Leyenda:

    • PATH_TO_JAR_FILE es la ruta de acceso relativa al archivo JAR de la aplicación. Por ejemplo: ~/myapp.jar.

    • MODULE es el nombre de la aplicación. Junto con la versión, identifica la aplicación en GCP Console. Ejemplos: MyApp, Backend o Frontend.

    • VERSION es la versión de la aplicación (p. ej., el ID de compilación). GCP Console muestra la aplicación en ejecución como MODULE - VERSION. Ejemplos: v1.0, build_147 o v20160520.

    • La variable del entorno GOOGLE_APPLICATION_CREDENTIALS se puede usar en lugar de agregar la propiedad del sistema auth.serviceaccount.jsonfile.

Ahora puedes usar el depurador con tu aplicación.

En la página de Depuración de GCP Console, se pueden mostrar los archivos de origen local, sin subir, para el desarrollo local. Consulta Selecciona el código fuente de forma manual.

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

Enviar comentarios sobre...

Documentación de Stackdriver Debugger