<br><font size=2 face="Arial">Hi,</font>
<br>
<br><font size=2 face="Arial">Does anyone knows why, when converting MRTG
logs to RRD, data are stored as integer???</font>
<br>
<br><font size=2 face="Arial">(extract from MRTG_lib.pm. See last line)</font>
<br>
<br><font size=2 face="Arial">while(&lt;R&gt;){</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; chomp;</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; ($next_time,$next{in},$next{out},$next{maxin},$next{maxout})
=</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
split /\s+/;</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; foreach my $s
(@steps) {</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
# bail if we have enough entries</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
next if ref $store{in}{$s} and</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; scalar @{$store{in}{$s}} &gt; $sizes{$s};</font>
<br>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
# ok we are still here. If next mark is before the next time</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
# we take a short step, else we gobble up</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
my $next_stop;</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
do {</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; if ($elapsed_time{$s} + $time - $next_time &gt; $s) {</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; $next_stop = $mark{$s}-$s;</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; } else {</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; $next_stop = $next_time;</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; }</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; my $time_diff = $time-$next_stop;</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; foreach my $d (qw(in out)) {</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; $rate{$d}{$s} = ($rate{$d}{$s} * $elapsed_time{$s}</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;+ $cur{$d} * $time_diff) /</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;($elapsed_time{$s}
+ $time_diff);</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; }</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; foreach my $d (qw(maxin maxout)){</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; $rate{$d}{$s} = $cur{$d} if $rate{$d}{$s} &lt;
$cur{$d};</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; }</font>
<br>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; $elapsed_time{$s} += $time_diff;</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; if ($next_stop == $mark{$s}-$s) {</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;foreach my $t (qw(in out maxin maxout)){</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$rate{$t}{$s}/=3600</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (defined $$rcfg{'options'}{'perhour'}{$router});</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$rate{$t}{$s}/=60</font>
<br><font size=2 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (defined $$rcfg{'options'}{'perminute'}{$router});</font>
<br><font size=2 face="Arial">it's here ---&gt; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; push @{$store{$t}{$s}},
int($rate{$t}{$s});</font>
<br>
<br><font size=2 face="Arial">I'm asking this because I'm monitoring a
counter that increases by less than 1unit per second :-) (number of emails
per second sent/received on a server).</font>
<br>
<br><font size=2 face="Arial">With the &quot;perhour&quot; option in MRTG's
config, the graph was still nice. But, when 0 is stored in the RRD I can't
do anything anymore :-/</font>
<br>
<br><font size=2 face="Arial">I'm thinking about just removing this casting
but I wonder if there's some design/implementation issue that I don't understand...</font>
<br>
<br><font size=2 face="Arial">So, does anyone knows?</font>
<br>
<br><font size=2 face="Arial">Best regards,</font>
<br>
<br><font size=2 face="Arial">Cyrille</font>
<br>
<br><font size=2 face="Arial">(I know I should post this on the mrtg mailing-list.
I'm in the process of (re-) subscribing to that list but I can't help asking.
Sorry :-) )</font>
<br>
<br>