Module: StatsD::Instrument::Environment

Extended by:
Environment
Included in:
Environment
Defined in:
lib/statsd/instrument/environment.rb

Overview

The environment module is used to detect, and initialize the environment in which this library is active. It will use different default values based on the environment.

Instance Method Summary collapse

Instance Method Details

#default_backendStatsD::Instrument::Backend

Instantiates a default backend for the current environment.



12
13
14
15
16
17
18
19
20
21
# File 'lib/statsd/instrument/environment.rb', line 12

def default_backend
  case environment
  when 'production', 'staging'
    StatsD::Instrument::Backends::UDPBackend.new(ENV['STATSD_ADDR'], ENV['STATSD_IMPLEMENTATION'])
  when 'test'
    StatsD::Instrument::Backends::NullBackend.new
  else
    StatsD::Instrument::Backends::LoggerBackend.new(StatsD.logger)
  end
end

#environmentString

Detects the current environment, either by asking Rails, or by inspecting environment variables.

  • Within a Rails application, Rails.env is used.

  • It will check the following environment variables in order: RAILS_ENV, RACK_ENV, ENV.

  • If none of these are set, it will return development

Returns:

  • (String)

    The detected environment.



30
31
32
33
34
35
36
# File 'lib/statsd/instrument/environment.rb', line 30

def environment
  if defined?(Rails) && Rails.respond_to?(:env)
    Rails.env.to_s
  else
    ENV['RAILS_ENV'] || ENV['RACK_ENV'] || ENV['ENV'] || 'development'
  end
end

#setupvoid

This method returns an undefined value.

Sets default values for sample rate and logger.

  • Default sample rate is set to the value in the STATSD_SAMPLE_RATE environment variable, or 1.0 otherwise. See StatsD#default_sample_rate

  • StatsD#logger is set to a logger that send output to stderr.

If you are including this library inside a Rails environment, additional initialization will be done as part of the Railtie.



48
49
50
51
# File 'lib/statsd/instrument/environment.rb', line 48

def setup
  StatsD.default_sample_rate = ENV.fetch('STATSD_SAMPLE_RATE', 1.0).to_f
  StatsD.logger = Logger.new($stderr)
end