Strumenti per 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 di Error Reporting per Ruby per creare gruppi di errori per i seguenti casi:

  • Il bucket di log ha chiavi di crittografia gestite dal cliente (CMEK).
  • I bucket di log non si trovano nella regione global.
  • Vuoi segnalare eventi di errore personalizzati.

Error Reporting è integrato con alcuni servizi Google Cloud, come App Engine, Compute Engine e Google Kubernetes Engine. Error Reporting visualizza gli errori registrati in Cloud Logging dalle applicazioni in esecuzione su questi servizi. Per ulteriori informazioni, vai ad In 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. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Attiva Error Reporting API .

    Abilita l'API

  5. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  7. Attiva Error Reporting API .

    Abilita l'API

  8. Installa Ruby 2.2 o versioni successive.

Installa la libreria client

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

  1. Aggiungi la gemma google-cloud-error_reporting al tuo Gemfile:

    gem "google-cloud-error_reporting"
  2. Usa Bundler per installare la gemma:

    bundle install

Attivazione della libreria

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

Altre applicazioni basate su rack possono utilizzare il middleware rack fornito dalla libreria:

require "google/cloud/error_reporting"

use Google::Cloud::ErrorReporting::Middleware

Per ulteriori informazioni sull'installazione, consulta la documentazione relativa alla libreria di Error Reporting per Ruby. Puoi anche segnalare i problemi utilizzando lo strumento Issue Tracker.

Configura la libreria client

Puoi personalizzare il comportamento della libreria di 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 Error Reporting (roles/errorreporting.writer).

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

Ambiente flessibile di App Engine

App Engine concede automaticamente il ruolo Writer Error Reporting (roles/errorreporting.writer) al tuo account di servizio predefinito.

La libreria di Error Reporting per Ruby può essere utilizzata senza dover fornire esplicitamente le credenziali.

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

Google Kubernetes Engine

Per utilizzare Error Reporting con Google Kubernetes Engine:

  1. Assicurati che all'account di servizio che deve essere utilizzato dal container sia stato concesso il ruolo Writer Error Reporting (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 l'ambito di accesso cloud-platform.

    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 che deve essere utilizzato dall'istanza VM sia stato concesso il ruolo Writer Error Reporting (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, seleziona Compute Engine e poi Istanze VM, oppure fai clic sul pulsante seguente:

    Vai a Istanze VM

  3. Seleziona l'istanza VM che vuoi ricevere l'ambito di accesso cloud-platform.

  4. Fai clic su Interrompi e poi su Modifica.

  5. Nella sezione Identità e accesso API, seleziona un account di servizio con il ruolo Writer Error Reporting (roles/errorreporting.writer).

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

  7. Fai clic su Avvia/Riprendi.

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 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 tutte le gemme 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 è abilitato per impostazione predefinita quando Rails è in esecuzione in modalità di produzione. Per abilitare 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 della strumentazione

Per utilizzare la libreria di 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 tutte le perle della suite operativa di Google Cloud 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

Esempio

Segnalare errori nei framework basati su rack

La libreria di Error Reporting per Ruby semplifica l'integrazione di Error Reporting nei comuni framework web Ruby basati su rack come Ruby on Rails e Sinatra. Quando la libreria è abilitata, segnala automaticamente le eccezioni acquisite dallo stack rack dell'applicazione.

Segnalare manualmente gli errori

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

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 di Error Reporting per Ruby in un ambiente di sviluppo locale, ad esempio eseguendo la libreria sulla tua workstation, devi fornire la libreria di Error Reporting per Ruby con le credenziali predefinite dell'applicazione locale. Per ulteriori informazioni, vedi Eseguire l'autenticazione in Error Reporting.

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

  1. Installa Google Cloud CLI.
  2. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  3. Crea credenziali di autenticazione locali per il tuo Account Google:

    gcloud auth application-default login

Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

Il metodo projects.events.report supporta anche le chiavi API. Se vuoi utilizzare le chiavi API per l'autenticazione, non è necessario configurare un file locale Credenziali predefinite dell'applicazione. 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 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 tutte le gemme 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 è abilitato per impostazione predefinita quando Rails è in esecuzione in modalità di produzione. Per abilitare 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 della strumentazione

Per utilizzare la libreria di 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 tutte le perle della suite operativa di Google Cloud 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, seleziona Error Reporting oppure fai clic sul pulsante seguente e seleziona un progetto:

Vai a Error Reporting

Per ulteriori informazioni, consulta la sezione Visualizzazione degli errori.