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_batching? ⇒ Boolean
- #statsd_buffer_capacity ⇒ Object
- #statsd_default_tags ⇒ Object
- #statsd_implementation ⇒ Object
- #statsd_max_packet_size ⇒ Object
- #statsd_prefix ⇒ Object
- #statsd_sample_rate ⇒ Object
Constructor Details
#initialize(env) ⇒ Environment
Returns a new instance of Environment.
36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/statsd/instrument/environment.rb', line 36 def initialize(env) @env = env if env.key?("STATSD_FLUSH_INTERVAL") value = env["STATSD_FLUSH_INTERVAL"] if Float(value) == 0.0 warn("STATSD_FLUSH_INTERVAL=#{value} is deprecated, please set STATSD_BUFFER_CAPACITY=0 instead.") else warn("STATSD_FLUSH_INTERVAL=#{value} is deprecated and has no effect, please remove it.") end end 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
101 102 103 |
# File 'lib/statsd/instrument/environment.rb', line 101 def client StatsD::Instrument::Client.from_env(self) end |
#default_sink_for_environment ⇒ Object
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/statsd/instrument/environment.rb', line 105 def default_sink_for_environment case environment when "production", "staging" if statsd_batching? StatsD::Instrument::BatchedUDPSink.for_addr( statsd_addr, buffer_capacity: statsd_buffer_capacity, max_packet_size: statsd_max_packet_size, ) else StatsD::Instrument::UDPSink.for_addr(statsd_addr) end 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
59 60 61 62 63 64 65 66 67 |
# File 'lib/statsd/instrument/environment.rb', line 59 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
81 82 83 |
# File 'lib/statsd/instrument/environment.rb', line 81 def statsd_addr env.fetch("STATSD_ADDR", "localhost:8125") end |
#statsd_batching? ⇒ Boolean
93 94 95 |
# File 'lib/statsd/instrument/environment.rb', line 93 def statsd_batching? statsd_buffer_capacity > 0 && Float(env.fetch("STATSD_FLUSH_INTERVAL", 1.0)) > 0.0 end |
#statsd_buffer_capacity ⇒ Object
89 90 91 |
# File 'lib/statsd/instrument/environment.rb', line 89 def statsd_buffer_capacity Integer(env.fetch("STATSD_BUFFER_CAPACITY", StatsD::Instrument::BatchedUDPSink::DEFAULT_BUFFER_CAPACITY)) end |
#statsd_default_tags ⇒ Object
85 86 87 |
# File 'lib/statsd/instrument/environment.rb', line 85 def env.key?("STATSD_DEFAULT_TAGS") ? env.fetch("STATSD_DEFAULT_TAGS").split(",") : nil end |
#statsd_implementation ⇒ Object
69 70 71 |
# File 'lib/statsd/instrument/environment.rb', line 69 def statsd_implementation env.fetch("STATSD_IMPLEMENTATION", "datadog") end |
#statsd_max_packet_size ⇒ Object
97 98 99 |
# File 'lib/statsd/instrument/environment.rb', line 97 def statsd_max_packet_size Float(env.fetch("STATSD_MAX_PACKET_SIZE", StatsD::Instrument::BatchedUDPSink::DEFAULT_MAX_PACKET_SIZE)) end |
#statsd_prefix ⇒ Object
77 78 79 |
# File 'lib/statsd/instrument/environment.rb', line 77 def statsd_prefix env.fetch("STATSD_PREFIX", nil) end |
#statsd_sample_rate ⇒ Object
73 74 75 |
# File 'lib/statsd/instrument/environment.rb', line 73 def statsd_sample_rate env.fetch("STATSD_SAMPLE_RATE", 1.0).to_f end |