Errand provides Ruby bindings for RRD functions (via librrd), and a clear API for interacting with RRDs.
Install Errand via RubyGems:
gem install errand
Or adding do your Gemfile:
gem 'errand'
To start working with an RRD:
@rrd = Errand.new(:filename => "data.rrd")
This will either read an existing RRD, or stub out the bits to create a new one.
To create an RRD:
options = {
:sources => [
{
:name => "Counter",
:type => :counter,
:heartbeat => 1800,
:min => 0,
:max => 4294967295
}
],
:archives => [
{
:function => :average,
:xff => 0.5,
:steps => 1,
:rows => 2400
}
]
}
@rrd.create(options)
To update said RRD:
@rrd.update(:sources => [{:name => "Counter", :value => 1}]
To fetch that data:
@rrd.fetch # <= {:start => Time, :end => Time,
:data => {"Counter" => [nil, nil, nil, 1]}
Check under spec/
for more usage examples.
Clone the repository:
git clone [email protected]:auxesis/errand.git
Suck down all the dependencies:
cd errand
bundle
Errand requires RRDtool version 1.2 or later. Some RRD functions such as rrddump are only available with the latest RRDtool.
Installation is standard. If you've installed the gem, you should be ready to go.
Otherwise, simply run:
ruby extconf.rb
make
make install
This should build a library named rrd.so
in the current directory. If it
doesn't, please report bugs at http://github.com/eric/rubyrrdtool/issues!
Testing is done with RSpec.
To run tests:
rake spec
Build the gem:
rake build
- Extend documentation with more examples
Errand is distributed under the MIT license.