Como configurar o Stackdriver Debugger para Ruby

Esta página descreve como configurar seu ambiente e seu aplicativo Ruby para usar o Stackdriver Debugger. Para alguns ambientes, é preciso especificar explicitamente o escopo de acesso para permitir que o agente do Stackdriver Debugger envie dados. Recomendamos definir o escopo de acesso da forma mais ampla possível e, em seguida, usar o Cloud Identity and Access Management para restringir o acesso. Para manter essa prática recomendada, defina o escopo de acesso para todas as APIs do Cloud com a opção cloud-platform.

Ambiente flexível do App Engine

  1. Adicione a gem do Stackdriver ao Gemfile:

    gem "stackdriver"
    
  2. Ative o agente.

Rails

O Bundler carrega automaticamente a biblioteca no app quando ele é iniciado. Nenhuma configuração é necessária.

Rack

Use o middleware do Rack fornecido pela biblioteca:

require "google/cloud/debugger"

use Google::Cloud::Debugger::Middleware

Outros

Para aplicativos Ruby puros, inicie o agente explicitamente no ponto de entrada:

require "google/cloud/debugger"

Google::Cloud::Debugger.new.start

O depurador está pronto para ser usado com o aplicativo.

Google Kubernetes Engine

  1. Crie seu cluster com um dos seguintes escopos de acesso:
    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger

    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/cloud-platform

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

  2. Siga as instruções do Compute Engine.

Compute Engine

  1. Verifique se as instâncias do Compute Engine foram criadas com a opção de escopo de acesso Permitir acesso completo a todas as APIs do Cloud ou se elas têm um dos seguintes escopos de acesso:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  2. Adicione a gem do Stackdriver ao Gemfile:

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

    bundle install
    
  4. Ative o agente.

Rails

O Bundler carrega automaticamente a biblioteca no app quando ele é iniciado.

Como opção, você pode fornecer um serviço e uma versão pela interface de configuração Ruby on Rails:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  config.google_cloud.debugger.service_name = "SERVICE-NAME"
  config.google_cloud.debugger.service_version = "SERVICE-VERSION"
end

Em que:

  • SERVICE-NAME é um nome do app, como MyApp, Backend ou Frontend;
  • SERVICE-VERSION é uma versão, como v1.0, build_147 ou v20170714.

Recomendamos fazer essa configuração a partir de variáveis de ambiente. Assim, não será necessário alterar o código-fonte em cada implantação.

O Debugger é ativado por padrão quando o Rails está em execução no modo de produção. Para ativar o Debugger no modo de desenvolvimento, adicione o seguinte:

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

Rack

Use o middleware do Rack fornecido pela biblioteca:

require "google/cloud/debugger"

Google::Cloud::Debugger.configure do |config|
  config.service_name = "SERVICE-NAME"
  config.service_version = "SERVICE-VERSION"
end

use Google::Cloud::Debugger::Middleware

Em que:

  • SERVICE-NAME é um nome do app, como MyApp, Backend ou Frontend;
  • SERVICE-VERSION é uma versão, como v1.0, build_147 ou v20170714.

Recomendamos fazer essa configuração a partir de variáveis de ambiente. Assim, não será necessário alterar o código-fonte em cada implantação.

Outros

Para aplicativos Ruby puros, inicie o agente explicitamente no ponto de entrada:

require "google/cloud/debugger"

Google::Cloud::Debugger.new(service_name: "SERVICE-NAME",
                            service_version: "SERVICE-VERSION").start

Em que:

  • SERVICE-NAME é um nome do app, como MyApp, Backend ou Frontend;
  • SERVICE-VERSION é uma versão, como v1.0, build_147 ou v20170714.

Recomendamos fazer essa configuração a partir de variáveis de ambiente. Assim, não será necessário alterar o código-fonte em cada implantação.

O depurador está pronto para ser usado com o app.

Ambiente local e outros

  1. Adicione a gem do Stackdriver ao Gemfile.

    gem "stackdriver"
    
  2. Use o Bundler para instalar a gem:

    bundle install
    
  3. Faça o download das credenciais da conta de serviço.

    Para usar o agente do Stackdriver Debugger para Ruby em máquinas não hospedadas pelo Google Cloud Platform, o agente deve usar as credenciais de uma conta de serviço do GCP para se autenticar com o serviço Stackdriver Debugger.

    Use a página Contas de serviço do Console do GCP para criar um arquivo de credenciais para uma conta de serviço nova ou existente. A conta de serviço precisa ter pelo menos o papel Stackdriver Debugger Agent.

  4. Configure e ative o agente com as credenciais salvas.

Rails

Forneça os parâmetros por meio da interface de configuração do Ruby on Rails:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  config.google_cloud.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.keyfile    = "/path/to/service-account.json"
  config.google_cloud.debugger.service_name = "SERVICE-NAME"
  config.google_cloud.debugger.service_version = "SERVICE-VERSION"
end

Em que:

  • SERVICE-NAME é um nome do app, como MyApp, Backend ou Frontend;
  • SERVICE-VERSION é uma versão, como v1.0, build_147 ou v20170714.

Recomendamos fazer essa configuração a partir de variáveis de ambiente. Assim, não será necessário alterar o código-fonte em cada implantação.

O Debugger é ativado por padrão quando o Rails está em execução no modo de produção. Para ativar o Debugger no modo de desenvolvimento, adicione o seguinte:

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

Rack

Use o middleware do Rack fornecido pela biblioteca:

require "stackdriver"
require "google/cloud/debugger"

Google::Cloud.configure do |config|
  config.project_id = "YOUR-PROJECT-ID"
  config.keyfile    = "/path/to/service-account.json"
  config.service_name = "SERVICE-NAME"
  config.service_version = "SERVICE-VERSION"
end

use Google::Cloud::Debugger::Middleware

Em que:

  • SERVICE-NAME é um nome do app, como MyApp, Backend ou Frontend;
  • SERVICE-VERSION é uma versão, como v1.0, build_147 ou v20170714.

Recomendamos fazer essa configuração a partir de variáveis de ambiente. Assim, não será necessário alterar o código-fonte em cada implantação.

Outros

Para aplicativos Ruby puros, inicie o agente explicitamente no ponto de entrada:

require "google/cloud/debugger"

Google::Cloud::Debugger.new(project: "YOUR-PROJECT-ID",
                            keyfile: "/path/to/service-account.json",
                            service_name: "SERVICE-NAME",
                            service_version: "SERVICE-VERSION").start

Em que:

  • SERVICE-NAME é um nome do app, como MyApp, Backend ou Frontend;
  • SERVICE-VERSION é uma versão, como v1.0, build_147 ou v20170714.

Recomendamos fazer essa configuração a partir de variáveis de ambiente. Assim, não será necessário alterar o código-fonte em cada implantação.

O depurador está pronto para ser usado com o app.

A página "Depuração" no Console do GCP pode mostrar arquivos de origem locais, sem upload, para desenvolvimento local. Consulte Como selecionar o código-fonte manualmente.

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

Enviar comentários sobre…

Documentação do Stackdriver Debugger