Skip to content

Native ruby implementation of RRD file parser.

License

LGPL-3.0, MIT licenses found

Licenses found

LGPL-3.0
LICENSE
MIT
LICENSE.txt
Notifications You must be signed in to change notification settings

t3hk0d3/rrd-ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RRD::Ruby

Native ruby implementation of RRD format parsing. Don't need all these pesky C libraries.

Doesn't include any update functionality, so you still have to use rrdtool to update your data.

Installation

Add this line to your application's Gemfile:

gem 'rrd-ruby'

And then execute:

$ bundle

Or install it yourself as:

$ gem install rrd-ruby

Usage

require 'rrd'

file = RRD::File.new("path/to/my_awesome.rrd")

# Get all Round Robin Archive infos
rra = file.rra

# Get all DataSource infos
ds = file.datasources

# Get all data from RRA in specified time interval
data = file.data(rra.first).fetch(start_time: 20.minutes.ago, end_time: 5.minutes.ago)

# Format data right in reading loop (perfomance for perfomance god!)
data = file.data(rra.first).fetch do |row, columns|
	columns # => [:time, :col1, :col2, :col3]
	row # => [123345345, 123.0, 456.0, 789.0]	

	# turn em into hash
	Hash[columns.zip(row)] # => { time: 123345345, col1: 123.0, col2: 456.0, col3: 789.0 }
end
# => [... , { time: 123345345, col1: 123.0, col2: 456.0, col3: 789.0 }, ...]

# All data read from file stream, right on spot
file.close

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

About

Native ruby implementation of RRD file parser.

Resources

License

LGPL-3.0, MIT licenses found

Licenses found

LGPL-3.0
LICENSE
MIT
LICENSE.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages