Strumentare le app Ruby per Error Reporting

Puoi inviare report sugli errori a Error Reporting dalle applicazioni Ruby utilizzando la libreria Error Reporting per Ruby. Utilizza la libreria Error Reporting per Ruby per creare gruppi di errori per i seguenti casi:

  • Un bucket dei log che contiene le voci di log contiene chiavi di crittografia gestite dal cliente (CMEK).
  • Il bucket dei log soddisfa una delle seguenti condizioni:
    • Il bucket dei log viene archiviato nello stesso progetto in cui hanno avuto origine le voci di log.
    • Le voci di log sono state instradate a un progetto, che le ha archiviate in un bucket di log di sua proprietà.
  • Vuoi segnalare eventi di errore personalizzati.

Error Reporting è integrato con alcuni servizi Google Cloud, come Cloud Functions, App Engine, Compute Engine e Google Kubernetes Engine. Error Reporting mostra gli errori registrati in Cloud Logging dalle applicazioni in esecuzione su questi servizi. Per ulteriori informazioni, vai a Esecuzione su Google Cloud in questa pagina.

Puoi anche inviare i dati sugli errori a Error Reporting utilizzando Logging. Per informazioni sui requisiti di formattazione dei dati, consulta Formattazione dei messaggi di errore in Logging.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  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. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Error Reporting API .

    Enable the API

  8. Installa Ruby 2.2 o versioni successive.

installa la libreria client

La libreria Error Reporting per Ruby ti consente di monitorare e visualizzare gli errori segnalati dalle applicazioni Ruby in esecuzione quasi ovunque.

  1. Aggiungi il gem google-cloud-error_reporting al tuo Gemfile:

    gem "google-cloud-error_reporting"
  2. Utilizza Bundler per installare il gem:

    bundle install

Attivazione della raccolta

Se utilizzi Ruby on Rails, Bundler carica automaticamente la libreria nella tua applicazione all'avvio.

Altre applicazioni basate su Rack possono utilizzare il middleware Rack fornito dalla biblioteca:

require "google/cloud/error_reporting"

use Google::Cloud::ErrorReporting::Middleware

Per ulteriori informazioni sull'installazione, leggi la documentazione della libreria Error Reporting per Ruby. Puoi anche segnalare i problemi utilizzando il tracker dei problemi.

Configura la libreria client

Puoi personalizzare il comportamento della libreria Error Reporting per Ruby. Consulta la configurazione della libreria per un elenco delle possibili opzioni di configurazione.

Esegui app su Google Cloud

Per creare gruppi di errori utilizzando projects.events.report, il tuo account di servizio richiede il ruolo Writer per i report sugli errori (roles/errorreporting.writer).

Alcuni servizi Google Cloud concedono automaticamente il ruolo Writer per i report sugli errori (roles/errorreporting.writer) all'account di servizio appropriato. Tuttavia, devi concedere questo ruolo all'account di servizio appropriato per alcuni servizi.

Cloud Run e funzioni Cloud Run

L'account di servizio predefinito utilizzato da Cloud Run ha le autorizzazioni del ruolo Scrittore di segnalazioni di errori (roles/errorreporting.writer).

La libreria di segnalazione degli errori per Ruby può essere utilizzata senza dover fornire esplicitamente le credenziali.

Cloud Run è configurato per utilizzare automaticamente Error Reporting. Le eccezioni JavaScript non gestite verranno visualizzate in Logging ed elaborate da Error Reporting senza dover utilizzare la libreria Error Reporting per Ruby.

Utilizzo dell'interfaccia di configurazione di Ruby on Rails

Per utilizzare la libreria Error Reporting per Ruby con il framework Ruby on Rails, fornisci i parametri tramite l'interfaccia di configurazione di 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

Puoi anche impostare la configurazione condivisa per tutti i gem di Stackdriver utilizzando quanto segue:

# 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 è attiva per impostazione predefinita quando Rails è in esecuzione in modalità di produzione. Per attivare Error Reporting in modalità di sviluppo, aggiungi quanto segue:

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

Utilizzo dell'interfaccia di configurazione dell'instrumentazione

Per utilizzare la libreria Error Reporting per Ruby in altre applicazioni basate su Rack, fornisci i parametri tramite l'interfaccia di configurazione:

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

Puoi anche impostare la configurazione condivisa per tutti i gem di Google Cloud Observability utilizzando quanto segue:

require "stackdriver"

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

Ambiente flessibile di App Engine

App Engine concede automaticamente il ruolo Writer per i report sugli errori (roles/errorreporting.writer) al tuo account di servizio predefinito.

