Configuración de Stackdriver Debugger para Ruby

En esta página se describe cómo configurar el entorno y la aplicación de Ruby 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 flexible de App Engine

  1. Agrega la gema de 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 el depurador con tu aplicación.

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 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
  2. Agrega la gema de 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

Leyenda:

  • SERVICE-NAME es un nombre para tu aplicación, 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

Leyenda:

  • SERVICE-NAME es un nombre para tu aplicación, 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

Leyenda:

  • SERVICE-NAME es un nombre para tu aplicación, 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 el depurador con tu aplicación.

En el entorno local y en otros lugares

  1. Agrega la gema de 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 de Stackdriver Debugger para Ruby 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 Stackdriver 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

Leyenda:

  • SERVICE-NAME es un nombre para tu aplicación, 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

Leyenda:

  • SERVICE-NAME es un nombre para tu aplicación, 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

Leyenda:

  • SERVICE-NAME es un nombre para tu aplicación, 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 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