Instrumenta apps de Ruby para Error Reporting

Puedes enviar informes de errores a Error Reporting desde aplicaciones de Ruby mediante la biblioteca de Error Reporting para Ruby. Usa la biblioteca de Error Reporting para Ruby con el objetivo de crear grupos de errores para los siguientes casos:

  • Un bucket de registros que contiene tus entradas de registro cuenta con encriptación administrada por el cliente claves (CMEK).
  • El bucket de registros cumple con una de las siguientes condiciones:
    • El bucket de registros se almacena en el mismo proyecto en el que se encuentran se originó.
    • Las entradas de registro se enrutaron a un proyecto, que luego almacenó esas entradas de registro en un bucket de registros de su propiedad.
  • Deseas informar eventos de error personalizados.

Error Reporting está integrado en algunos servicios de Google Cloud, como Cloud Functions y App Engine, Compute Engine y Google Kubernetes Engine. Error Reporting muestra los errores que registran las aplicaciones que se ejecutan en esos servicios en Cloud Logging. Para obtener más información, ve a Ejecuta en Google Cloud en esta página.

También puedes enviar datos de errores a Error Reporting mediante Logging. Para obtener información sobre los requisitos de formato de datos, consulta Dale formato a los mensajes de error en Logging.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Enable the Error Reporting API .

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  7. Enable the Error Reporting API .

    Enable the API

  8. Instala Ruby 2.2+. o una superior.

Instala la biblioteca cliente

La biblioteca de Error Reporting para Ruby te permite supervisar y ver los errores informados por Aplicaciones de Ruby que se ejecutan casi en cualquier lugar.

  1. Agrega la gema google-cloud-error_reporting a tu Gemfile:

    gem "google-cloud-error_reporting"
  2. Usa Bundler para instalar la gema:

    bundle install

Cómo habilitar la biblioteca

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

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

require "google/cloud/error_reporting"

use Google::Cloud::ErrorReporting::Middleware

A fin de obtener más información sobre la instalación, lee la documentación de la biblioteca de Error Reporting para Ruby. También puedes informar problemas con el seguimiento de problemas.

Configura la biblioteca cliente

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

Ejecuta apps en Google Cloud

Para crear grupos de errores con projects.events.report, tu cuenta de servicio requiere el rol de escritor de Error Reporting (roles/errorreporting.writer).

Algunos servicios de Google Cloud otorgan automáticamente el rol de escritor de informes de errores (roles/errorreporting.writer) a la cuenta de servicio adecuada. Sin embargo, debes otorgar este rol al servicio correspondiente para algunos servicios.

Entorno flexible de App Engine

App Engine otorga la Rol de escritor de Error Reporting (roles/errorreporting.writer) automáticamente a tu cuenta de servicio predeterminada.

La biblioteca de Error Reporting para Ruby se puede usar sin necesidad de proporcionar credenciales de forma explícita.

Error Reporting se habilita de manera automática para las aplicaciones del entorno flexible de App Engine. No se requiere ninguna configuración adicional.

Google Kubernetes Engine

Para usar Error Reporting con Google Kubernetes Engine, haz lo siguiente:

  1. Asegúrate de que la cuenta de servicio que usará tu contenedor tenga el rol de escritor de Error Reporting (roles/errorreporting.writer).

    Puedes usar la cuenta de servicio predeterminada de Compute Engine o una personalizada.

    Para obtener información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

  2. Crea tu clúster y otórgale los permisos cloud-platform: permiso de acceso.

    Por ejemplo, el siguiente comando create especifica el cloud-platform permiso de acceso y una cuenta de servicio:

    gcloud container clusters create CLUSTER_NAME --service-account  SERVICE_ACCT_NAME --scopes=cloud-platform
    

Compute Engine

