Class: StatsD::Instrument::MetricExpectation
- Inherits:
-
Object
- Object
- StatsD::Instrument::MetricExpectation
- Defined in:
- lib/statsd/instrument/metric_expectation.rb
Constant Summary collapse
- TYPES =
{ c: 'increment', ms: 'measure', g: 'gauge', h: 'histogram', kv: 'key/value', s: 'set', }
Instance Attribute Summary collapse
-
#ignore_tags ⇒ Object
readonly
Returns the value of attribute ignore_tags.
-
#name ⇒ Object
Returns the value of attribute name.
-
#sample_rate ⇒ Object
Returns the value of attribute sample_rate.
-
#tags ⇒ Object
Returns the value of attribute tags.
-
#times ⇒ Object
Returns the value of attribute times.
-
#type ⇒ Object
Returns the value of attribute type.
-
#value ⇒ Object
Returns the value of attribute value.
Instance Method Summary collapse
- #default_value ⇒ Object
-
#initialize(options = {}) ⇒ MetricExpectation
constructor
A new instance of MetricExpectation.
- #inspect ⇒ Object
- #matches(actual_metric) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ MetricExpectation
Returns a new instance of MetricExpectation.
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 7 def initialize( = {}) @type = [:type] or raise ArgumentError, "Metric :type is required." @name = [:name] or raise ArgumentError, "Metric :name is required." @name = StatsD.prefix ? "#{StatsD.prefix}.#{@name}" : @name unless [:no_prefix] = StatsD::Instrument::Metric.([:tags]) @times = [:times] or raise ArgumentError, "Metric :times is required." @sample_rate = [:sample_rate] @value = [:value] = StatsD::Instrument::Metric.([:ignore_tags]) end |
Instance Attribute Details
#ignore_tags ⇒ Object (readonly)
Returns the value of attribute ignore_tags.
5 6 7 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 5 def end |
#name ⇒ Object
Returns the value of attribute name.
4 5 6 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 4 def name @name end |
#sample_rate ⇒ Object
Returns the value of attribute sample_rate.
4 5 6 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 4 def sample_rate @sample_rate end |
#tags ⇒ Object
Returns the value of attribute tags.
4 5 6 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 4 def end |
#times ⇒ Object
Returns the value of attribute times.
4 5 6 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 4 def times @times end |
#type ⇒ Object
Returns the value of attribute type.
4 5 6 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 4 def type @type end |
#value ⇒ Object
Returns the value of attribute value.
4 5 6 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 4 def value @value end |
Instance Method Details
#default_value ⇒ Object
41 42 43 44 45 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 41 def default_value case type when :c; 1 end end |
#inspect ⇒ Object
64 65 66 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 64 def inspect "#<StatsD::Instrument::MetricExpectation #{self.to_s}>" end |
#matches(actual_metric) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 18 def matches(actual_metric) return false if sample_rate && sample_rate != actual_metric.sample_rate return false if value && value != actual_metric.value if = Set.new() = Set.new(actual_metric.) if = Set.new() - -= if .is_a?(Array) .delete_if{ |key| .include?(key.split(":").first) } end end return .subset?() end true end |
#to_s ⇒ Object
56 57 58 59 60 61 62 |
# File 'lib/statsd/instrument/metric_expectation.rb', line 56 def to_s str = "#{TYPES[type]} #{name}:#{value}" str << " @#{sample_rate}" if sample_rate != 1.0 str << " " << .map { |t| "##{t}"}.join(' ') if str << " times:#{times}" if times > 1 str end |