RRDtool
Encyclopedia
RRDtool aims to handle time-series
Time series
In 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 network
Computer network
A 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....
bandwidth
Bandwidth (computing)
In 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,...
, temperature
Temperature
Temperature 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, CPU
Central processing unit
The 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-robin
Round-robin
The 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...
database
Database
A 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 buffer
Circular buffer
A 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 MRTG
Multi Router Traffic Grapher
The 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 software
Free software
Free 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 License
GNU General Public License
The 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 Perl
Perl
Perl 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...
, Python
Python (programming language)
Python 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...
, Ruby
Ruby (programming language)
Ruby 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...
, Tcl
Tcl
Tcl 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...
, PHP
PHP
PHP 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 Java
Java (programming language)
Java 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 : rrd4j
Rrd4j
RRD4J 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 average
Average
In 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
- BackupPCBackupPCBackupPC 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
- CherokeeCherokee (Webserver)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...
- collectdCollectdcollectd 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...
- GangliaGanglia (software)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
- LighttpdLighttpdlighttpd is an open-source web server more optimized for speed-critical environments than common products while remaining standards-compliant, secure and flexible...
- MonitorixMonitorixMonitorix 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
- MuninMunin (Network Monitoring Application)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...
- NagiosNagiosNagios 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....
- NmonNmonnmon 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...
- ntopNtopntop 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...
- ObserviumObserviumObservium 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,...
- OpenNMSOpenNMSOpenNMS 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...
- ZenossZenossZenoss 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,...
- N2rrdN2rrdN2RRD 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...
- ServersCheckServersCheckServersCheck 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 EditorRRD EditorRRD 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:...