<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Webdings;
        panose-1:5 3 1 2 1 5 9 6 7 3;}
@font-face
        {font-family:"Arial Narrow";
        panose-1:2 11 6 6 2 2 2 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-NZ link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>The Data Normalisation of RRDTool has some great reasons for its existence. However, some times, we want to avoid it because it makes for counter-intuitive graphs (even if they may be technically more accurate).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I suggest adding a new option, ‘adjtime’, which will cause all data samples to be pushed back in time to the previous interval boundary, thus making Data Normalisation a null operation.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This is easy to do! Simply add 3 lines to mrtg and you’re there (around line 467) :<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> debug('base', "Create Graphics");<o:p></o:p></p><p class=MsoNormal>+ if( $router->{ options }{ adjtime } ) {<o:p></o:p></p><p class=MsoNormal>+ $time -= ($time % $cfg{interval} )<o:p></o:p></p><p class=MsoNormal>+ }<o:p></o:p></p><p class=MsoNormal> if ($rcfg{'options'}{'dorelpercent'}{$router}) {<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>You also need to add ‘adjtime’ to the @known_options array in the cfgcheck() function in MRTG_lib.pm .<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> my(@known_options) = qw(growright bits noinfo absolute gauge nopercent avgpeak derive<o:p></o:p></p><p class=MsoNormal> integer perhour perminute transparent dorelpercent<o:p></o:p></p><p class=MsoNormal> unknaszero withzeroes noborder noarrow noi noo<o:p></o:p></p><p class=MsoNormal>- nobanner nolegend logscale secondmean pngdate printrouter expscale);<o:p></o:p></p><p class=MsoNormal>+ nobanner nolegend logscale secondmean pngdate printrouter expscale adjtime);<o:p></o:p></p><p class=MsoNormal><br>Now there are obvious downsides to this, not least that your data may be pushed back in time almost 5 minutes and result in inaccurate graphs. Multiple updates in a single interval would be rejected, and the potential for missing an interval entirely would increase (but the heartbeat could be raised to 610 to cope with the latter). However, anyone choosing to use the ‘adjtime’ option would do so at their own risk. The benefits would be that MRTG users could finally ensure that retrieved values would definitely be stored as-is, which helps when the variable is a low-valued integer Gauge.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thoughts?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Steve<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div class=MsoNormal align=center style='text-align:center'><span lang=EN-US><hr size=2 width="100%" align=center></span></div><p class=MsoNormal><b>Steve Shipway<o:p></o:p></b></p><p class=MsoNormal><span style='font-size:10.0pt'>ITS Unix Services Design Lead<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt'>University of Auckland, New Zealand<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt'>Floor 1, 58 Symonds Street, Auckland<o:p></o:p></span></p><p class=MsoNormal><i><span style='font-size:10.0pt;color:#595959'>Phone: +64 (0)9 3737599 ext 86487<o:p></o:p></span></i></p><p class=MsoNormal><i><span style='font-size:10.0pt;color:#595959'>DDI: +64 (0)9 924 6487<o:p></o:p></span></i></p><p class=MsoNormal><i><span style='font-size:10.0pt;color:#595959'>Mobile: +64 (0)21 753 189<o:p></o:p></span></i></p><p class=MsoNormal><i><span style='font-size:10.0pt;color:#595959'>Email: <a href="mailto:s.shipway@auckland.ac.nz"><span style='color:#595959'>s.shipway@auckland.ac.nz</span></a><o:p></o:p></span></i></p><p class=MsoNormal><span lang=EN-GB style='font-size:18.0pt;font-family:Webdings;color:green'>P</span><span lang=EN-GB style='color:blue'> </span><span lang=EN-GB style='font-size:10.0pt;font-family:"Arial Narrow","sans-serif";color:green'>Please consider the environment before printing this e-mail</span><span lang=EN-GB style='color:blue'> </span><span lang=EN-GB style='font-size:7.5pt;font-family:"Verdana","sans-serif";color:navy'><o:p></o:p></span></p><p class=MsoNormal><i><span style='font-size:10.0pt'><o:p> </o:p></span></i></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>