RRDPYTHON(1) rrdtool RRDPYTHON(1)

rrdpython - درباره اتصال‌های پایتون RRD

import rrdtool
rrdtool.create('/tmp/test.rrd', 'DS:foo:GAUGE:20:0:U')

توابع rrdtool مستقیماً از طریق زبان برنامه‌نویسی پایتون (Python) قابل فراخوانی هستند. این پیاده‌سازی لفاف (wrapper) از ابتدا (بدون استفاده از SWIG) نوشته شده است.

این رابط برنامه‌نویسی (API) رشته‌ها و/یا فهرستی از رشته‌ها را به‌عنوان پارامترهای توابع می‌پذیرد. لطفاً برای مشاهده توابع و آرگومان‌های معتبر به سایر مستندات rrdtool مراجعه کنید.

import sys
sys.path.append('/path/to/rrdtool/lib/python2.6/site-packages/')
import rrdtool, tempfile
DAY = 86400
YEAR = 365 * DAY
fd,path = tempfile.mkstemp('.png')
rrdtool.graph(path,
             '--imgformat', 'PNG',
             '--width', '540',
             '--height', '100',
             '--start', "-%i" % YEAR,
             '--end', "-1",
             '--vertical-label', 'Downloads/Day',
             '--title', 'Annual downloads',
             '--lower-limit', '0',
             'DEF:downloads=downloads.rrd:downloads:AVERAGE',
             'AREA:downloads#990033:Downloads')
info = rrdtool.info('downloads.rrd')
print info['last_update']
print info['ds[downloads].minimal_heartbeat']

import sys
sys.path.append('/path/to/rrdtool/lib/python2.6/site-packages/')
import rrdtool
# in real life data_sources would be populated in loop or something similar
data_sources=[ 'DS:speed1:COUNTER:600:U:U',
               'DS:speed2:COUNTER:600:U:U',
               'DS:speed3:COUNTER:600:U:U' ]
rrdtool.create( 'speed.rrd',
                '--start', '920804400',
                data_sources,
                'RRA:AVERAGE:0.5:1:24',
                'RRA:AVERAGE:0.5:6:10' )

اگر از تارگت ساخت site-python-install استفاده کنید، می‌توانید خط اول مربوط به sys.path.append را حذف کنید؛ زیرا ماژول RRDtool در همه‌جا در دسترس خواهد بود.

اگر RRDtool با مشکلی مواجه شود، یک استثنا (exception) ایجاد می‌کند که ممکن است بخواهید آن را مدیریت (catch) کنید.

rrdcreate, rrdupdate, rrdgraph, rrddump, rrdfetch, rrdtune, rrdlast, rrdxport, rrdinfo

Hye-Shik Chang <perky@i18n.org>

Alan Milligan <alan.milligan@last-bastion.net>

2026-08-08 1.11.0