Module: StatsD::Instrument::Strict

Defined in:
lib/statsd/instrument/strict.rb

Overview

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 thois 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.

Instance Method Summary collapse

Instance Method Details

#distribution(key, value = UNSPECIFIED, sample_rate: nil, tags: nil, prefix: StatsD.prefix, no_prefix: false, &block) ⇒ Object



67
68
69
70
71
72
73
74
# File 'lib/statsd/instrument/strict.rb', line 67

def distribution(key, value = UNSPECIFIED, sample_rate: nil, tags: nil,
  prefix: StatsD.prefix, no_prefix: false, &block)

  check_block_or_numeric_value(value, &block)
  check_tags_and_sample_rate(sample_rate, tags)

  super
end

#gauge(key, value, sample_rate: nil, tags: nil, prefix: StatsD.prefix, no_prefix: false) ⇒ Object

Raises:

  • (ArgumentError)


35
36
37
38
39
40
41
# File 'lib/statsd/instrument/strict.rb', line 35

def gauge(key, value, sample_rate: nil, tags: nil, prefix: StatsD.prefix, 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, prefix: StatsD.prefix, no_prefix: false) ⇒ Object

Raises:

  • (ArgumentError)


43
44
45
46
47
48
49
# File 'lib/statsd/instrument/strict.rb', line 43

def histogram(key, value, sample_rate: nil, tags: nil, prefix: StatsD.prefix, 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, prefix: StatsD.prefix, no_prefix: false) ⇒ Object

Raises:

  • (ArgumentError)


27
28
29
30
31
32
33
# File 'lib/statsd/instrument/strict.rb', line 27

def increment(key, value = 1, sample_rate: nil, tags: nil, prefix: StatsD.prefix, 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

#measure(key, value = UNSPECIFIED, sample_rate: nil, tags: nil, prefix: StatsD.prefix, no_prefix: false, as_dist: false, &block) ⇒ Object



58
59
60
61
62
63
64
65
# File 'lib/statsd/instrument/strict.rb', line 58

def measure(key, value = UNSPECIFIED, sample_rate: nil, tags: nil,
  prefix: StatsD.prefix, no_prefix: false, as_dist: false, &block)

  check_block_or_numeric_value(value, &block)
  check_tags_and_sample_rate(sample_rate, tags)

  super
end

#set(key, value, sample_rate: nil, tags: nil, prefix: StatsD.prefix, no_prefix: false) ⇒ Object

Raises:

  • (ArgumentError)


51
52
53
54
55
56
# File 'lib/statsd/instrument/strict.rb', line 51

def set(key, value, sample_rate: nil, tags: nil, prefix: StatsD.prefix, 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