116: def store(time)
117: unless Puppet.features.rrd?
118: Puppet.warning "RRD library is missing; cannot store metrics"
119: return
120: end
121: unless FileTest.exists?(self.path)
122: self.create(time - 5)
123: end
124:
125: @rrd ||= RRDtool.new(self.path)
126:
127:
128: args = [time]
129: temps = []
130: values.each { |value|
131:
132: args.push value[2]
133: temps.push value[0]
134: }
135: arg = args.join(":")
136: template = temps.join(":")
137: begin
138: @rrd.update( template, [ arg ] )
139:
140: rescue => detail
141: raise Puppet::Error, "Failed to update %s: %s" % [self.name,detail]
142: end
143: end