| RRDRUBY(1) | rrdtool | RRDRUBY(1) |
نام (NAME)
rrdruby - درباره اتصالات Ruby برای RRD
خلاصه دستور (SYNOPSIS)
require "RRD" RRD.create( rrd, "--step", "300", "DS:a:GAUGE:600:U:U", "DS:b:GAUGE:600:U:U", "RRA:AVERAGE:0.5:1:300")
توضیحات (DESCRIPTION)
توابع rrdtool مستقیماً از طریق زبان برنامهنویسی Ruby قابل فراخوانی هستند. این پیادهسازی لفاف (wrapper) از ابتدا (بدون استفاده از SWIG) نوشته شده است.
این API صرفاً پارامترهایی از نوع رشته را برای توابع انتظار دارد. لطفاً جهت آگاهی از توابع و آرگومانهای معتبر به سایر مستندات rrdtool مراجعه کنید.
مثالها (EXAMPLES)
$: << '/path/to/rrdtool/lib/ruby/1.8/i386-linux'
require "RRD"
name = "test"
rrd = "#{name}.rrd"
start = Time.now.to_i
RRD.create(
rrd,
"--start", "#{start - 1}",
"--step", "300",
"DS:a:GAUGE:600:U:U",
"DS:b:GAUGE:600:U:U",
"RRA:AVERAGE:0.5:1:300")
puts
puts "updating #{rrd}"
start.to_i.step(start.to_i + 300 * 300, 300) { |i|
RRD.update(rrd, "#{i}:#{rand(100)}:#{Math.sin(i / 800) * 50 + 50}")
}
puts
puts "fetching data from #{rrd}"
(fstart, fend, data, step) = RRD.fetch(rrd, "--start", start.to_s, "--end",
(start + 300 * 300).to_s, "AVERAGE")
puts "got #{data.length} data points from #{fstart} to #{fend}"
puts
puts "generating graph #{name}.png"
RRD.graph(
"#{name}.png",
"--title", " RubyRRD Demo",
"--start", "#{start+3600}",
"--end", "start + 1000 min",
"--interlaced",
"--imgformat", "PNG",
"--width=450",
"DEF:a=#{rrd}:a:AVERAGE",
"DEF:b=#{rrd}:b:AVERAGE",
"CDEF:line=TIME,2400,%,300,LT,a,UNKN,IF",
"AREA:b#00b6e4:beta",
"AREA:line#0022e9:alpha",
"LINE3:line#ff0000")
puts
اگر از گزینه پیکربندی --ruby-site-install استفاده کنید، میتوانید خط $: را حذف کنید چرا که ماژول RRDtool به طور خودکار پیدا خواهد شد.
اگر RRDtool با مشکلی مواجه شود، یک استثنا (exception) صادر میکند که ممکن است بخواهید آن را مدیریت (catch) کنید.
همچنین ببینید (SEE ALSO)
rrdcreate, rrdupdate, rrdgraph, rrddump, rrdfetch, rrdtune, rrdlast, rrdxport, rrdinfo
نویسندگان (AUTHORS)
Loïs Lherbier <lois.lherbier@covadis.ch>
Miles Egan <miles@caddr.com>
| 2026-08-08 | 1.11.0 |