Configura Error Reporting para Ruby

Puedes enviar informes de errores a Error Reporting desde aplicaciones de Ruby mediante la biblioteca de Error Reporting para Ruby.

Error Reporting está integrado a algunos servicios de Google Cloud, como App Engine, Compute Engine y Google Kubernetes Engine. Error Reporting muestra los errores que registran en Cloud Logging las aplicaciones que se ejecutan en esos servicios. Para obtener más información, ve a Ejecuta en Google Cloud Platform 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 Da formato a los mensajes de error en Logging.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En GCP Console, en la página de selección de proyecto, selecciona o crea un proyecto de GCP.

    Ir a la página de selección de proyecto

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Habilita lasError Reporting API APInecesarias.

    Habilita lasAPI

  5. Instala Ruby 2.2+ o una versión superior.

Instala la biblioteca cliente

La biblioteca de Error visualizar los errores que informan las aplicaciones de Ruby que se ejecutan en casi cualquier lugar.

  1. Agrega la gema del paquete de operaciones de Google Cloud a tu Gemfile:

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

    bundle install

Habilita la biblioteca

Si usas Ruby on Rails, Bundler carga de forma automática 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 la Herramienta de seguimiento de errores.

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.

Informa errores

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 "Raise an exception for Error Reporting."
    rescue StandardError => e
      Google::Cloud::ErrorReporting.report e
    end

Ejecuta en Google Cloud

El uso de la biblioteca de Error Reporting para Ruby requiere la función de escritor de Error Reporting de Cloud Identity and Access Management. La mayoría de las plataformas de procesamiento de Google Cloud ofrecen esta función de forma predeterminada.

Entorno flexible de App Engine

App Engine otorga la función de escritor de Error Reporting de forma predeterminada.

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

Error Reporting está habilitado de forma automática para las aplicaciones de entorno flexible de App Engine. No se requiere ninguna configuración adicional.

Google Kubernetes Engine

En GKE, debes agregar el permiso de acceso cloud-platform cuando creas el clúster, como se muestra en el siguiente ejemplo de comando:

    gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform
    

Compute Engine

Cuando uses las instancias de VM de Compute Engine, agrega el permiso de acceso cloud-platform a cada instancia. Si creas una instancia nueva a través de Google Cloud Console, puedes hacerlo en la sección Identidad y acceso a la API del panel Crear Instancia. Usa la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio diferente y selecciona Permitir acceso total a las API de Cloud en la sección Identidad y acceso a la API. Cualquiera sea la cuenta de servicio que selecciones, asegúrate de que se le haya otorgado la función de escritor de Error Reporting en la sección IAM y administración de Cloud Console.

Ejecuta de forma local y en otros lugares

A fin de usar la biblioteca de Error Reporting para Ruby fuera de Google Cloud, incluso si la ejecutas en tu propia estación de trabajo, en las computadoras del centro de datos o en las instancias de VM de otro proveedor de servicios en la nube, debes proporcionar tu ID del proyecto de Google Cloud y las credenciales adecuadas de la cuenta de servicio directamente a la biblioteca de Error Reporting para Ruby.

Puedes crear y obtener credenciales de cuentas de servicio de forma manual. Cuando especifiques el campo Función, usa la función de escritor de Error Reporting. Para obtener más información sobre las funciones de Cloud Identity and Access Management, consulta la Guía de control de acceso.

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 los paquetes de operaciones de Google Cloud 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

Visualiza informes de errores

Después de la implementación, puedes ver los informes de errores en el panel de Error Reporting de Cloud Console.

Ir al panel de Error Reporting

Para obtener más información, consulta Visualiza errores.