RRDtool

RRDtool – zestaw narzędzi do obsługi cyklicznych baz danych (ang. Round Robin Database).

Autorem programu jest Tobias Oetiker. Program przechowuje dane w bazach danych o rozszerzeniu RRD. Ich cechą jest to, że od momentu stworzenia takiej bazy posiada ona stałą wielkość (zadeklarowaną w momencie kreacji) co zawdzięcza tzw. funkcjom konsolidującym. Funkcje te traktują pewien zbiór danych dostarczanych do bazy w pewnym ściśle określonym odcinku czasu jako jedną daną przetwarzając według zadanego schematu dane wejściowe. Możliwe schematy przetwarzania danych to zwykłe funkcje:

  • MIN - wybiera wartość minimalną ze zbioru danych wejściowych,
  • MAX - wybiera wartość maksymalną ze zbioru danych wejściowych,
  • AVG - uśrednia dane wejściowe.

Dodatkową cechą tego rodzaju baz jest możliwość tworzenia tzw. archiwów, w których zbierane są dane z funkcji konsolidujących. Można tworzyć archiwa dotyczące określonej długości okresu, np. dnia, tygodnia, miesiąca, itp.

Zaleta jaką stanowi stały rozmiar bazy jest jednocześnie jej drobnym minusem. Zadana wielkość powoduje bowiem utratę szczegółowości danych. Np. określimy wielkość bazy na 1000 rekordów. Gdy do bazy nadejdzie dana, która będzie musiała być rekordem 1001, uruchamiana jest funkcja konsolidująca pakująca dane z zadanych odcinków czasu w pojedynczych rekordach i pozwalająca tym samym dopisać daną do bazy. W ten sposób traci się pewną część danych. Dodatkowo tworzone na podstawie takich baz wykresy nie pozwalają zaglądać w dane wstecz, co przy pewnych projektach niestety nie jest dobrym rozwiązaniem.

Program udostępniany jest na licencji GNU GPL i działa w systemach Linux, Windows, Solaris i AIX. Jest on uznawany za faktyczny standard programów obsługi cyklicznych baz danych.

Linki zewnętrzne