Para usar Error Reporting con instancias de VM de Compute Engine, haz lo siguiente:

  1. Asegúrate de que la cuenta de servicio que utilizará tu instancia de VM esté concedido el Función de escritor de Error Reporting (roles/errorreporting.writer).

    Puedes usar la cuenta de servicio predeterminada de Compute Engine o una personalizada.

    Para obtener información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

  2. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Compute Engine.

  3. Selecciona la instancia de VM que quieres que reciba la cloud-platform: permiso de acceso.

  4. Haz clic en Detener y, luego, en Editar.

  5. En la sección Identidad y acceso a la API, selecciona una cuenta de servicio que tiene el rol de escritor de Error Reporting (roles/errorreporting.writer).

  6. En la sección Permisos de acceso, Selecciona Permitir el acceso total a todas las APIs de Cloud y, luego, guarda los cambios.

  7. Haz clic en Iniciar/Reanudar.

Cloud Functions

Cloud Run Functions otorga la Rol de escritor de Error Reporting (roles/errorreporting.writer) automáticamente a tu cuenta de servicio predeterminada.

La biblioteca de Error Reporting para Ruby se puede usar sin necesidad de proporcionar credenciales de forma explícita.

Las funciones de Cloud Run están configuradas para usar Error Reporting automáticamente. Las excepciones de JavaScript no administradas aparecerán en Logging y Error Reporting las procesará sin la necesidad de usar la biblioteca de Error Reporting para Ruby.

Usa la interfaz de configuración de Ruby on Rails

A fin de usar la biblioteca de Error Reporting para Ruby con el marco de trabajo de Ruby on 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|
  # Stackdriver Error Reporting specific parameters
  config.google_cloud.error_reporting.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.error_reporting.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:

# 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

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

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

Usa la interfaz de configuración de instrumentación

A fin de usar la biblioteca de Error Reporting para Ruby en otras aplicaciones basadas en Rack, proporciona los parámetros a través de la interfaz de configuración:

require "google/cloud/error_reporting"

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

También puedes establecer la configuración compartida para todas las gemas de Google Cloud Observability de la siguiente manera:

require "stackdriver"

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

Ejemplo

Informa errores en el marco de trabajo basado en Rack

La biblioteca de Error Reporting para Ruby facilita la integración de Error Reporting en los populares marcos de trabajo web de Ruby basados en Rack, como Ruby on Rails y Sinatra. Cuando la biblioteca está habilitada, informa de forma automática las excepciones capturadas de la pila de Rack de la aplicación.

Informa errores de forma manual

Para informar un error de forma manual, llama al método report, como se muestra en el siguiente ejemplo:

require "google/cloud/error_reporting"

begin
  raise "Something went wrong"
rescue StandardError => e
  Google::Cloud::ErrorReporting.report e
end

Ejecuta apps en un entorno de desarrollo local

Si deseas usar la biblioteca de Error Reporting para Ruby en un entorno de desarrollo local, haz lo siguiente: como ejecutar la biblioteca en tu propia estación de trabajo, debes proporcionar tu biblioteca de Error Reporting para Ruby con las credenciales predeterminadas de la aplicación local. Para obtener más información, consulta Autentícate en Error Reporting.

Para usar las muestras de Ruby de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

Para obtener más información, consulta Set up authentication for a local development environment.

El método projects.events.report también admite claves de API. Si deseas usar claves de API para la autenticación, no necesitas configurar un archivo local de credenciales predeterminadas de la aplicación. Para obtener más información, consulta Crea una clave de API en la documentación de autenticación de Google Cloud.

Usa la interfaz de configuración de Ruby on Rails

A fin de usar la biblioteca de Error Reporting para Ruby con el marco de trabajo de Ruby on 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|
  # Stackdriver Error Reporting specific parameters
  config.google_cloud.error_reporting.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.error_reporting.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:

# 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

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

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

Usa la interfaz de configuración de instrumentación

A fin de usar la biblioteca de Error Reporting para Ruby en otras aplicaciones basadas en Rack, proporciona los parámetros a través de la interfaz de configuración:

require "google/cloud/error_reporting"

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

También puedes establecer la configuración compartida para todas las gemas de observabilidad de Google Cloud usando lo siguiente:

require "stackdriver"

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

Ve informes de errores

En la consola de Google Cloud, ve a la página Error Reporting.

Ir a Error Reporting

También puedes usar la barra de búsqueda para encontrar esta página.

Para obtener más información, consulta Cómo visualizar errores.