Skip to content
/ errand Public
forked from gebi/rubyrrdtool

Errand provides Ruby bindings for RRD functions (via librrd), and a clear API for interacting with RRDs.

License

Notifications You must be signed in to change notification settings

auxesis/errand

 
 

Repository files navigation

Errand

Errand provides Ruby bindings for RRD functions (via librrd), and a clear API for interacting with RRDs.

Installing

Install Errand via RubyGems:

gem install errand

Or adding do your Gemfile:

gem 'errand'

Using

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.

Developing

Clone the repository:

git clone [email protected]:auxesis/errand.git

Suck down all the dependencies:

cd errand
bundle

Dependencies

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

Testing is done with RSpec.

To run tests:

rake spec

Building the gem

Build the gem:

rake build

TODO

  • Extend documentation with more examples

License

Errand is distributed under the MIT license.

About

Errand provides Ruby bindings for RRD functions (via librrd), and a clear API for interacting with RRDs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%