Configura el Depurador de Cloud para Ruby

Resumen

En esta página, se describe cómo configurar el entorno y la aplicación de Ruby para usar el Depurador de Cloud. Para algunos entornos, debes especificar de forma explícita el nivel de acceso a fin de permitir que el agente del Depurador de Cloud envíe datos. Recomendamos configurar el nivel de acceso más amplio posible y, luego, usar la administración de identidades y accesos para restringir el acceso. De acuerdo con esta práctica recomendada, debes configurar el nivel de acceso para que estén todas las API de Cloud con la opción cloud-platform.

Versiones de lenguajes y entorno de procesamiento

Depurador de Cloud está disponible para las versiones 2.2 de Ruby y posteriores.

Entorno de App Engine Standard Entorno flexible de App Engine Compute Engine Google Kubernetes Engine Cloud Run Cloud Run for Anthos en Google Cloud VM y contenedores que se ejecutan en otros lugares Cloud Functions

Configura el Depurador de Cloud

Para configurar el Depurador de Cloud, completa las siguientes tareas:

  1. Verifica que la API del Depurador de Cloud esté habilitada para tu proyecto.

  2. Instala y configura Debugger en el entorno de procesamiento que usas.

  3. Selecciona tu código fuente.

Verifica que la API de Cloud Debugger esté habilitada

Para comenzar a usar el Depurador de Cloud, asegúrate de que la API del Depurador de Cloud esté habilitada. El Depurador de Cloud está habilitado de forma predeterminada para la mayoría de los proyectos.
Habilita la API del Depurador de Cloud

Entorno flexible de App Engine

  1. Agrega la gema stackdriver a tu Gemfile:

    gem "stackdriver"
    
  2. Habilita el agente.

Rails

Bundler carga la biblioteca en la aplicación de forma automática cuando se inicia. No se requiere configuración.

Rack

Utiliza el middleware de Rack que proporciona la biblioteca:

require "google/cloud/debugger"

use Google::Cloud::Debugger::Middleware

Otro

Para las aplicaciones puras de Ruby, inicia el agente de forma explícita en el punto de entrada:

require "google/cloud/debugger"

Google::Cloud::Debugger.new.start

Ahora puedes usar Debugger con tu app.

Google Kubernetes Engine

GCLOUD

Para habilitar Debugger con gcloud, completa los siguientes pasos:

  1. Crea tu clúster con uno de los niveles de acceso siguientes:

    • https://www.googleapis.com/auth/cloud-platform otorga a tu clúster acceso a todas las API de Google Cloud.

    • https://www.googleapis.com/auth/cloud_debugger otorga a tu clúster acceso solo a la API de Debugger. Usa este nivel de acceso para fortalecer la seguridad de tu clúster.

    gcloud container clusters create example-cluster-name \
           --scopes=https://www.googleapis.com/auth/cloud_debugger
    
  2. Agrega la gema stackdriver a tu Gemfile:

    gem "stackdriver"
    
  3. Agrega la línea siguiente a tu Dockerfile con el fin de agregar el agente de Debugger:

    Run bundle install
    
  4. Habilita el agente de Debugger:

    Rails

    Bundler carga la biblioteca en la aplicación de forma automática cuando se inicia.

    De forma opcional, puedes proporcionar un servicio y una versión a través de la interfaz de configuración de Ruby on Rails:

    # Add this to config/environments/*.rb
    Rails.application.configure do |config|
      config.google_cloud.debugger.service_name = "SERVICE-NAME"
      config.google_cloud.debugger.service_version = "SERVICE-VERSION"
    end
    

    En el comando anterior, se muestra lo siguiente:

    • SERVICE-NAME es el nombre de tu app, como MyApp, Backend o Frontend.
    • SERVICE-VERSION es una versión, como v1.0, build_147 o v20170714.

    Recomendamos configurarlas desde las variables de entorno para que no tengas que cambiar el código fuente con cada implementación.

    Debugger está habilitado de manera predeterminada cuando Rails se ejecuta en el modo de producción. Para habilitar Debugger en el modo de desarrollo, agrega lo siguiente:

    # Add this to config/environments/development.rb
    Rails.application.configure do |config|
      config.google_cloud.use_debugger = true
    end

    Rack

    Utiliza el middleware de Rack que proporciona la biblioteca:

     require "google/cloud/debugger"
    
     Google::Cloud::Debugger.configure do |config|
       config.service_name = "SERVICE-NAME"
       config.service_version = "SERVICE-VERSION"
      end
    
     use Google::Cloud::Debugger::Middleware
    

    En el comando anterior, se muestra lo siguiente:

    • SERVICE-NAME es el nombre de tu app, como MyApp, Backend o Frontend.
    • SERVICE-VERSION es una versión, como v1.0, build_147 o v20170714.

    Recomendamos configurarlas desde las variables de entorno para que no tengas que cambiar el código fuente con cada implementación.

    Otro

    Para las aplicaciones puras de Ruby, inicia el agente de forma explícita en el punto de entrada:

    require "google/cloud/debugger"
    
    Google::Cloud::Debugger.new(service_name: "SERVICE-NAME",
                        service_version: "SERVICE-VERSION").start
    

    En el comando anterior, se muestra lo siguiente:

    • SERVICE-NAME es el nombre de tu app, como MyApp, Backend o Frontend.
    • SERVICE-VERSION es una versión, como v1.0, build_147 o v20170714.

    Recomendamos configurarlas desde las variables de entorno para que no tengas que cambiar el código fuente con cada implementación.

    Debugger ahora está habilitado para tu app.

