class Puppet::Util::Metric
A class for handling metrics. This is currently ridiculously hackish.
Attributes
label[RW]
name[RW]
type[RW]
value[RW]
values[W]
Public Class Methods
from_data_hash(data)
click to toggle source
# File lib/puppet/util/metric.rb 14 def self.from_data_hash(data) 15 metric = allocate 16 metric.initialize_from_hash(data) 17 metric 18 end
labelize(name)
click to toggle source
Convert a name into a label.
# File lib/puppet/util/metric.rb 63 def self.labelize(name) 64 name.to_s.capitalize.tr("_", " ") 65 end
new(name,label = nil)
click to toggle source
# File lib/puppet/util/metric.rb 44 def initialize(name,label = nil) 45 @name = name.to_s 46 47 @label = label || self.class.labelize(name) 48 49 @values = [] 50 end
Public Instance Methods
[](name)
click to toggle source
Return a specific value
# File lib/puppet/util/metric.rb 35 def [](name) 36 value = @values.find { |v| v[0] == name } 37 if value 38 return value[2] 39 else 40 return 0 41 end 42 end
initialize_from_hash(data)
click to toggle source
# File lib/puppet/util/metric.rb 20 def initialize_from_hash(data) 21 @name = data['name'] 22 @label = data['label'] || self.class.labelize(@name) 23 @values = data['values'] 24 end
newvalue(name,value,label = nil)
click to toggle source
# File lib/puppet/util/metric.rb 52 def newvalue(name,value,label = nil) 53 raise ArgumentError.new("metric name #{name.inspect} is not a string") unless name.is_a? String 54 label ||= self.class.labelize(name) 55 @values.push [name,label,value] 56 end
to_data_hash()
click to toggle source
# File lib/puppet/util/metric.rb 26 def to_data_hash 27 { 28 'name' => @name, 29 'label' => @label, 30 'values' => @values 31 } 32 end
values()
click to toggle source
# File lib/puppet/util/metric.rb 58 def values 59 @values.sort_by { |a| a[1] } 60 end