Class: Instana::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/instana/config.rb

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/instana/config.rb', line 4

def initialize
  @config = {}
  if ENV.key?('INSTANA_AGENT_HOST')
    ::Instana.logger.debug "Using custom agent host location specified in INSTANA_AGENT_HOST (#{ENV['INSTANA_AGENT_HOST']})"
    @config[:agent_host] = ENV['INSTANA_AGENT_HOST']
  else
    @config[:agent_host] = '127.0.0.1'
  end
  if ENV.key?('INSTANA_AGENT_PORT')
    ::Instana.logger.debug "Using custom agent port specified in INSTANA_AGENT_PORT (#{ENV['INSTANA_AGENT_PORT']})"
    @config[:agent_port] = ENV['INSTANA_AGENT_PORT']
  else
    @config[:agent_port] = 42699
  end

  # This option has been DEPRECATED. Use the INSTANA_DISABLE environment variable instead.
  # https://docs.instana.io/ecosystem/ruby/configuration/
  @config[:enabled] = true

  # 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 }

  # 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

  @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[:nethttp]            = { :enabled => true }
  @config[:redis]              = { :enabled => true }
  @config[:'resque-client']    = { :enabled => true }
  @config[:'resque-worker']    = { :enabled => true }
  @config[:'rest-client']      = { :enabled => true }
  @config[:'sidekiq-client']   = { :enabled => true }
  @config[:'sidekiq-worker']   = { :enabled => true }
end

Instance Method Details

#[](key) ⇒ Object



60
61
62
# File 'lib/instana/config.rb', line 60

def [](key)
  @config[key.to_sym]
end

#[]=(key, value) ⇒ Object



64
65
66
67
68
69
70
71
72
73
# File 'lib/instana/config.rb', line 64

def []=(key, value)
  @config[key.to_sym] = value

  if key == :enabled
    # Configuring global enable/disable flag, then set the
    # appropriate children flags.
    @config[:metrics][:enabled] = value
    @config[:tracing][:enabled] = value
  end
end