CONSOLE

Para habilitar Debugger con la consola, completa los pasos siguientes:

  1. Después de seleccionar tu tipo de clúster, haz clic en Más opciones en el panel de Grupos de nodos:

    Opciones de grupos de nodos

  2. Selecciona una de las opciones siguientes del panel de Seguridad:

    • Permitir el acceso total a todas las API de Cloud

    • Permitir el acceso a cada API y, luego, seleccionar Habilitada para el Depurador de Cloud

Compute Engine

  1. Asegúrate de que tus instancias de Compute Engine se creen con la opción de nivel de acceso Permitir el acceso total 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
  2. Agrega la gema stackdriver a tu Gemfile:

    gem "stackdriver"
    
  3. Usa Bundler para instalar la gema:

    bundle install
    
  4. Habilita el agente.

Rails

Bundler carga la biblioteca en la aplicación de forma automática cuando se inicia.

De forma opcional, puedes proporcionar un servicio y una versión a través de la interfaz de configuración de Ruby on Rails:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  config.google_cloud.debugger.service_name = "SERVICE-NAME"
  config.google_cloud.debugger.service_version = "SERVICE-VERSION"
end

En el comando anterior, se muestra lo siguiente:

  • SERVICE-NAME es el nombre de tu app, como MyApp, Backend o Frontend.
  • SERVICE-VERSION es una versión, como v1.0, build_147 o v20170714.

Recomendamos configurarlas desde las variables de entorno para que no tengas que cambiar el código fuente con cada implementación.

Debugger está habilitado de manera predeterminada cuando Rails se ejecuta en el modo de producción. Para habilitar Debugger en el modo de desarrollo, agrega lo siguiente:

# Add this to config/environments/development.rb
Rails.application.configure do |config|
  config.google_cloud.use_debugger = true
end

Rack

Utiliza el middleware de Rack que proporciona la biblioteca:

require "google/cloud/debugger"

Google::Cloud::Debugger.configure do |config|
  config.service_name = "SERVICE-NAME"
  config.service_version = "SERVICE-VERSION"
end

use Google::Cloud::Debugger::Middleware

En el comando anterior, se muestra lo siguiente:

  • SERVICE-NAME es el nombre de tu app, como MyApp, Backend o Frontend.
  • SERVICE-VERSION es una versión, como v1.0, build_147 o v20170714.

