Como configurar o Cloud Debugger para Ruby

Visão geral

Nesta página, você aprende como configurar seu ambiente e seu aplicativo Ruby para usar o Cloud Debugger. Para alguns ambientes, é necessário especificar explicitamente o escopo de acesso para que o agente do Cloud Debugger envie dados. Recomendamos definir o escopo de acesso da forma mais ampla possível e depois usar o Gerenciador de identidade e acesso para restringir o acesso. Para manter essa prática recomendada, configure o escopo de acesso para todas as APIs do Cloud com a opção cloud-platform.

Versões de linguagem e ambiente de computação

O Cloud Debugger está disponível para as versões 2.2 e posteriores do Ruby.

Ambiente padrão do App Engine Ambiente flexível do App Engine Compute Engine Google Kubernetes Engine Cloud Run Cloud Run for Anthos VMs e contêineres em execução em outra plataforma Cloud Functions

Como configurar o Cloud Debugger

Para configurar o Cloud Debugger, conclua as seguintes tarefas:

  1. Verifique se a API Cloud Debugger está ativada no projeto.

  2. Instale e configure o Debugger no ambiente de computação que você está usando.

  3. Selecione o código-fonte.

Como verificar se a API Cloud Debugger está ativada

Para começar a usar o Cloud Debugger, verifique se a API Cloud Debugger está ativada. O Cloud Debugger é ativado por padrão na maioria dos projetos.
Ativar a API Cloud Debugger

Ambiente flexível do App Engine

  1. Adicione a gema stackdriver ao seu 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

GCLOUD

Para ativar o Debugger usando a gcloud, conclua as etapas abaixo:

  1. Crie seu cluster com um destes escopos de acesso:

    • https://www.googleapis.com/auth/cloud-platform concede ao cluster acesso a todas as APIs do Google Cloud.

    • https://www.googleapis.com/auth/cloud_debugger concede ao cluster acesso apenas à API Stackdriver Debugger. Use esse escopo de acesso para reforçar a segurança do seu cluster.

    gcloud container clusters create example-cluster-name \
           --scopes=https://www.googleapis.com/auth/cloud_debugger
    
  2. Adicione a gema stackdriver ao seu Gemfile:

    gem "stackdriver"
    
  3. Adicione a linha a seguir ao Dockerfile para inserir o agente do Debugger:

    Run bundle install
    
  4. Ative o agente do Debugger:

    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 para o 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 para o 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 apps 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 para o 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 agora está ativado para seu app.

CONSOLE

Para ativar o Debugger usando o Console do Google Cloud, siga estas etapas:

  1. Na seção Pool de nós, selecione Segurança e Definir acesso para cada API.

  2. Ative o Debugger.

    A API Debugger está ativada para o cluster.

  3. Opcional: selecione Permitir acesso total a todas as APIs do Cloud.

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 escopos de acesso a seguir:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  2. Adicione a gema stackdriver ao seu 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 para o 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 para o 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 apps 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 para o 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 gema stackdriver ao seu 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 Cloud Debugger para Ruby em máquinas não hospedadas pelo Google Cloud, o agente deve usar credenciais de conta de serviço do Google Cloud para autenticar com o Cloud Debugger Service.

    Use a página "Contas de serviço" do console do Google Cloud 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 Cloud 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 para o 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 para o 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 apps 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 para o 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 aplicativo.

A página "Debug" no Console do Google Cloud pode exibir arquivos de origem locais, sem upload, para desenvolvimento local. Consulte Como selecionar o código-fonte manualmente.