This code is fine, but I think there needs to be a documentation change somewhere. Maybe in the defaults.rb setting that determines whether we're using rrd?
Other than that, +1. On Dec 8, 2009, at 8:14 PM, Silviu Paragina wrote: > From: Silviu Paragina <[email protected]> > > > Signed-off-by: Silviu Paragina <[email protected]> > --- > lib/puppet/feature/base.rb | 2 +- > lib/puppet/util/metric.rb | 20 ++++++++++++-------- > 2 files changed, 13 insertions(+), 9 deletions(-) > > diff --git a/lib/puppet/feature/base.rb b/lib/puppet/feature/base.rb > index c3fb9a2..5a9d207 100644 > --- a/lib/puppet/feature/base.rb > +++ b/lib/puppet/feature/base.rb > @@ -27,4 +27,4 @@ Puppet.features.add :diff, :libs => %w{diff/lcs > diff/lcs/hunk} > Puppet.features.add(:augeas, :libs => ["augeas"]) > > # We have RRD available > -Puppet.features.add(:rrd, :libs => ["RRDtool"]) > +Puppet.features.add(:rrd, :libs => ["RRD"]) > diff --git a/lib/puppet/util/metric.rb b/lib/puppet/util/metric.rb > index b713246..cd5173d 100644 > --- a/lib/puppet/util/metric.rb > +++ b/lib/puppet/util/metric.rb > @@ -1,5 +1,6 @@ > # included so we can test object types > require 'puppet' > +require 'RRD' > > # A class for handling metrics. This is currently ridiculously > hackish. > class Puppet::Util::Metric > @@ -31,7 +32,6 @@ class Puppet::Util::Metric > > start ||= Time.now.to_i - 5 > > - @rrd = RRDtool.new(self.path) > args = [] > > values.each { |value| > @@ -42,14 +42,17 @@ class Puppet::Util::Metric > args.push "RRA:AVERAGE:0.5:1:300" > > begin > - @rrd.create( Puppet[:rrdinterval].to_i, start, args) > + RRD.create(self.path, > + "--start", start.to_s, > + "--step", Puppet[:rrdinterval].to_i, > + *args) > rescue => detail > raise "Could not create RRD file %s: %s" % [path,detail] > end > end > > def dump > - puts @rrd.info > + puts RRD.info(self.path) > end > > def graph(range = nil) > @@ -84,12 +87,12 @@ class Puppet::Util::Metric > if range > args.push("--start",range[0],"--end",range[1]) > else > - args.push("--start", Time.now.to_i - time, "--end", > Time.now.to_i) > + args.push("--start", (Time.now.to_i - time).to_s, > "--end", Time.now.to_i.to_s) > end > > begin > - #Puppet.warning "args = #{args}" > - RRDtool.graph( args ) > + #Puppet.warning "args = #{args.join("|")}" > + RRD.graph( * args ) > rescue => detail > Puppet.err "Failed to graph %s: %s" % > [self.name,detail] > end > @@ -122,7 +125,6 @@ class Puppet::Util::Metric > self.create(time - 5) > end > > - @rrd ||= RRDtool.new(self.path) > > # XXX this is not terribly error-resistant > args = [time] > @@ -135,7 +137,9 @@ class Puppet::Util::Metric > arg = args.join(":") > template = temps.join(":") > begin > - @rrd.update( template, [ arg ] ) > + RRD.update(self.path, > + "--template", template, > + arg ) > #system("rrdtool updatev %s '%s'" % [self.path, arg]) > rescue => detail > raise Puppet::Error, "Failed to update %s: %s" % > [self.name,detail] > -- > 1.6.5.4 > > -- > > You received this message because you are subscribed to the Google > Groups "Puppet Developers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected] > . > For more options, visit this group at > http://groups.google.com/group/puppet-dev?hl=en > . > > -- The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt. -- Bertrand Russell --------------------------------------------------------------------- Luke Kanies | http://reductivelabs.com | http://madstop.com -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
