Instrumentez les applications Ruby pour Error Reporting

Vous pouvez envoyer des rapports d'erreurs à Error Reporting depuis des applications Ruby à l'aide de la bibliothèque Error Reporting pour Ruby. Utilisez la bibliothèque Error Reporting pour Ruby afin de créer des groupes d'erreurs dans les cas suivants:

  • Votre bucket de journaux contient des clés de chiffrement gérées par le client (CMEK).
  • Vos buckets de journaux ne se trouvent pas dans la région global.
  • Vous souhaitez signaler les événements d'erreur personnalisés.

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 sur 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 Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Activez Error Reporting API .

    Activer l'API

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

    Accéder au sélecteur de projet

  6. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  7. Activez Error Reporting API .

    Activer l'API

  8. 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 le gem google-cloud-error_reporting à votre fichier Gemfile:

    gem "google-cloud-error_reporting"
  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.

Exécuter des applications sur Google Cloud

Pour créer des groupes d'erreurs à l'aide de projects.events.report, votre compte de service doit disposer du rôle Rédacteur Error Reporting (roles/errorreporting.writer).

Certains services Google Cloud accordent automatiquement le rôle Rédacteur Error Reporting (roles/errorreporting.writer) au compte de service approprié. Toutefois, vous devez attribuer ce rôle au compte de service approprié pour certains services.

Environnement flexible App Engine

App Engine attribue automatiquement le rôle Rédacteur Error Reporting (roles/errorreporting.writer) à votre compte de service par défaut.

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

Pour utiliser Error Reporting avec Google Kubernetes Engine, procédez comme suit:

  1. Assurez-vous que le compte de service que votre conteneur doit utiliser a reçu le rôle Rédacteur Error Reporting (roles/errorreporting.writer).

    Vous pouvez utiliser le compte de service Compute Engine par défaut ou un compte de service personnalisé.

    Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer l'accès aux projets, aux dossiers et aux organisations.

  2. Créez votre cluster et accordez-lui le niveau d'accès cloud-platform.

    Par exemple, la commande create suivante spécifie le niveau d'accès cloud-platform et un compte de service:

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

Compute Engine

Pour utiliser Error Reporting avec des instances de VM Compute Engine, procédez comme suit:

  1. Assurez-vous que le compte de service que votre instance de VM doit utiliser a reçu le rôle Rédacteur Error Reporting (roles/errorreporting.writer).

    Vous pouvez utiliser le compte de service Compute Engine par défaut ou un compte de service personnalisé.

    Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer l'accès aux projets, aux dossiers et aux organisations.

  2. Dans le panneau de navigation de la console Google Cloud, sélectionnez Compute Engine, puis Instances de VM :

    Accéder à la page Instances de VM

  3. Sélectionnez l'instance de VM à laquelle vous souhaitez recevoir le niveau d'accès cloud-platform.

  4. Cliquez sur Arrêter, puis sur Modifier.

  5. Dans la section Identité et accès à l'API, sélectionnez un compte de service doté du rôle Rédacteur Error Reporting (roles/errorreporting.writer).

  6. Dans la section Niveaux d'accès, sélectionnez Autoriser l'accès complet à l'ensemble des API Cloud, puis enregistrez vos modifications.

  7. Cliquez sur Démarrer/Réactiver.

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 tous les gems d'observabilité Google Cloud à l'aide des éléments suivants:

require "stackdriver"

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

Exemple

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 "Something went wrong"
rescue StandardError => e
  Google::Cloud::ErrorReporting.report e
end

Exécuter des applications dans un environnement de développement local

Pour utiliser la bibliothèque Error Reporting pour Ruby dans un environnement de développement local (par exemple, en l'exécutant sur votre propre poste de travail), vous devez fournir les identifiants par défaut de l'application locale à votre bibliothèque Error Reporting pour Ruby. Pour en savoir plus, consultez S'authentifier auprès d'Error Reporting.

Pour utiliser les exemples Ruby de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

  1. Installez Google Cloud CLI.
  2. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  3. Créez des identifiants d'authentification locaux pour votre compte Google :

    gcloud auth application-default login

Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.

La méthode projects.events.report est également compatible avec les clés API. Si vous souhaitez utiliser des clés API pour l'authentification, vous n'avez pas besoin de configurer un fichier d'identifiants par défaut de l'application local. Pour en savoir plus, consultez la page Créer une clé API dans la documentation sur l'authentification Google Cloud

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 tous les gems d'observabilité Google Cloud à l'aide des éléments suivants:

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

Dans le panneau de navigation de la console Google Cloud, sélectionnez Error Reporting, puis votre projet Google Cloud :

Accéder à Error Reporting

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