Class: Statue::Metric
- Inherits:
-
Object
- Object
- Statue::Metric
- Defined in:
- lib/statue/metric.rb
Constant Summary collapse
- TYPES =
{ c: 'increment', ms: 'measure', g: 'gauge', kv: 'key/value', s: 'set' }
Instance Attribute Summary collapse
-
#full_name ⇒ Object
readonly
Returns the value of attribute full_name.
-
#name ⇒ Object
Returns the value of attribute name.
-
#sample_rate ⇒ Object
Returns the value of attribute sample_rate.
-
#type ⇒ Object
Returns the value of attribute type.
-
#type_description ⇒ Object
readonly
Returns the value of attribute type_description.
-
#value ⇒ Object
Returns the value of attribute value.
Class Method Summary collapse
- .counter(name, value = 1, **options) ⇒ Object
- .gauge(name, value, **options) ⇒ Object
- .measure(name, duration: nil, **options, &block) ⇒ Object
Instance Method Summary collapse
-
#initialize(type:, name:, value:, sample_rate: 1.0) ⇒ Metric
constructor
A new instance of Metric.
- #inspect ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(type:, name:, value:, sample_rate: 1.0) ⇒ Metric
Returns a new instance of Metric.
29 30 31 32 33 34 35 36 |
# File 'lib/statue/metric.rb', line 29 def initialize(type:, name:, value:, sample_rate: 1.0) @type_description = TYPES[type] or raise ArgumentError, "invalid type: #{type}" @type = type @name = name @value = value @sample_rate = sample_rate @full_name = Statue.namespace ? "#{Statue.namespace}.#{@name}" : @name end |
Instance Attribute Details
#full_name ⇒ Object (readonly)
Returns the value of attribute full_name.
14 15 16 |
# File 'lib/statue/metric.rb', line 14 def full_name @full_name end |
#name ⇒ Object
Returns the value of attribute name.
13 14 15 |
# File 'lib/statue/metric.rb', line 13 def name @name end |
#sample_rate ⇒ Object
Returns the value of attribute sample_rate.
13 14 15 |
# File 'lib/statue/metric.rb', line 13 def sample_rate @sample_rate end |
#type ⇒ Object
Returns the value of attribute type.
13 14 15 |
# File 'lib/statue/metric.rb', line 13 def type @type end |
#type_description ⇒ Object (readonly)
Returns the value of attribute type_description.
14 15 16 |
# File 'lib/statue/metric.rb', line 14 def type_description @type_description end |
#value ⇒ Object
Returns the value of attribute value.
13 14 15 |
# File 'lib/statue/metric.rb', line 13 def value @value end |
Class Method Details
.counter(name, value = 1, **options) ⇒ Object
16 17 18 |
# File 'lib/statue/metric.rb', line 16 def self.counter(name, value = 1, **) new(type: :c, value: value, name: name, **) end |
.gauge(name, value, **options) ⇒ Object
20 21 22 |
# File 'lib/statue/metric.rb', line 20 def self.gauge(name, value, **) new(type: :g, value: value, name: name, **) end |
.measure(name, duration: nil, **options, &block) ⇒ Object
24 25 26 27 |
# File 'lib/statue/metric.rb', line 24 def self.measure(name, duration: nil, **, &block) value = duration || Statue::Clock.duration_in_ms(&block) new(type: :ms, value: value, name: name, **) end |
Instance Method Details
#inspect ⇒ Object
44 45 46 |
# File 'lib/statue/metric.rb', line 44 def inspect "#<StatsD::Instrument::Metric #{full_name} #{type_description}(#{value})@#{sample_rate}>" end |
#to_s ⇒ Object
38 39 40 41 42 |
# File 'lib/statue/metric.rb', line 38 def to_s str = "#{full_name}:#{value}|#{type}" str << "|@#{sample_rate}" if sample_rate != 1.0 str end |