module StatsD::Instrument::Strict
The Strict
monkeypatch can be loaded to see if you're using the StatsD
library in a deprecated way.
-
The metric methods are not retuning a
Metric
instance. -
Only accept keyword arguments for tags and sample_rate, rather than position arguments.
-
Only accept a position argument for value, rather than a keyword argument.
-
The provided arguments have the right type.
You can enable this monkeypatch by changing your Gemfile as follows:
gem 'statsd-instrument', require: 'statsd/instrument/strict'
By doing this as part of your QA/CI, you can find where you are still using deprecated patterns, and fix them before the deprecated behavior is removed in the next major version.
This monkeypatch is not meant to be used in production.
Public Instance Methods
distribution(key, value = UNSPECIFIED, sample_rate: nil, tags: nil, no_prefix: false, &block)
click to toggle source
Calls superclass method
# File lib/statsd/instrument/strict.rb, line 77 def distribution(key, value = UNSPECIFIED, sample_rate: nil, tags: nil, no_prefix: false, &block) check_block_or_numeric_value(value, &block) check_tags_and_sample_rate(sample_rate, tags) super end
event(title, text, tags: nil, no_prefix: false, hostname: nil, timestamp: nil, aggregation_key: nil, priority: nil, source_type_name: nil, alert_type: nil)
click to toggle source
Calls superclass method
# File lib/statsd/instrument/strict.rb, line 64 def event(title, text, tags: nil, no_prefix: false, hostname: nil, timestamp: nil, aggregation_key: nil, priority: nil, source_type_name: nil, alert_type: nil) super end
gauge(key, value, sample_rate: nil, tags: nil, no_prefix: false)
click to toggle source
Calls superclass method
# File lib/statsd/instrument/strict.rb, line 35 def gauge(key, value, sample_rate: nil, tags: nil, no_prefix: false) raise ArgumentError, "StatsD.increment does not accept a block" if block_given? raise ArgumentError, "The value argument should be an integer, got #{value.inspect}" unless value.is_a?(Numeric) check_tags_and_sample_rate(sample_rate, tags) super end
histogram(key, value, sample_rate: nil, tags: nil, no_prefix: false)
click to toggle source
Calls superclass method
# File lib/statsd/instrument/strict.rb, line 43 def histogram(key, value, sample_rate: nil, tags: nil, no_prefix: false) raise ArgumentError, "StatsD.increment does not accept a block" if block_given? raise ArgumentError, "The value argument should be an integer, got #{value.inspect}" unless value.is_a?(Numeric) check_tags_and_sample_rate(sample_rate, tags) super end
increment(key, value = 1, sample_rate: nil, tags: nil, no_prefix: false)
click to toggle source
Calls superclass method
# File lib/statsd/instrument/strict.rb, line 27 def increment(key, value = 1, sample_rate: nil, tags: nil, no_prefix: false) raise ArgumentError, "StatsD.increment does not accept a block" if block_given? raise ArgumentError, "The value argument should be an integer, got #{value.inspect}" unless value.is_a?(Integer) check_tags_and_sample_rate(sample_rate, tags) super end
key_value(*)
click to toggle source
# File lib/statsd/instrument/strict.rb, line 84 def key_value(*) raise NotImplementedError, "The key_value metric type will be removed " \ "from the next major version of statsd-instrument" end
measure(key, value = UNSPECIFIED, sample_rate: nil, tags: nil, no_prefix: false, &block)
click to toggle source
Calls superclass method
# File lib/statsd/instrument/strict.rb, line 70 def measure(key, value = UNSPECIFIED, sample_rate: nil, tags: nil, no_prefix: false, &block) check_block_or_numeric_value(value, &block) check_tags_and_sample_rate(sample_rate, tags) super end
service_check(name, status, tags: nil, no_prefix: false, hostname: nil, timestamp: nil, message: nil)
click to toggle source
Calls superclass method
# File lib/statsd/instrument/strict.rb, line 58 def service_check(name, status, tags: nil, no_prefix: false, hostname: nil, timestamp: nil, message: nil) super end
set(key, value, sample_rate: nil, tags: nil, no_prefix: false)
click to toggle source
Calls superclass method
# File lib/statsd/instrument/strict.rb, line 51 def set(key, value, sample_rate: nil, tags: nil, no_prefix: false) raise ArgumentError, "StatsD.set does not accept a block" if block_given? check_tags_and_sample_rate(sample_rate, tags) super end
Private Instance Methods
check_block_or_numeric_value(value)
click to toggle source
# File lib/statsd/instrument/strict.rb, line 91 def check_block_or_numeric_value(value) if block_given? raise ArgumentError, "The value argument should not be set when providing a block" unless value == UNSPECIFIED else raise ArgumentError, "The value argument should be a number, got #{value.inspect}" unless value.is_a?(Numeric) end end