Pierre Palatin's corner

Random posts about some stuff I’ve been doing.

Repairing RRD files

Posted at — Apr 26, 2006

Here is a python script to repair rrd databases where some data had been in the future.

If your computer clock is for whatever reason badly setted to a future date, and you add some value to a rrd database, it would drop lot of values, and forbid to add values when you will have corrected the clock. Basically, to reset the lastupdate timestamp to a good value, only genuine value shall be kept - which depends on the datasource parameters - and reinsert unknown value before. Of course, there will be a lot of loss… So, this script need a python interpreter with the ElementTree module. It takes a rrdtool xml dump on stdin and gives the repaired xml version on stdout. Basic workflow :

rrdtool dump yourdb.rrd > dump.xml
cat dump.xml | python rrd_repair.py > repaired.xml
rrdtool restore repaired.xml db.rrd

The chosen new lastupdate will be set to the current date.