square / simplerrd

SimpleRRD provides a simple Ruby interface for creating graphs with RRD

Home Page:https://github.com/emerose/simplerrd

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

simplerrd

SimpleRRD is intended to be a simple way to create pretty, usable graphs with RRDTool in Ruby. It has a simple DSL that provides a simple interface to some predefined graph styles, and also models RRDTool's command syntax with Ruby objects for those who want more control.

Synopsis:

require 'simplerrd'
include SimpleRRD

graph = FancyGraph.build do
  title   "Fancy line graph"

  width    640
  height   240
  end_at   Time.at(1252107236)
  start_at Time.at(1252107236) - (60*60*60*6)

  buffers = data('data/mem/buffers.rrd') # ds_name and cf implied
  free    = data('data/mem/free.rrd')
  cache   = data('data/mem/cache.rrd')

  plot buffers, "Used buffers" # pick color by default, set opacity to 50-80%
  plot free,    "Free space  "
  plot cache,   "Cache used  "
end

graph.generate('fancy_lines.png')

Will produce:

fancy_lines.png

and

graph = FancyGraph.build do
  title   "Fancy stacked graph"

  width    640
  height   240
  end_at   Time.at(1252107236)
  start_at Time.at(1252107236) - (60*60*60*6)

  buffers = data('data/mem/buffers.rrd') # ds_name and cf implied
  free    = data('data/mem/free.rrd')
  cache   = data('data/mem/cache.rrd')

  stack_plot([buffers, "Used buffers"], 
             [free,    "Free space  "],
             [cache,   "Cache used  "])
end

graph.generate('fancy_stack.png')

fancy_stacked.png

A real-world example: complicated_ping.png

More information

For more examples, see the examples/ directory. The create_rrds.rb script will create the RRD data files that the examples use.

Unfortunately, beyond the examples, there's not a lot of documetation yet. The code and specs should be pretty readable, though.

Patches and such are welcome.

Copyright

Copyright (c) 2009 Sam Quigley. See LICENSE for details.

About

SimpleRRD provides a simple Ruby interface for creating graphs with RRD

https://github.com/emerose/simplerrd

License:MIT License


Languages

Language:Ruby 100.0%Language:Shell 0.0%