Configura Cloud Debugger para Ruby

En esta página, se describe cómo configurar tu entorno y tu aplicación de Ruby para usar Cloud Debugger. En algunos entornos, debes especificar explícitamente el nivel de acceso para permitir que el agente de Cloud 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 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.

Antes de comenzar

Para comenzar a usar Cloud Debugger, asegúrate de que la API de Cloud Debugger esté habilitada.
Habilitar la API de Cloud Debugger

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
        

    Aquí:

    • 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 configurar estos valores 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
        

    Aquí:

    • 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 configurar estos valores 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
        

    Aquí:

    • 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 configurar estos valores 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
    

Aquí:

  • 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 configurar estos valores 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
    

Aquí:

  • 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 configurar estos valores 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
    

Aquí:

  • 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 configurar estos valores 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.

    A fin de usar el agente de Cloud Debugger para Ruby en máquinas que no están alojadas en Google Cloud, el agente debe usar credenciales de cuenta de servicio de Google Cloud para autenticarse con el servicio de Cloud Debugger.

    Usa la página 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
    

Aquí:

  • 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 configurar estos valores 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
    

Aquí:

  • 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 configurar estos valores 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
    

Aquí:

  • 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 configurar estos valores 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.