class Instana::Config

Public Class Methods

new(logger: ::Instana.logger, agent_host: ENV['INSTANA_AGENT_HOST'], agent_port: ENV['INSTANA_AGENT_PORT']) click to toggle source
# File lib/instana/config.rb, line 6
def initialize(logger: ::Instana.logger, agent_host: ENV['INSTANA_AGENT_HOST'], agent_port: ENV['INSTANA_AGENT_PORT'])
  @config = {}
  if agent_host
    logger.debug "Using custom agent host location specified in INSTANA_AGENT_HOST (#{ENV['INSTANA_AGENT_HOST']})"
    @config[:agent_host] = agent_host
  else
    @config[:agent_host] = '127.0.0.1'
  end
  if agent_port
    logger.debug "Using custom agent port specified in INSTANA_AGENT_PORT (#{ENV['INSTANA_AGENT_PORT']})"
    @config[:agent_port] = agent_port
  else
    @config[:agent_port] = 42699
  end

  # Enable/disable metrics globally or individually (default: all enabled)
  @config[:metrics] = { :enabled => true }
  @config[:metrics][:gc]     = { :enabled => true }
  @config[:metrics][:memory] = { :enabled => true }
  @config[:metrics][:thread] = { :enabled => true }

  # Enable/disable tracing (default: enabled)
  @config[:tracing] = { :enabled => true }

  # Enable/Disable logging
  @config[:logging] = { :enabled => true }

  # Collector interval
  @config[:collector] = { :enabled => true, :interval => 1 }

  # EUM Related
  @config[:eum_api_key] = nil
  @config[:eum_baggage] = {}

  # In Ruby, backtrace collection is very expensive so it's
  # (unfortunately) disabled by default.  If you still want
  # backtraces, it can be enabled with this config option.
  # ::Instana.config[:collect_backtraces] = true
  @config[:collect_backtraces] = false

  # By default, collected SQL will be sanitized to remove potentially sensitive bind params such as:
  #   > SELECT  "blocks".* FROM "blocks"  WHERE "blocks"."name" = "Mr. Smith"
  #
  # ...would be sanitized to be:
  #   > SELECT  "blocks".* FROM "blocks"  WHERE "blocks"."name" = ?
  #
  # This sanitization step can be disabled by setting the following value to false.
  # ::Instana.config[:sanitize_sql] = false
  @config[:sanitize_sql] = true

  # W3 Trace Context Support
  @config[:w3_trace_correlation] = ENV['INSTANA_DISABLE_W3C_TRACE_CORRELATION'].nil?

  @config[:post_fork_proc] = proc { ::Instana.agent.spawn_background_thread }

  @config[:action_controller]  = { :enabled => true }
  @config[:action_view]        = { :enabled => true }
  @config[:active_record]      = { :enabled => true }
  @config[:dalli]              = { :enabled => true }
  @config[:excon]              = { :enabled => true }
  @config[:grpc]               = { :enabled => true }
  @config[:graphql]            = { :enabled => true }
  @config[:nethttp]            = { :enabled => true }
  @config[:redis]              = { :enabled => true }
  @config[:'resque-client']    = { :enabled => true, :propagate => true }
  @config[:'resque-worker']    = { :enabled => true, :'setup-fork' => true }
  @config[:'rest-client']      = { :enabled => true }
  @config[:'sidekiq-client']   = { :enabled => true }
  @config[:'sidekiq-worker']   = { :enabled => true }
end

Public Instance Methods

[](key) click to toggle source
# File lib/instana/config.rb, line 77
def [](key)
  @config[key.to_sym]
end
[]=(key, value) click to toggle source
# File lib/instana/config.rb, line 81
def []=(key, value)
  @config[key.to_sym] = value
end