RRDtool aims to handle
time-seriesIn statistics, signal processing, econometrics and mathematical finance, a time series is a sequence of data points, measured typically at successive times spaced at uniform time intervals. Examples of time series are the daily closing value of the Dow Jones index or the annual flow volume of the...
data like
networkA computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....
bandwidthIn computer networking and computer science, bandwidth, network bandwidth, data bandwidth, or digital bandwidth is a measure of available or consumed data communication resources expressed in bits/second or multiples of it .Note that in textbooks on wireless communications, modem data transmission,...
,
temperatureTemperature is a physical property of matter that quantitatively expresses the common notions of hot and cold. Objects of low temperature are cold, while various degrees of higher temperatures are referred to as warm or hot...
s,
CPUThe central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
load, etc. The data are stored in a
round-robinThe term round-robin was originally used to describe a document signed by multiple parties in a circle to make it more difficult to determine the order in which it was signed, thus preventing a ringleader from being identified...
databaseA database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...
(
circular bufferA circular buffer, cyclic buffer or ring buffer is a data structure that uses a single, fixed-size buffer as if it were connected end-to-end.This structure lends itself easily to buffering data streams.-Uses:...
), thus the system storage footprint remains constant over time.
It also includes tools to extract
RRD data in a graphical format.
Tobi Oetiker wrote RRDtool as a solution to store and graph the time series data points of his
MRTGThe Multi Router Traffic Grapher, or just simply MRTG, is free software for monitoring and measuring the traffic load on network links. It allows the user to see traffic load on a network over time in graphical form....
and licenses it as
free softwareFree software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
under the terms of the
GNU General Public LicenseThe GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
(GPL).
Bindings exist for
PerlPerl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
,
PythonPython is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
,
RubyRuby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
,
TclTcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own...
,
PHPPHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
and Lua. Two independent full
JavaJava is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
implementations exist :
rrd4jRRD4J is a high performance data logging and graphing system for time series data, implementing RRDTool's functionality in Java. It follows much of the same logic and uses the same data sources, archive types and definitions as RRDTool does....
and jrobin.
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
averageIn mathematics, an average, or central tendency of a data set is a measure of the "middle" value of the data set. Average is one form of central tendency. Not all central tendencies should be considered definitions of average....
, minimum, maximum.
After the data have 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) * steps
After this time the archive will "wrap around": the next insertion will overwrite the oldest entry. This behavior is sometimes referred to as "round-robin" and is the reason for the program's name.
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
| Colour | Meaning |
| Red |
Release no longer supported |
| Green |
Release still supported |
| Blue |
Future release |
RRDTool is sponsored since 1.2, each release comes with a list of sponsors.
The following table contains the
release history of RRDtool, showing its major releases.
| Version number |
Date |
Links |
Notable changes |
| 1.0 |
July 16, 1999 |
Full release notes, Announce |
First release. Basically MRTG "done right". |
| 1.1 |
April 25, 2005 |
Full release notes, Announce |
libart; output EPS, PDF & SVG; VDEF; trends; percentiles; updatev; Holt-Winters Forecasting; COMPUTE; .rrd format change. |
| 1.3 |
June 11, 2008 |
Full release notes, Announce |
Safer & faster file access; cairo/pango; anti-aliasing; TEXTALIGN; dashed lines; new HWPREDICT; libxml; i18n; XML dump; |
| 1.4 |
October 27, 2009 |
Full release notes, Announce |
Caching daemon; VDEF PERCENTNAN; CDEF PREDICT & PREDICTSIGMA; libDBI; graph legends positioning; Lua bindings; 3D border width; and more ... |
Other tools that use RRDtool as a DBMS and/or graphing subsystem
- BackupPC
BackupPC is a free Disk-to-disk backup software suite with a web-based frontend. The cross-platform server will run on any Linux, Solaris, or UNIX based server. No client is necessary, as the server is itself a client for several protocols that are handled by other services native to the client OS...
- Cacti
- Cherokee
Cherokee is an open-source Cross-platform Web server that runs on Linux, BSD variants, Solaris, Mac OS X, and Microsoft Windows. It is a lightweight, high-performance Web Server/reverse proxy licensed under the GNU General Public License. Its goal is to be fast and fully functional yet still light...
- collectd
collectd is a UNIX-daemon which collects, transfers and stores performance data of computers and network equipment. The acquired data is meant to help system administrators maintain an overview over available resources in order to detect existing or looming bottlenecks.The first version of the...
- Ganglia
Ganglia is a scalable distributed system monitor tool for high-performance computing systems such as clusters and grids. It allows the user to remotely view live or historical statistics for all machines that are being monitored.-Ganglia:It is based on a hierarchical design targeted at...
- Iptotal
- Lighttpd
lighttpd is an open-source web server more optimized for speed-critical environments than common products while remaining standards-compliant, secure and flexible...
- Monitorix
Monitorix is a network/system monitoring tool that collects periodically system data and uses the web interface to show the information in form of graphs...
- MRTG
- Munin
Munin is a network/system monitoring application that presents output in graphs through a web interface. Its emphasis is on plug and play capabilities. About 500 monitoring plugins are currently available. Using Munin you can monitor the performance of your computers, networks, SANs, and...
- Nagios
Nagios is a popular open source computer system and network monitoring software application. It watches hosts and services, alerting users when things go wrong and again when they get better....
- Nmon
nmon is a popular system monitor tool for the AIX and Linux operating systems.- Description :The original nmon was a freely downloadable tool for AIX 4.3 from the AIX wiki. It was also rewritten for the Linux operating system running on IA-32, x86-64, RS/6000 and Power processor and Mainframe and...
- ntop
ntop is a network probe that shows network usage in a way similar to what top does for processes. In interactive mode, it displays the network status on the user's terminal. In Web mode, it acts as a web server, creating a HTML dump of the network status...
- Observium
Observium is a PHP/MySQL-based Network Observation and Monitoring System which collects data from devices using SNMP and presents it via a web interface. It makes heavy use of the RRDtool package. Observium has a number of simple core design goals driving its development: minimum interaction,...
- OpenNMS
OpenNMS is an enterprise grade network monitoring and network management platform developed under the free software or open source model. It consists of a community supported, free software project as well as a corporation, The OpenNMS Group, offering commercial services, training and support.The...
- Zenoss
Zenoss is an open source application, server and network management platform based on the Zope application server. Released under the GNU General Public License version 2, Zenoss Core provides a web interface that allows system administrators to monitor availability, inventory/configuration,...
- N2rrd
N2RRD is a Nagios add-on tool, which stores performance data generated by Nagios plugins into a Round-Robin-Database . The package also includes the display tool rrd2graph to view data stored in an RRD database.Optionally data stored by N2RRD can also be viewed by any RRD database graph frontend e.g...
- ServersCheck
ServersCheck is a Belgian based and privately owned technology company founded in 2003.It is most known in the Network Administrator community for its software program monitoring the availability and performance of servers and other networked devices...
External links
- RRD Editor
RRD Editor is a GUI based application that provides access to archived RRDtoolRRDtool is a data logging and graphing database by Swiss software developer Tobi Oetiker. data.-Features:...