RRDtool

Time series software


title: "RRDtool" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["internet-protocol-based-network-software", "free-network-management-software", "free-software-programmed-in-c", "free-database-management-systems", "1999-software", "time-series-software"] description: "Time series software" topic_path: "technology/databases" source: "https://en.wikipedia.org/wiki/RRDtool" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

::summary Time series software ::

::data[format=table title="Infobox software"]

FieldValue
nameRRDtool
logoFile:Rrdtool-3dlogo.png
authorTobias Oetiker
released
latest release version
programming languageC
licenseGNU General Public License
website
::

| name = RRDtool | logo = File:Rrdtool-3dlogo.png | screenshot = | caption = | collapsible = | author = Tobias Oetiker | developer = | released = | latest release version = | latest release date = | frequently updated = | programming language = C | operating system = | platform = | size = | language = | status = | genre = | license = GNU General Public License | website = ::figure[src="https://upload.wikimedia.org/wikipedia/commons/7/76/Rrddemo.png" caption="RRDtool has a graph function, which presents data from an RRD in a customizable graphical format."] ::

RRDtool (round-robin database tool) is a data logging and graphing system for time series data. It aims to handle time series data such as network bandwidth, temperatures or CPU load. The data is stored in a circular buffer based database, thus the system storage footprint remains constant over time.

It also includes tools to extract round-robin data in a graphical format, for which it was originally intended. Bindings exist for several programming languages, e.g. Perl, Python, Ruby, Tcl, PHP and Lua. There is an independent full Java implementation called rrd4j.

General data storage

RRDtool assumes time-variable data in intervals of a certain length. This interval, usually named step, is specified upon creation of an RRD file and cannot be changed afterwards. Because data may not always be available at just the right time, RRDtool will automatically interpolate any submitted data to fit its internal time-steps.

The value for a specific step, that has been interpolated, is named a primary data point (PDP). Multiple PDPs may be consolidated according to a consolidation function (CF) to form a consolidated data point (CDP). Typical consolidation functions are average, minimum, maximum.

After the data has been consolidated, the resulting CDP is stored in a round-robin archive (RRA). A round-robin archive stores a fixed number of CDPs and specifies how many PDPs should be consolidated into one CDP and which CF to use. The total time covered by an RRA can be calculated as follows:

: time covered = (#CDPs stored) × (#PDPs per CDP) × (step time length)

After this time the archive will "wrap around": the next insertion will overwrite the oldest entry. This behavior in this context is referred to as "round-robin" and is the reason for the program's name. However this is different from the common computer science definition, which is a method of distributing resources among multiple consumers or processes.

To cover several timespans and/or use several consolidation functions, an RRD file may contain multiple RRAs. The data retrieval function of RRDtool automatically selects the archive with the highest resolution that still covers the requested timespan. This mechanism is also used by RRDtool's graphing subsystem.

Release history

::data[format=table]

ColourMeaning
RedRelease no longer supported
GreenRelease still supported
BlueFuture release
::

The following table contains the release history of RRDtool, showing its major releases.

::data[format=table]

Version numberDateLinksNotable changes1.01.11.31.41.51.61.71.81.9
July 16, 1999Full release notes, AnnounceFirst release. Basically MRTG "done right".
April 25, 2005Full release notes, Announcelibart; output EPS, PDF & SVG; VDEF; trends; percentiles; updatev; Holt-Winters Forecasting; COMPUTE; .rrd format change.
June 11, 2008Full release notes, AnnounceSafer & faster file access; cairo/pango; anti-aliasing; TEXTALIGN; dashed lines; new HWPREDICT; libxml; i18n; XML dump;
October 27, 2009Full release notes, AnnounceCaching daemon; VDEF PERCENTNAN; CDEF PREDICT & PREDICTSIGMA; libDBI; graph legends positioning; Lua bindings; 3D border width; and more ...
April 16, 2015Full release notes, AnnounceUse data from callback functions; Population of new rrd files with data from old ones; .NET bindings
May 9, 2016Full release notes, AnnounceThread Safety
May 17, 2017Full release notesResults of code audit; overhaul of the Python bindings; various other small feature improvements
March 13, 2022Full release notesROUND function for rrd RPN, vcpkg support for MSVC builds, first_weekday for Windows port, x64 platform for win32 build, --add-jsontime for graphv, add --utc to graph, automated testing for win32 builds, support TUNE command in rrdcached
July 29, 2024Full release notesConfigurable locking.
::

Other tools that use RRDtool as a DBMS and/or graphing subsystem

References

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

internet-protocol-based-network-softwarefree-network-management-softwarefree-software-programmed-in-cfree-database-management-systems1999-softwaretime-series-software