Configura Cloud Trace para Ruby

Puedes habilitar Cloud Trace para aplicaciones de Ruby con la biblioteca de Cloud Trace para Ruby.

Instala la biblioteca

  1. Instala Ruby 2.2+ o superior.

  2. Agrega la gema de Stackdriver a tu Gemfile:

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

    bundle install
    

Cómo habilitar la biblioteca

Rails

Si usas Ruby on Rails, bundler carga automáticamente la biblioteca a tu aplicación cuando se inicia.

Sin Rails

Otras aplicaciones basadas en Rack pueden usar el middleware de Rack que proporciona la biblioteca:

require "google/cloud/trace"

use Google::Cloud::Trace::Middleware

Con el fin de obtener más información o para informar problemas con la biblioteca, consulta el repositorio del código fuente de la biblioteca.

Cómo configurar el cliente

Puedes personalizar el comportamiento de la biblioteca de Cloud Trace para Ruby. Consulta la configuración de la biblioteca para obtener una lista de las posibles opciones de configuración.

Agrega un intervalo de seguimiento personalizado

La biblioteca de Cloud Trace para Ruby crea automáticamente un registro de seguimiento para cada una de las solicitudes que recibe la aplicación de Rack. También puedes agregar intervalos de seguimiento personalizado en cada solicitud:

Google::Cloud::Trace.in_span "my_task" do |_span|
  # Insert task

  Google::Cloud::Trace.in_span "my_subtask" do |subspan|
    # Insert subtask
  end
end

Cómo configurar tu plataforma

Puedes usar Cloud Trace en Google Cloud y otras plataformas.

Ejecuta en Google Cloud

Cuando tu aplicación se ejecuta en Google Cloud, no necesitas proporcionar credenciales de autenticación en el formato de una cuenta de servicio a la biblioteca cliente. Sin embargo, debes asegurarte de que tu plataforma de Google Cloud tenga habilitado el permiso de acceso a la API de Cloud Trace.

Para obtener una lista de los entornos de Google Cloud compatibles, consulta Compatibilidad de entornos.

Para las siguientes opciones de configuración, la configuración predeterminada del permiso de acceso habilita la API de Cloud Trace:

Si usas permisos de acceso personalizados, debes asegurarte de que el permiso de acceso a la API de Cloud Trace esté habilitado:

  • Si quieres obtener información para configurar los permisos de acceso de tu entorno mediante la consola de Google Cloud, consulta Configura tu proyecto de Google Cloud.

  • Para los usuarios de gcloud, especifica los niveles de acceso con la marca --scopes y, también, incluye el permiso de acceso a la API de Cloud Trace trace.append. Por ejemplo, para crear un clúster de GKE solo con la API de Cloud Trace habilitada, sigue estos pasos:

    gcloud container clusters create example-cluster-name --scopes=https://www.googleapis.com/auth/trace.append

Ejecuta de forma local y en otros lugares

Si tu aplicación se ejecuta fuera de Google Cloud, debes proporcionar credenciales de autenticación en forma de una cuenta de servicio a la biblioteca cliente. La cuenta de servicio debe contener la función de agente de Cloud Trace. Para obtener más instrucciones, consulta Cómo crear una cuenta de servicio.

Las bibliotecas cliente de Google Cloud para Ruby usan las credenciales predeterminadas de la aplicación (ADC) a fin de encontrar las credenciales de tu aplicación. En la siguiente sección, se describe cómo configurar estas credenciales y el ID del proyecto de Google Cloud.

Configura el ID y las credenciales del proyecto de Google Cloud

En esta sección, se describen tres enfoques diferentes que puedes usar para configurar el ID del proyecto de Google Cloud, las credenciales de autenticación o ambos en tu aplicación de Ruby.

Variable de entorno

Cuando no estableces explícitamente el ID del proyecto de Google Cloud, la biblioteca google-cloud de Ruby determina automáticamente si la variable de entorno GOOGLE_CLOUD_PROJECT está configurada y, si es así, usa el valor de GOOGLE_CLOUD_PROJECT como el ID del proyecto de Google Cloud. Para obtener más información, ve a Autenticación.

Como se describió antes, las bibliotecas cliente de Google Cloud usan credenciales predeterminadas de la aplicación (ADC) para encontrar las credenciales de tu aplicación. Estas credenciales se pueden proporcionar mediante la configuración de la variable de entorno GOOGLE_APPLICATION_CREDENTIALS:

Linux/macOS

export GOOGLE_CLOUD_PROJECT=your-project-id
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

Windows

Ventana de comando:

set GOOGLE_CLOUD_PROJECT=your-project-id
set GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

PowerShell:

$env:GOOGLE_CLOUD_PROJECT="your-project-id"
$env:GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"

Interfaz de configuración de Ruby on Rails

Si usas Ruby on Rails, puedes proporcionar 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|
  # Stackdriver Trace specific parameters
  config.google_cloud.trace.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.trace.keyfile    = "/path/to/service-account.json"
end

También puedes establecer la configuración compartida para todas las gemas de Stackdriver mediante el siguiente comando:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Shared parameters
  config.google_cloud.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.keyfile    = "/path/to/service-account.json"
end

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

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

Interfaz de configuración de instrumentación

Otra alternativa para Ruby es proporcionar los parámetros a través de la interfaz de configuración cuando se usan en otras aplicaciones basadas en Rack:

require "google/cloud/trace"

Google::Cloud.configure do |config|
  # Stackdriver Trace specific parameters
  config.trace.project_id = "YOUR-PROJECT-ID"
  config.trace.keyfile    = "/path/to/service-account.json"
end

También puedes establecer la configuración compartida para todas las gemas de Stackdriver mediante el siguiente código:

require "stackdriver"

Google::Cloud.configure do |config|
  # Stackdriver Shared parameters
  config.project_id = "YOUR-PROJECT-ID"
  config.keyfile    = "/path/to/service-account.json"
end

Ver seguimientos

En el panel de navegación de la consola de Google Cloud, selecciona Trace y, luego, Explorador de seguimiento:

Ve al Explorador de seguimiento

Soluciona problemas

Para obtener información sobre cómo solucionar problemas con Cloud Trace, ve a la página de solución de problemas.

Recursos