1. Introduction 1.1. Project/Component Working Name: RRDTool 1.2. Name of Document Author/Supplier: Stephen Browne 1.3. Date of This Document: 02/15/08 1.3.1. Date this project was conceived: 1999 - community inception 2/2008 - Sun inception 1.4. Name of Major Document Customer(s)/Consumer(s): 1.4.1. The PAC or CPT you expect to review your project: Solaris PAC 1.4.2. The ARC(s) you expect to review your project: LSARC 1.4.3. The Director/VP who is "Sponsoring" this project: robert.odea@sun.com 1.4.4. The name of your business unit: OPG / OpenSource. 1.5. Email Aliases: 1.5.1. Responsible Manager: leo.binchy@sun.com 1.5.2. Responsible Engineer: stephen.browne@sun.com 1.5.3. Marketing Manager: dan.roberts@sun.com 1.5.4. Interest List: desktop-discuss@opensolaris.org 4. Technical Description: 4.1. Details: It is pretty easy to gather status information from all sorts of things, ranging from the temperature in your office to the number of octets which have passed through the FDDI interface of your router. But it is not so trivial to store this data in an efficient and systematic manner. This is where RRDtool comes in handy. It lets you log and analyze the data you gather from all kinds of data-sources. The data analysis part of RRDtool is based on the ability to quickly generate graphical representations of the data values collected over a definable time period. So RRDtool is a database but there are distinct differences between RRDtool databases and other databases as listed below: * RRDtool stores data; that makes it a back-end tool. The RRDtool command set allows the creation of graphs; that makes it a front-end tool as well. Other databases just store data and can not create graphs. * In case of linear databases, new data gets appended at the bottom of the database table. Thus its size keeps on increasing, whereas the size of an RRDtool database is determined at creation time. Imagine an RRDtool database as the perimeter of a circle. Data is added along the perimeter. When new data reaches the starting point, it overwrites existing data. This way, the size of an RRDtool database always remains constant. The name "Round Robin" stems from this behavior. * Other databases store the values as supplied. RRDtool can be configured to calculate the rate of change from the previous to the current value and store this information instead. * Other databases get updated when values are supplied. The RRDtool database is structured in such a way that it needs data at predefined time intervals. If it does not get a new value during the interval, it stores an UNKNOWN value for that interval. So, when using the RRDtool database, it is imperative to use scripts that run at regular intervals to ensure a constant data flow to update the RRDtool database. RRDtool is designed to store time series of data. With every data update, an associated time stamp is stored. Time is always expressed in seconds passed since epoch (01-01-1970). It comes with a command set to carry out various operations on RRD databases. The version being integrated is 1.2.19 4.2. Bug/RFE Number(s): None. 4.3. In Scope: See above. 4.4. Out of Scope: See above. 4.5. Interfaces: -------------------------------------------------------------------- Exported Stability Comments -------------------------------------------------------------------- rrdtool Uncommitted main binary with many create subcommand subcommands/functions dump subcommand documented in rrd*.1 fetch subcommand manpages, installed graph subcommand in /usr/bin, note the info subcommand subcommands are internal last subcommand to rrdtool (i.e., no lastupdate subcommand additional bits installed). resize subcommand restore subcommand tune subcommand xport subcommand rrdcgi Uncommitted web cgi script interpreter parsing for tags documented in rrdcgi.1 man page, installed in /usr/bin rrdupdate Uncommitted convenience binary for rrdtool update, installed in /usr/bin librrd.so.2.0.9 Uncommitted lib implementation of RRD, installed in /usr/lib librrd.so Uncommitted Link target=librrd.so.2.0.9 librrd.so.2 Uncommitted Link target=librrd.so.2.0.9 librrd_th.so.2.0.8 Uncommitted Thread safe API for above, installed in /usr/lib librrd_th.so Uncommitted Link target=librrd_th.so.2.0.8 librrd_th.so.2 Uncommitted Link target=librrd_th.so.2.0.8 tclrrd1.2.19.so Uncommitted TCL bindings for RRD, installed in /usr/lib rrd.h Uncommitted header file, installed in /usr/include SUNWrrdtool Uncommitted SVr4 Package -------------------------------------------------------------------- Imported Stability Comments -------------------------------------------------------------------- /usr/lib/libpng12.so.0 Uncommitted LSARC/2003/085 /usr/lib/libz.so.1 Committed PSARC/2006/537 /usr/lib/libart_lgpl_2.so.2 Volatile LSARC/2006/202 /usr/sfw/lib/libfreetype.so.6 Volatile LSARC/2002/291 /usr/sfw/lib/libgcc_s.so.1 Volatile PSARC/2004/742 4.6. Doc Impact: Man pages are provided that both detail the rrdtool functions and provide tutorials for their use. 4.7. Admin/Config Impact: None. 4.8. HA Impact: None. 4.9. I18N/L10N Impact: The JDS team and the G11N are working together to evaluation and provide I18N/L10N support 4.10. Packaging & Delivery: Adds new package, SUNWrrdtool, approx 2.2 MB. Package will go into SUNWCall, SUNWCXall and SUNWCprog clusters. 4.11. Security Impact: None. 4.12. Dependencies: None. 5. Reference Documents: http://oss.oetiker.ch/rrdtool/