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 Miles Egan 1.11.0 2026-08-08 RRDRUBY(1)