Getting human reading time info from RRD files
You have a .rrd file but you don’t remember how much time RRAs can store data ? all right, no problem.
First save this Perl code into a .pl file.
$step = $1 if (m/step = (\d+)/);
$rows = $1 if (m/rra.*\.rows = (\d+)/);
if (m/(.*)\.pdp_per_row = (\d+)/) {
$pdp = $2; $time = $step*$rows*$pdp;
if ($time > 31536000) { $time = sprintf("%.2f year",$time/31536000) }
elsif ($time > 86400) { $time = sprintf("%.2f days",$time/86400) }
elsif ($time > 3600) { $time = sprintf("%.2f hours",$time/3600) }
print "$1: $step*$rows*$pdp = $time\n";
}
Assuming the filename of the script is rrd_info.pl, run this Shell command:
rrdtool info file.rrd | perl -n rrd_info.pl
Here is an output example:
rra[0]: 300*864*1 = 3.00 days rra[1]: 300*864*5 = 15.00 days rra[2]: 300*702*25 = 60.94 days rra[3]: 300*840*125 = 364.58 days rra[4]: 300*840*625 = 4.99 year rra[5]: 300*864*1 = 3.00 days rra[6]: 300*864*5 = 15.00 days rra[7]: 300*702*25 = 60.94 days rra[8]: 300*840*125 = 364.58 days rra[9]: 300*840*625 = 4.99 year rra[10]: 300*864*1 = 3.00 days rra[11]: 300*864*5 = 15.00 days rra[12]: 300*702*25 = 60.94 days rra[13]: 300*840*125 = 364.58 days rra[14]: 300*840*625 = 4.99 year
The formula is update step time * numbers of rows in the rra * pdp_per_row
Recent Comments