Module: LogStats::Config

Defined in:
lib/log_stats/config.rb

Class Method Summary collapse

Class Method Details

.boolean?(value) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/log_stats/config.rb', line 51

def self.boolean?(value)
  !!value == value
end

.default_configObject



3
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
# File 'lib/log_stats/config.rb', line 3

def self.default_config
  {
    events: {
      requests: {
        # NOTE: matches Heroku router lines. Also matches Papertrails slightly modified lines.
        line_pattern: /\s(heroku\/router)|(heroku\[router\]:)\s/,
        fields: [
          {
            name: :time,
            parse: Proc.new { |line| line[/\b20\d\d-\d\d-\d\dT\d\d:\d\d:\d\d/] }
          },
          {name: :method},
          {name: :host},
          {name: :path},
          {name: :status, numeric: true},
          {name: :code, optional: true},
          {name: :service, numeric: true}
        ],
        top_list_limit: 100,
        apdex: {tolerating: 500, frustrated: 2000},
        apdex_goal: 0.9,
      }
    },
    output_format: "text",
    verbose: true
  }
end

.env_configObject



31
32
33
34
35
36
37
38
39
# File 'lib/log_stats/config.rb', line 31

def self.env_config
  default_config.keys.reduce({}) do |acc, key|
    value = env_value(key)
    if !value.nil?
      acc[key] = value
    end
    acc
  end
end

.env_value(key) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'lib/log_stats/config.rb', line 41

def self.env_value(key)
  env_key = key.to_s.upcase
  value = ENV[env_key]
  if !value.nil? && boolean?(default_config[key])
    ['1', true, 'true', 't', 'TRUE'].include?(value)
  else
    value
  end
end