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.
Instantiates a default backend for the current environment.
@return [StatsD::Instrument::Backend] @see environment
# 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
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
@return [String] The detected environment.
# 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
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 {StatsD::Instrument::Railtie}.
@return [void]
# 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