Configurer Error Reporting pour Ruby

Vous pouvez envoyer des rapports d'erreurs à Error Reporting depuis des applications Ruby à l'aide de la bibliothèque Error Reporting pour Ruby.

Error Reporting est intégré à certains services Google Cloud, tels que App Engine, Compute Engine et Google Kubernetes Engine. Error Reporting vous permet d'afficher les erreurs qui sont consignées dans Cloud Logging par les applications exécutées sur ces services. Pour en savoir plus, consultez la section Exécuter sur Google Cloud Platform de cette page.

Vous pouvez également envoyer des données d'erreur à Error Reporting à l'aide de Logging. Pour en savoir plus sur les exigences en matière de mise en forme des données, consultez la page Formater les messages d'erreur dans Logging.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Cloud.

    Accéder à la page de sélection du projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Activez Error Reporting API .

    Activer l'API

  5. Installez Ruby 2.2+ ou une version ultérieure.

Installer la bibliothèque cliente

La bibliothèque Error Reporting pour Ruby vous permet de surveiller et d'afficher les erreurs signalées par les applications Ruby exécutées depuis presque n'importe quel emplacement.

  1. Ajoutez la gem de la suite d'opérations de Google Cloud à votre fichier Gemfile :

    gem "stackdriver"
  2. Utilisez Bundler pour installer le gem :

    bundle install

Activer la bibliothèque

Si vous utilisez Ruby on Rails, Bundler charge automatiquement la bibliothèque dans votre application au démarrage.

D'autres applications basées sur Rack peuvent utiliser l'intergiciel Rack fourni par la bibliothèque :

require "google/cloud/error_reporting"

use Google::Cloud::ErrorReporting::Middleware

Pour en savoir plus sur l'installation, consultez la documentation sur la bibliothèque Error Reporting pour Ruby. Vous pouvez également signaler d'éventuels problèmes à l'aide de l'outil de suivi des problèmes.

Configurer la bibliothèque cliente

Vous pouvez personnaliser le comportement de la bibliothèque Error Reporting pour Ruby. Consultez la configuration de la bibliothèque pour afficher la liste des options de configuration possibles.

Signaler des erreurs

Signaler des erreurs dans les frameworks basés sur Rack

La bibliothèque Error Reporting pour Ruby facilite l'intégration d'Error Reporting dans les frameworks Web Ruby basés sur Rack, tels que Ruby on Rails et Sinatra. Lorsque la bibliothèque est activée, elle signale automatiquement les exceptions capturées depuis la pile Rack de l'application.

Signaler des erreurs manuellement

Vous pouvez signaler une erreur manuellement en appelant la méthode report, comme illustré dans l'exemple suivant :

require "google/cloud/error_reporting"

begin
  raise "Raise an exception for Error Reporting."
rescue StandardError => e
  Google::Cloud::ErrorReporting.report e
end

Exécuter des applications sur Google Cloud

L'utilisation de la bibliothèque Error Reporting pour Ruby nécessite de disposer du rôle Cloud Identity and Access Management de rédacteur pour Error Reporting. La plupart des plates-formes de calcul Google Cloud attribuent ce rôle par défaut.

Vous pouvez configurer Error Reporting pour Ruby dans les environnements Google Cloud suivants.

Environnement flexible App Engine

App Engine attribue par défaut le rôle de rédacteur pour Error Reporting.

La bibliothèque Error Reporting pour Ruby peut être utilisée sans avoir à fournir explicitement des identifiants.

Error Reporting est automatiquement activé pour les applications de l'environnement flexible App Engine. Aucune configuration supplémentaire n'est requise.

Google Kubernetes Engine

Sur GKE, vous devez ajouter le niveau d'accès cloud-platform lors de la création du cluster, comme indiqué dans l'exemple de commande ci-dessous :

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

Instance

Lorsque vous utilisez des instances de VM Compute Engine, ajoutez le niveau d'accès cloud-platform à chaque instance. Lorsque vous créez une instance via Google Cloud Console, vous pouvez le faire dans la section Identité et accès à l'API du panneau Créer une instance. Utilisez le compte de service par défaut de Compute Engine ou un autre compte de service de votre choix, puis sélectionnez Autoriser l'accès complet à l'ensemble des API Cloud dans la section Identité et accès à l'API. Quel que soit le compte de service sélectionné, vérifiez qu'il dispose du rôle Rédacteur Error Reporting dans la section IAM et administration de Cloud Console.

Exécuter en local et depuis un autre emplacement

Pour utiliser la bibliothèque Error Reporting pour Ruby en dehors de Google Cloud, y compris en l'exécutant sur votre propre poste de travail, sur les ordinateurs de votre centre de données ou sur les instances de VM d'un autre fournisseur cloud, vous devez saisir l'ID de projet Google Cloud ainsi que les identifiants du compte de service approprié directement dans la bibliothèque Error Reporting pour Ruby.

Vous pouvez créer et obtenir manuellement des identifiants pour le compte de service. Lorsque vous spécifiez le champ Rôle, utilisez le rôle Rédacteur Error Reporting. Pour en savoir plus sur les rôles Cloud IAM (Cloud Identity and Access Management), consultez le Guide du contrôle des accès.

Utiliser l'interface de configuration de Ruby on Rails

Pour utiliser la bibliothèque Error Reporting pour Ruby avec le framework Ruby on Rails, fournissez les paramètres via l'interface de configuration 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

Vous pouvez également définir une configuration partagée pour l'ensemble des gems Stackdriver comme suit :

# 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 activé par défaut lorsque Rails est exécuté en mode de production. Pour activer Error Reporting en mode de développement, ajoutez les éléments suivants :

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

Utiliser l'interface de configuration d'instrumentation

Pour utiliser la bibliothèque Error Reporting pour Ruby dans d'autres applications basées sur Rack, fournissez les paramètres via l'interface de configuration :

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

Vous pouvez également définir une configuration partagée pour l'ensemble des gems de la suite d'opérations Google Cloud comme suit :

require "stackdriver"

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

Afficher les rapports d'erreurs

Après le déploiement, vous pouvez afficher les rapports d'erreurs dans le tableau de bord Error Reporting de Cloud Console.

Accéder au tableau de bord Error Reporting

Pour en savoir plus, consultez la page Afficher les erreurs.