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