Module: Google::Cloud::Debugger

Defined in:
lib/google/cloud/debugger.rb,
lib/google/cloud/debugger/v2.rb,
lib/google/cloud/debugger/agent.rb,
lib/google/cloud/debugger/rails.rb,
lib/google/cloud/debugger/tracer.rb,
lib/google/cloud/debugger/backoff.rb,
lib/google/cloud/debugger/project.rb,
lib/google/cloud/debugger/service.rb,
lib/google/cloud/debugger/version.rb,
lib/google/cloud/debugger/debuggee.rb,
lib/google/cloud/debugger/logpoint.rb,
lib/google/cloud/debugger/snappoint.rb,
lib/google/cloud/debugger/breakpoint.rb,
lib/google/cloud/debugger/middleware.rb,
lib/google/cloud/debugger/credentials.rb,
lib/google/cloud/debugger/transmitter.rb,
lib/google/cloud/debugger/v2/doc/overview.rb,
lib/google/cloud/debugger/breakpoint_manager.rb,
lib/google/cloud/debugger/breakpoint/variable.rb,
lib/google/cloud/debugger/v2/debugger2_client.rb,
lib/google/cloud/debugger/breakpoint/evaluator.rb,
lib/google/cloud/debugger/breakpoint/validator.rb,
lib/google/cloud/debugger/request_quota_manager.rb,
lib/google/cloud/debugger/v2/controller2_client.rb,
lib/google/cloud/debugger/breakpoint/stack_frame.rb,
lib/google/cloud/debugger/breakpoint/status_message.rb,
lib/google/cloud/debugger/breakpoint/variable_table.rb,
lib/google/cloud/debugger/breakpoint/source_location.rb,
lib/google/cloud/debugger/debuggee/app_uniquifier_generator.rb

Overview

Ruby Client for Stackdriver Debugger API (Alpha)

Stackdriver Debugger API: Examines the call stack and variables of a running application without stopping or slowing it down.

Quick Start

In order to use this library, you first need to go through the following steps:

  1. Select or create a Cloud Platform project.
  2. Enable the Stackdriver Debugger API.
  3. Setup Authentication.

Installation

$ gem install google-cloud-debugger

Next Steps

Defined Under Namespace

Modules: V2 Classes: Agent, Breakpoint, BreakpointManager, Credentials, Debuggee, Logpoint, Middleware, Project, Railtie, RequestQuotaManager, Snappoint, Tracer, Transmitter

Constant Summary collapse

VERSION =
"0.29.1"

Class Method Summary collapse

Class Method Details

.configure {|Google::Cloud.configure[:debugger]| ... } ⇒ Stackdriver::Core::Configuration

Configure the Stackdriver Debugger agent.

See the Configuration Guide for full configuration parameters.

Yields:

Returns:

  • (Stackdriver::Core::Configuration)

    The configuration object the Google::Cloud::ErrorReporting module uses.



407
408
409
410
411
# File 'lib/google/cloud/debugger.rb', line 407

def self.configure
  yield Google::Cloud.configure[:debugger] if block_given?

  Google::Cloud.configure[:debugger]
end

.new(project_id: nil, credentials: nil, service_name: nil, service_version: nil, scope: nil, timeout: nil, client_config: nil, project: nil, keyfile: nil) ⇒ Google::Cloud::Debugger::Project

Creates a new debugger object for instrumenting Stackdriver Debugger for an application. Each call creates a new debugger agent with independent connection service.

For more information on connecting to Google Cloud see the Authentication Guide.

Examples:

require "google/cloud/debugger"

debugger = Google::Cloud::Debugger.new
debugger.start

Parameters:

  • project_id (String)

    Project identifier for the Stackdriver Debugger service you are connecting to. If not present, the default project for the credentials is used.

  • credentials (String, Hash, Google::Auth::Credentials)

    The path to the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object. (See Credentials)

  • service_name (String)

    Name for the debuggee application. Optional.

  • service_version (String)

    Version identifier for the debuggee application. Optional.

  • scope (String, Array<String>)

    The OAuth 2.0 scopes controlling the set of resources and operations that the connection can access. See Using OAuth 2.0 to Access Google APIs. The default scope is https://www.googleapis.com/auth/cloud-platform

  • timeout (Integer)

    Default timeout to use in requests. Optional.

  • project (String)

    Project identifier for the Stackdriver Debugger service.

  • keyfile (String, Hash)

    Keyfile downloaded from Google Cloud: either the JSON data or the path to a readable file.

Returns:



371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
# File 'lib/google/cloud/debugger.rb', line 371

def self.new project_id: nil, credentials: nil, service_name: nil,
             service_version: nil, scope: nil, timeout: nil,
             client_config: nil, project: nil, keyfile: nil
  project_id ||= (project || Debugger::Project.default_project_id)
  project_id = project_id.to_s # Always cast to a string
  service_name ||= Debugger::Project.default_service_name
  service_name = service_name.to_s
  service_version ||= Debugger::Project.default_service_version
  service_version = service_version.to_s

  fail ArgumentError, "project_id is missing" if project_id.empty?
  fail ArgumentError, "service_name is missing" if service_name.empty?
  fail ArgumentError, "service_version is missing" if service_version.nil?

  credentials ||= (keyfile || Debugger::Credentials.default(scope: scope))
  unless credentials.is_a? Google::Auth::Credentials
    credentials = Debugger::Credentials.new credentials, scope: scope
  end

  Debugger::Project.new(
    Debugger::Service.new(project_id, credentials,
                          timeout: timeout, client_config: client_config),
    service_name: service_name,
    service_version: service_version)
end