Recomendamos configurarlas desde las variables de entorno para que no tengas que cambiar el código fuente con cada implementación.

Otro

Para las aplicaciones puras de Ruby, inicia el agente de forma explícita en el punto de entrada:

require "google/cloud/debugger"

Google::Cloud::Debugger.new(service_name: "SERVICE-NAME",
                            service_version: "SERVICE-VERSION").start

En el comando anterior, se muestra lo siguiente:

  • SERVICE-NAME es el nombre de tu app, como MyApp, Backend o Frontend.
  • SERVICE-VERSION es una versión, como v1.0, build_147 o v20170714.

Recomendamos configurarlas desde las variables de entorno para que no tengas que cambiar el código fuente con cada implementación.

Ahora puedes usar Debugger con tu app.

En el entorno local y en otros lugares

  1. Agrega la gema stackdriver a tu Gemfile.

    gem "stackdriver"
    
  2. Usa Bundler para instalar la gema:

    bundle install
    
  3. Descarga las credenciales de la cuenta de servicio.

    Con el propósito de usar el agente del Depurador de Cloud para Ruby en máquinas que no aloja Google Cloud, el agente debe usar las credenciales de una cuenta de servicio de Google Cloud para autenticarse con el servicio del Depurador de Cloud.

    Usa la página de cuentas de servicio de Cloud 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 Cloud Debugger Agent.

  4. Configura y habilita al agente con las credenciales descargadas.

Rails

Proporciona los parámetros a través de la interfaz de configuración de Ruby on Rails:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  config.google_cloud.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.keyfile    = "/path/to/service-account.json"
  config.google_cloud.debugger.service_name = "SERVICE-NAME"
  config.google_cloud.debugger.service_version = "SERVICE-VERSION"
end

En el comando anterior, se muestra lo siguiente:

  • SERVICE-NAME es el nombre de tu app, como MyApp, Backend o Frontend.
  • SERVICE-VERSION es una versión, como v1.0, build_147 o v20170714.

Recomendamos configurarlas desde las variables de entorno para que no tengas que cambiar el código fuente con cada implementación.

Debugger está habilitado de manera predeterminada cuando Rails se ejecuta en el modo de producción. Para habilitar Debugger en el modo de desarrollo, agrega lo siguiente:

# Add this to config/environments/development.rb
Rails.application.configure do |config|
  config.google_cloud.use_debugger = true
end

Rack

Utiliza el middleware de Rack que proporciona la biblioteca:

require "stackdriver"
require "google/cloud/debugger"

Google::Cloud.configure do |config|
  config.project_id = "YOUR-PROJECT-ID"
  config.keyfile    = "/path/to/service-account.json"
  config.service_name = "SERVICE-NAME"
  config.service_version = "SERVICE-VERSION"
end

use Google::Cloud::Debugger::Middleware

En el comando anterior, se muestra lo siguiente:

  • SERVICE-NAME es el nombre de tu app, como MyApp, Backend o Frontend.
  • SERVICE-VERSION es una versión, como v1.0, build_147 o v20170714.

Recomendamos configurarlas desde las variables de entorno para que no tengas que cambiar el código fuente con cada implementación.

Otro

Para las aplicaciones puras de Ruby, inicia el agente de forma explícita en el punto de entrada:

require "google/cloud/debugger"

Google::Cloud::Debugger.new(project: "YOUR-PROJECT-ID",
                            keyfile: "/path/to/service-account.json",
                            service_name: "SERVICE-NAME",
                            service_version: "SERVICE-VERSION").start

En el comando anterior, se muestra lo siguiente:

  • SERVICE-NAME es el nombre de tu app, como MyApp, Backend o Frontend.
  • SERVICE-VERSION es una versión, como v1.0, build_147 o v20170714.

Recomendamos configurarlas desde las variables de entorno para que no tengas que cambiar el código fuente con cada implementación.

Ahora puedes usar Debugger con tu app.

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