class Statue::Metric

Constants

TYPES

Attributes

full_name[R]
name[RW]
sample_rate[RW]
type[RW]
type_description[R]
value[RW]

Public Class Methods

counter(name, value = 1, **options) click to toggle source
# File lib/statue/metric.rb, line 16
def self.counter(name, value = 1, **options)
  new(type: :c, value: value, name: name, **options)
end
gauge(name, value, **options) click to toggle source
# File lib/statue/metric.rb, line 20
def self.gauge(name, value, **options)
  new(type: :g, value: value, name: name, **options)
end
measure(name, duration: nil, **options, &block) click to toggle source
# File lib/statue/metric.rb, line 24
def self.measure(name, duration: nil, **options, &block)
  value = duration || Statue::Clock.duration_in_ms(&block)
  new(type: :ms, value: value, name: name, **options)
end
new(type:, name:, value:, sample_rate: 1.0) click to toggle source
# 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

Public Instance Methods

inspect() click to toggle source
# File lib/statue/metric.rb, line 44
def inspect
  "#<StatsD::Instrument::Metric #{full_name} #{type_description}(#{value})@#{sample_rate}>"
end
to_s() click to toggle source
# 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