_R_R_D_P_Y_T_H_O_N(1)                         rrdtool                        _R_R_D_P_Y_T_H_O_N(1)

NNAAMMEE
     rrdpython - About the RRD Python bindings

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

DDEESSCCRRIIPPTTIIOONN
     The rrrrddttooooll functions are directly callable via the Python programming lan‐
     guage. This wrapper implementation has been written from the scratch (with‐
     out  SWIG)

     The API expects strings and/or a list of strings as parameters to the func‐
     tions.   Please  refer to the other rrrrddttooooll documentation for functions and
     valid arguments.

EEXXAAMMPPLLEESS
   EExxaammppllee 11
      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']

   EExxaammppllee 22
      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' )

     If you use the ssiittee--ppyytthhoonn--iinnssttaallll  make  target  you  can  drop  to  first
     sys.path.append line since the RRDtool module will be available everywhere.

     If  RRDtool  runs  into trouble, it will throw an exception which you might
     want to catch.

SSEEEE AALLSSOO
     rrdcreate, rrdupdate, rrdgraph, rrddump, rrdfetch, rrdtune, rrdlast,  rrdx‐
     port, rrdinfo

AAUUTTHHOORR
     Hye-Shik Chang <perky@i18n.org>

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

1.10.0                             2026-05-23                       _R_R_D_P_Y_T_H_O_N(1)
