_R_R_D_P_Y_T_H_O_N(1)                         rrdtool                        _R_R_D_P_Y_T_H_O_N(1)

NNAAMMEE
     rrdpython - About the RRD Python bindings

SSYYNNOOPPSSIISS
      import rrdtool
      rrdtool.create('/tmp/test.rrd', 'DS:foo:GAUGE:20:0:U')

DDEESSCCRRIIPPTTIIOONN
     The rrrrddttooooll 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 rrrrddttooooll documentation for functions and
     valid arguments.

EEXXAAMMPPLLEESS
   EExxaammppllee 11
      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']

   EExxaammppllee 22
      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 ssiittee--ppyytthhoonn--iinnssttaallll  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.

SSEEEE AALLSSOO
     rrdcreate, rrdupdate, rrdgraph, rrddump, rrdfetch, rrdtune, rrdlast,  rrdx‐
     port, rrdinfo

AAUUTTHHOORR
     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)
