Configurazione di Cloud Trace per Ruby

Puoi attivare Cloud Trace per le applicazioni Ruby utilizzando la libreria Cloud Trace per Ruby.

Installazione della libreria

  1. Installa Ruby 2.2 o versioni successive.

  2. Aggiungi il gem Stackdriver al tuo Gemfile:

    gem "stackdriver"
  3. Utilizza bundler per installare il gem:

    bundle install
    

Attivazione della raccolta

Binari

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

Non Rails

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

require "google/cloud/trace"

use Google::Cloud::Trace::Middleware

Per ulteriori informazioni o per segnalare problemi relativi alla libreria, consulta repository di codice sorgente.

Configurazione del client

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

Aggiungere un intervallo di traccia personalizzato

La libreria Cloud Trace per Ruby crea automaticamente un record traccia per ogni richiesta ricevuta dalla tua applicazione Rack. Puoi anche aggiungere intervalli di traccia personalizzati all'interno di ogni richiesta:

Google::Cloud::Trace.in_span "my_task" do |_span|
  # Insert task

  Google::Cloud::Trace.in_span "my_subtask" do |subspan|
    # Insert subtask
  end
end

Configura la tua piattaforma

Puoi utilizzare Cloud Trace su Google Cloud e su altre piattaforme.

In esecuzione su Google Cloud

Quando la tua applicazione è in esecuzione su Google Cloud, non è necessario fornire credenziali di autenticazione sotto forma di account di servizio alla libreria client. Tuttavia, devi assicurarti che la tua piattaforma Google Cloud ha Ambito di accesso all'API Cloud Trace in un bucket in cui è abilitato il controllo delle versioni.

Per un elenco degli ambienti Google Cloud supportati, consulta Assistenza per l'ambiente.

Per le seguenti configurazioni, le impostazioni dell'ambito di accesso predefinite attivano l'API Cloud Trace:

Se utilizzi ambiti di accesso personalizzati, devi assicurarti che Ambito di accesso all'API Cloud Trace è abilitato:

  • Per informazioni su come configurare gli ambiti di accesso per il tuo ambiente utilizzando la console Google Cloud, consulta Configurare il progetto Google Cloud.

  • Per gli utenti gcloud, specifica gli ambiti di accesso utilizzando il flag --scopes e includi l'ambito di accesso all'Cloud Trace API trace.append. Ad esempio, per creare un cluster GKE con solo l'API Cloud Trace abilitata, procedi nel seguente modo:

    gcloud container clusters create example-cluster-name --scopes=https://www.googleapis.com/auth/trace.append

Esecuzione in locale e altrove

Se la tua applicazione è in esecuzione al di fuori di Google Cloud, devi fornire credenziali di autenticazione sotto forma di account di servizio alla libreria client. L'account di servizio deve contenere il ruolo Agente Cloud Trace. Per le istruzioni, consulta la sezione Creazione di un account di servizio.

Librerie client di Google Cloud per l'utilizzo di Ruby Credenziali predefinite dell'applicazione (ADC) per trovare le credenziali dell'applicazione. La sezione seguente descrive come impostare queste credenziali e l'ID progetto Google Cloud.

Impostazione dell'ID progetto e delle credenziali Google Cloud

Questa sezione descrive tre diversi approcci che puoi utilizzare per impostare l'ID progetto Google Cloud, le credenziali di autenticazione o entrambi nella tua applicazione Ruby.

Variabile di ambiente

Se non imposti esplicitamente l'ID progetto Google Cloud, la libreria Ruby google-cloud determina automaticamente se la variabile di ambiente GOOGLE_CLOUD_PROJECT è impostata e, in questo caso, utilizza il valore di GOOGLE_CLOUD_PROJECT come ID progetto Google Cloud. Per ulteriori informazioni, vai a Autenticazione.

Come descritto in precedenza, le librerie client di Google Cloud utilizzano le credenziali predefinite dell'applicazione (ADC) per trovare le credenziali dell'applicazione. Puoi fornire queste credenziali impostando la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS:

Linux/macOS

export GOOGLE_CLOUD_PROJECT=your-project-id
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

Windows

Finestra di comando:

set GOOGLE_CLOUD_PROJECT=your-project-id
set GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

PowerShell:

$env:GOOGLE_CLOUD_PROJECT="your-project-id"
$env:GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"

Interfaccia di configurazione Ruby on Rails

Se utilizzi Ruby on Rails, puoi fornire i parametri tramite l'interfaccia di configurazione di Ruby on Rails:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Trace specific parameters
  config.google_cloud.trace.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.trace.keyfile    = "/path/to/service-account.json"
end

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

# 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

Trace è abilitato per impostazione predefinita quando Rails è in esecuzione in modalità di produzione. A abilita Trace in modalità sviluppo, aggiungi quanto segue:

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

Interfaccia di configurazione dell'instrumentazione

Un'altra alternativa per Ruby è fornire i parametri tramite l'interfaccia di configurazione quando viene utilizzata in altre applicazioni basate su Rack:

require "google/cloud/trace"

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

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

require "stackdriver"

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

Visualizza tracce

Nella console Google Cloud, vai alla pagina Esplora tracce.

Vai a Trace Explorer

Puoi trovare questa pagina anche utilizzando la barra di ricerca.

Risoluzione dei problemi

Per informazioni sulla risoluzione dei problemi relativi a Cloud Trace, vai alla pagina Risoluzione dei problemi.

Risorse