Como configurar o Stackdriver Trace para Ruby

O Stackdriver Trace pode ser ativado para aplicativos Ruby usando a biblioteca do Stackdriver Trace para Ruby.

Como instalar a biblioteca

  1. Instale o Ruby 2.2+ ou posterior.

  2. Adicione a gem do Stackdriver ao Gemfile:

    gem "stackdriver"
  3. Use o bundler para instalar a gem:

    bundle install
    

Como ativar a biblioteca

Rails

Se você estiver usando o Ruby on Rails, o bundler carregará a biblioteca no seu aplicativo automaticamente quando ele for iniciado.

Outros

Outros aplicativos baseados em Rack podem usar o middleware do Rack fornecido pela biblioteca:

require "google/cloud/trace"

use Google::Cloud::Trace::Middleware

Para saber mais ou informar problemas com a biblioteca, consulte o repositório de código-fonte da biblioteca.

Como configurar o cliente

Personalize o comportamento da biblioteca do Stackdriver Trace para Ruby. Consulte a configuração da biblioteca para conseguir uma lista das possíveis opções de configuração.

Adicionar extensão de trace personalizado

A biblioteca do Stackdriver Trace para Ruby cria automaticamente um registro de trace para cada solicitação que seu aplicativo Rack recebe. Também é possível adicionar períodos de trace personalizados a cada solicitação:

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

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

Como executar no Google Cloud Platform

Não será preciso fornecer credenciais de autenticação para instâncias em execução no Google Cloud Platform se o escopo de acesso da API Stackdriver Trace estiver ativado nessa instância. No entanto, recomendamos configurar o escopo de acesso mais amplo possível para sua instância e, em seguida, usar o Cloud Identity and Access Management para restringir o acesso.

Ambiente flexível do App Engine

No ambiente flexível do App Engine, o escopo de acesso da API Stackdriver Trace é ativado por padrão. Além disso, a biblioteca do Stackdriver Trace para Ruby pode ser usada sem a necessidade de fornecer credenciais ou um código de projeto.

Ambiente padrão do App Engine

No ambiente padrão do App Engine, o escopo de acesso da API Stackdriver Trace é ativado por padrão. Além disso, e a biblioteca do Stackdriver Trace para Ruby pode ser usada sem fornecer credenciais ou um código do projeto.

GKE

Para usar o Trace no GKE, adicione o escopo de acesso do OAuth trace.append ao criar um cluster.

Para criar um cluster usando o gcloud, faça o seguinte:

  1. Atualize o gcloud para a versão mais recente (opcional):
    gcloud components update
  2. Defina o código do projeto padrão:
    gcloud config set project [PROJECT_ID]
  3. Se você estiver trabalhando com clusters zonais, defina a zona de computação padrão:
    gcloud config set compute/zone [COMPUTE_ZONE]
  4. Se você estiver trabalhando com clusters regionais, defina a região de computação padrão:
    gcloud config set compute/region [COMPUTE_REGION]
  5. Execute o comando de criação:
    gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/trace.append

Para informações mais detalhadas sobre como criar um cluster, consulte Como criar um cluster.

Compute Engine

Para as instâncias do Compute Engine, é preciso ativar explicitamente o escopo de acesso trace.append da API Stackdriver Trace para cada instância de VM. Ao criar uma nova instância por meio do Console do Google Cloud Platform, selecione os seguintes valores na seção Identidade e acesso à API do painel Criar uma instância:

  1. Selecione a Conta de serviço padrão do Compute Engine como a Conta de serviço
  2. Selecione Permitir acesso completo a todas as APIs do Cloud em Escopos de acesso.

Para usar algo diferente da conta de serviço padrão do Compute Engine, consulte as seções Como criar e ativar contas de serviços para instâncias e Como executar localmente e em outro local. O importante é que a conta de serviço que você usa tenha o papel de agente do Cloud Trace.

Como executar localmente e em outro local

Para executar o Trace fora do GCP, você precisa fornecer o código do projeto do GCP e as credenciais da conta de serviço apropriadas diretamente ao Trace. Isso se aplica à execução da biblioteca em sua própria estação de trabalho, nos computadores do seu data center ou nas instâncias VM de outro provedor da nuvem. Veja as etapas envolvidas:

  1. Crie uma nova conta de serviço no seu projeto do GCP. É necessário que pelo menos o papel de agente do Cloud Trace esteja atribuído a ela. Para instruções, consulte Como criar uma conta de serviço.

  2. Faça o download do arquivo de credenciais de chave da conta de serviço para o computador. Para mais instruções, consulte Como criar e gerenciar chaves de conta de serviço.

  3. Forneça o código do projeto do GCP e o local do arquivo de credenciais para o Trace usando os parâmetros (project_id e keyfile) ou as variáveis de ambiente (GOOGLE_CLOUD_PROJECT e GOOGLE_APPLICATION_CREDENTIALS).

Para mais informações, consulte Como fornecer credenciais para seu aplicativo.

Como usar variáveis de ambiente

Defina as variáveis de ambiente em um local em que elas fiquem visíveis para o Trace. Se forem mais amplamente visíveis, elas podem interferir com as autorizações atuais para outros aplicativos.

Linux/macOS

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

Windows

Janela de 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"

Como usar a interface de configuração do Ruby on Rails

Forneça os parâmetros por meio da interface de configuração do Ruby on Rails se você estiver usando o framework dele:

# 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

Também é possível ajustar a configuração compartilhada para todas as gems do Stackdriver. Basta usar:

# 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

O Trace é ativado por padrão quando o Rails está em execução no modo de produção. Para ativar o Trace no modo de desenvolvimento, adicione o código a seguir:

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

Como usar a interface de configuração de instrumentação

Forneça os parâmetros por meio da interface de configuração quando eles forem usados em outros aplicativos baseados em 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

Também é possível ajustar a configuração compartilhada para todas as gems do Stackdriver. Basta usar:

require "stackdriver"

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

Como visualizar os traces

Após a implantação, consulte os traces no visualizador de traces do Console do GCP.

Acesse a página do visualizador do Trace

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.