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 13 def self.from_data_hash(data) 14 metric = allocate 15 metric.initialize_from_hash(data) 16 metric 17 end
labelize(name)
click to toggle source
Convert a name into a label.
# File lib/puppet/util/metric.rb 62 def self.labelize(name) 63 name.to_s.capitalize.tr("_", " ") 64 end
new(name,label = nil)
click to toggle source
# File lib/puppet/util/metric.rb 43 def initialize(name,label = nil) 44 @name = name.to_s 45 46 @label = label || self.class.labelize(name) 47 48 @values = [] 49 end
Public Instance Methods
[](name)
click to toggle source
Return a specific value
# File lib/puppet/util/metric.rb 34 def [](name) 35 value = @values.find { |v| v[0] == name } 36 if value 37 return value[2] 38 else 39 return 0 40 end 41 end
initialize_from_hash(data)
click to toggle source
# File lib/puppet/util/metric.rb 19 def initialize_from_hash(data) 20 @name = data['name'] 21 @label = data['label'] || self.class.labelize(@name) 22 @values = data['values'] 23 end
newvalue(name,value,label = nil)
click to toggle source
# File lib/puppet/util/metric.rb 51 def newvalue(name,value,label = nil) 52 raise ArgumentError.new("metric name #{name.inspect} is not a string") unless name.is_a? String 53 label ||= self.class.labelize(name) 54 @values.push [name,label,value] 55 end
to_data_hash()
click to toggle source
# File lib/puppet/util/metric.rb 25 def to_data_hash 26 { 27 'name' => @name, 28 'label' => @label, 29 'values' => @values 30 } 31 end
values()
click to toggle source
# File lib/puppet/util/metric.rb 57 def values 58 @values.sort_by { |a| a[1] } 59 end