morellon / rrd-ffi

A ruby wrapper for librrd (rrdtool) using ffi.
MIT License
71 stars 20 forks source link

Fetching data from a rrd #3

Closed gummybears closed 14 years ago

gummybears commented 14 years ago

I am trying to fetch data from a rrd via, but don't know how ? Here is some code

rrd = RRD::Base.new("myrrd.rrd") tend = Time.now tstart = tend - 1.month tstep = 5.minutes rrd.create :start => Time.now - 1.year, :step => tstep do datasource "idle", :type => :gauge, :heartbeat => tstep, :min => 0, :max => 100 datasource "irq", :type => :gauge, :heartbeat => tstep, :min => 0, :max => 100 datasource "softirq", :type => :gauge, :heartbeat => tstep, :min => 0, :max => 100 archive :average, :every => 10.minutes, :during => 1.year end t = tstart while t <= tend rrd.update t, rand(100),rand(100),rand(100) t = t + tstep end

now fetch data each datasource ????

rrd.fetch("idle").each do |line| ..... end

morellon commented 14 years ago

Well, the fetch command gets all data for an archive type not a datasource one. Try something like this: rrd.fetch(:average).each {|line| puts line.inspect}

If I am not mistaken, line[0] contains all datasources' titles, the first column in all lines contains the timestamp unix time.

Hope it helps.

morellon commented 14 years ago

any questions, just open a new issue.