La libreria di segnalazione degli errori per Ruby può essere utilizzata senza dover fornire esplicitamente le credenziali.

Error Reporting è abilitato automaticamente per le applicazioni dell'ambiente flessibile di App Engine. Non è richiesta alcuna configurazione aggiuntiva.

Google Kubernetes Engine

Per utilizzare Error Reporting con Google Kubernetes Engine:

  1. Assicurati che all'account di servizio da utilizzare per il contenitore sia stato assegnato il ruolo Writer per i report sugli errori (roles/errorreporting.writer).

    Puoi utilizzare l'account di servizio predefinito di Compute Engine o un account di servizio personalizzato.

    Per informazioni sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

  2. Crea il cluster e concedi al cluster il cloud-platform ambito di accesso.

    Ad esempio, il seguente comando create specifica l'ambito di accesso cloud-platform e un account di servizio:

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

Compute Engine

Per utilizzare Error Reporting con le istanze VM di Compute Engine:

  1. Assicurati che all'account di servizio da utilizzare per l'istanza VM sia stato assegnato il ruolo Scrittore di segnalazioni di errori (roles/errorreporting.writer).

    Puoi utilizzare l'account di servizio predefinito di Compute Engine o un account di servizio personalizzato.

    Per informazioni sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

  2. Nella console Google Cloud, vai alla pagina Istanze VM:

    Vai a Istanze VM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.

  3. Seleziona l'istanza VM a cui vuoi assegnare il ambito di accessocloud-platform.

  4. Fai clic su Interrompi e poi su Modifica.

  5. Nella sezione Identità e accesso API, seleziona un account di servizio che abbia il ruolo Scrittore di segnalazioni di errori (roles/errorreporting.writer).

  6. Nella sezione Ambiti di accesso, seleziona Consenti l'accesso completo a tutte le API Cloud e poi salva le modifiche.

  7. Fai clic su Avvia/Riprendi.

Esempio

Segnalazione di errori nei framework basati su Rack

La libreria Error Reporting per Ruby semplifica l'integrazione di Error Reporting nei framework web Ruby basati su Rack più diffusi, come Ruby on Rails e Sinatra. Quando la libreria è attiva, segnala automaticamente le eccezioni acquisite dall'apposita pila di Rack dell'applicazione.

Segnalare gli errori manualmente

Puoi segnalare manualmente un errore chiamando il metodo report, come mostrato nel seguente esempio:

require "google/cloud/error_reporting"

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

Eseguire app in un ambiente di sviluppo locale

Per utilizzare la libreria Error Reporting per Ruby in un ambiente di sviluppo locale, come l'esecuzione della libreria sulla tua workstation, devi fornire alla libreria Error Reporting per Ruby le credenziali predefinite dell'applicazione locale. Per ulteriori informazioni, consulta Eseguire l'autenticazione in Error Reporting.

Per utilizzare gli Ruby esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia alla gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.

  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.

Per ulteriori informazioni, consulta Set up authentication for a local development environment.

Anche il metodo projects.events.report supporta le chiavi API. Se vuoi utilizzare le chiavi API per l'autenticazione, non è necessario configurare un file Credenziali predefinite dell'applicazione locale. Per ulteriori informazioni, consulta Crea una chiave API nella documentazione sull'autenticazione di Google Cloud.

Utilizzo dell'interfaccia di configurazione di Ruby on Rails

Per utilizzare la libreria Error Reporting per Ruby con il framework Ruby on Rails, fornisci i parametri tramite l'interfaccia di configurazione di 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

Puoi anche impostare la configurazione condivisa per tutti i gem di Stackdriver utilizzando quanto segue:

# 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 è attiva per impostazione predefinita quando Rails è in esecuzione in modalità di produzione. Per attivare Error Reporting in modalità di sviluppo, aggiungi quanto segue:

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

Utilizzo dell'interfaccia di configurazione dell'instrumentazione

Per utilizzare la libreria Error Reporting per Ruby in altre applicazioni basate su Rack, fornisci i parametri tramite l'interfaccia di configurazione:

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

Puoi anche impostare la configurazione condivisa per tutti i gem di Google Cloud Observability utilizzando quanto segue:

require "stackdriver"

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

Visualizzazione dei rapporti degli errori

Nella console Google Cloud, vai alla pagina Error Reporting:

Vai a Error Reporting

Puoi trovare questa pagina anche utilizzando la barra di ricerca.

Per ulteriori informazioni, consulta la sezione Visualizzare gli errori.