Class: StatsD::Instrument::Environment
- Inherits:
-
Object
- Object
- StatsD::Instrument::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 Attribute Summary collapse
-
#env ⇒ Object
readonly
Returns the value of attribute env.
Class Method Summary collapse
- .current ⇒ Object
-
.environment ⇒ Object
deprecated
Deprecated.
For backwards compatibility only. Use #environment through Environment.current instead.
-
.setup ⇒ void
Sets default values for sample rate and logger.
Instance Method Summary collapse
- #client ⇒ Object
- #default_sink_for_environment ⇒ Object
-
#environment ⇒ String
Detects the current environment, either by asking Rails, or by inspecting environment variables.
-
#initialize(env) ⇒ Environment
constructor
A new instance of Environment.
- #statsd_addr ⇒ Object
- #statsd_default_tags ⇒ Object
- #statsd_implementation ⇒ Object
- #statsd_prefix ⇒ Object
- #statsd_sample_rate ⇒ Object
Constructor Details
#initialize(env) ⇒ Environment
Returns a new instance of Environment.
36 37 38 |
# File 'lib/statsd/instrument/environment.rb', line 36 def initialize(env) @env = env end |
Instance Attribute Details
#env ⇒ Object (readonly)
Returns the value of attribute env.
34 35 36 |
# File 'lib/statsd/instrument/environment.rb', line 34 def env @env end |
Class Method Details
.current ⇒ Object
9 10 11 |
# File 'lib/statsd/instrument/environment.rb', line 9 def current @current ||= StatsD::Instrument::Environment.new(ENV) end |
.environment ⇒ Object
For backwards compatibility only. Use #environment through current instead.
15 16 17 |
# File 'lib/statsd/instrument/environment.rb', line 15 def environment current.environment end |
.setup ⇒ void
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.
29 30 31 |
# File 'lib/statsd/instrument/environment.rb', line 29 def setup StatsD.logger = Logger.new($stderr) end |
Instance Method Details
#client ⇒ Object
81 82 83 |
# File 'lib/statsd/instrument/environment.rb', line 81 def client StatsD::Instrument::Client.from_env(self) end |
#default_sink_for_environment ⇒ Object
85 86 87 88 89 90 91 92 93 94 |
# File 'lib/statsd/instrument/environment.rb', line 85 def default_sink_for_environment case environment when 'production', 'staging' StatsD::Instrument::UDPSink.for_addr(statsd_addr) when 'test' StatsD::Instrument::NullSink.new else StatsD::Instrument::LogSink.new(StatsD.logger) end end |
#environment ⇒ String
Detects the current environment, either by asking Rails, or by inspecting environment variables.
- It will prefer the value set in ENV['STATSD_ENV']
- 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
51 52 53 54 55 56 57 58 59 |
# File 'lib/statsd/instrument/environment.rb', line 51 def environment if env['STATSD_ENV'] env['STATSD_ENV'] elsif defined?(Rails) && Rails.respond_to?(:env) Rails.env.to_s else env['RAILS_ENV'] || env['RACK_ENV'] || env['ENV'] || 'development' end end |
#statsd_addr ⇒ Object
73 74 75 |
# File 'lib/statsd/instrument/environment.rb', line 73 def statsd_addr env.fetch('STATSD_ADDR', 'localhost:8125') end |
#statsd_default_tags ⇒ Object
77 78 79 |
# File 'lib/statsd/instrument/environment.rb', line 77 def env.key?('STATSD_DEFAULT_TAGS') ? env.fetch('STATSD_DEFAULT_TAGS').split(',') : nil end |
#statsd_implementation ⇒ Object
61 62 63 |
# File 'lib/statsd/instrument/environment.rb', line 61 def statsd_implementation env.fetch('STATSD_IMPLEMENTATION', 'datadog') end |
#statsd_prefix ⇒ Object
69 70 71 |
# File 'lib/statsd/instrument/environment.rb', line 69 def statsd_prefix env.fetch('STATSD_PREFIX', nil) end |
#statsd_sample_rate ⇒ Object
65 66 67 |
# File 'lib/statsd/instrument/environment.rb', line 65 def statsd_sample_rate env.fetch('STATSD_SAMPLE_RATE', 1.0).to_f end |