module StatsD::Instrument::Strict

The Strict monkeypatch can be loaded to see if you're using the StatsD library in a deprecated way.

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 75
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 62
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
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 68
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 84
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
check_tags_and_sample_rate(sample_rate, tags) click to toggle source
# File lib/statsd/instrument/strict.rb, line 92
def check_tags_and_sample_rate(sample_rate, tags)
  unless sample_rate.nil? || sample_rate.is_a?(Numeric)
    raise ArgumentError, "The sample_rate argument should be a number, got #{sample_rate}"
  end
  unless tags.nil? || tags.is_a?(Hash) || tags.is_a?(Array)
    raise ArgumentError, "The tags argument should be a hash or an array, got #{tags.inspect}"
  end
end