# RRDtool

RRDtool ist ein Programm, mit dem zeitbezogene Messdaten gespeichert, zusammengefasst und visualisiert werden können. Das Programm wurde ursprünglich von Tobias Oetiker entwickelt und unter der GNU General Public License (GPL) lizenziert. Durch die Veröffentlichung als freie Software haben inzwischen viele weitere Autoren neue Funktionalität und Fehlerbehebungen beigesteuert. RRDtool ist als Quelltext und als ausführbares Programm für viele Betriebssysteme verfügbar.
Die Abkürzung RRD steht für „Round-Robin-Database“ und bezieht sich auf die Art und Weise, in der Daten von RRDtool gespeichert werden. Beim Anlegen einer Datenbank, einer so genannten „RRD-Datei“, wird genug Speicher für eine angegebene Zeitspanne angelegt. Nach dieser Zeitspanne wird die Datenbank nicht erweitert (die Datei wird nicht vergrößert), sondern die ältesten Daten werden überschrieben. Dieses „Reihum-Verfahren“ wird in der Informatik auch als Ringpuffer bezeichnet.
Die Benutzer-Schnittstelle von RRDtool besteht aus Kommandozeilen-Programmen. Damit RRDtool von anderen Programmen zum Speichern von Daten und Erstellen von Graphen verwendet werden kann, stehen Programmierschnittstellen (APIs) für mehrere Programmiersprachen bereit, unter anderem C und Perl.
Üblicherweise wird RRDtool nicht direkt über die Kommandozeile verwendet, sondern dient anderen Programmen als Datenspeicher bzw. -quelle. Beispiele von FOSS-Programmen, die RRDtool verwenden, sind Cacti, MRTG und Munin. Eine längere Liste von Programmen, die RRDtool verwenden, befindet sich auf der RRDtool-Homepage.

## Round-Robin-Archive

Je nachdem, welche Zeitspanne in einem Graphen gezeigt wird, werden Daten in verschiedenen Auflösungen benötigt. Häufig gibt es ein paar wenige Zeitspannen, die von besonderem Interesse sind, beispielsweise „ein Tag“, „eine Woche“, „ein Monat“ und „ein Jahr“. RRDtool nutzt diesen Umstand aus, um Daten automatisch zu verdichten (zusammenzufassen).
Für jede gewünschte Zeitspanne wird ein „Round-Robin-Archiv“ (RRA) angelegt, das eine feste Anzahl an Datenpunkten aufnehmen kann. Dieser Platz wird dann mit dem Round-Robin-Verfahren gefüllt. Jedes RRA gibt dabei eine Auflösung vor, die (zusammen mit der Anzahl der Datenpunkte) die Zeitspanne festlegt, für die Daten gespeichert werden. Wie mehrere Datenpunkte zusammengefasst werden, legt die „Konsolidierungsfunktion“ (consolidation function, CF) fest. Die am meisten verwendeten Funktionen sind Mittelwert, Minimum und Maximum.

## Verfügbare Versionen

Im November 2015 existierten vier stabile Versionszweige, Version 1.2 mit den Versionsnummern 1.2.* bis Version 1.5 mit den Versionsnummern 1.5.*. Prinzipiell fließen nur noch Fehler-Beseitigungen in die stabilen Versionszweige ein. Gelegentlich gibt es jedoch Ausnahmen von dieser Regel. Vor einiger Zeit rief der Initiator des Projekts zur Ideensammlung für RRDtool 2.x auf.

### Neue Funktionen in Version 1.3

Die folgenden Funktionen bzw. Verbesserungen befinden sich in Version 1.3.
* Beschleunigter Dateizugriff durch die Verwendung von Memory Mapped I/O.
* Verwendung von Cairo und Pango zum Erzeugen von Graphen.
* Alternative Version des Holt-Winters Algorithmus.
* Unterstützung von lokalisierten Hilfe-Meldungen wurde vorbereitet.
Mit Version 1.3 erzeugte RRD-Dateien sind rückwärtskompatibel zu Version 1.2, außer wenn die neue Version des Holt-Winters Algorithmus verwendet wird.