This is a discussion on Re: [rrd-users] RRDs::tune zeroing values within the RRD Users forums, part of the Networking and Network Related category; Hi William, the reason for this behaviour is, that when you reset the DS-type, rrdtool will also reset the ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Hi William,
the reason for this behaviour is, that when you reset the DS-type, rrdtool will also reset the last_ds value which prevents it from doing building the difference between the current and the last counter value ... the following patch makes rrdtune NOT do this unless the data-source-type is actually changed. Index: src/rrd_tune.c ================================================== ================= --- src/rrd_tune.c (revision 1323) +++ src/rrd_tune.c (working copy) @@ -197,15 +197,17 @@ rrd_close(rrd_file); return -1; } - strncpy(rrd.ds_def[ds].dst, dst, DST_SIZE - 1); - rrd.ds_def[ds].dst[DST_SIZE - 1] = '\0'; + /* only reset when something is changed */ + if (strncmp(rrd.ds_def[ds].dst, dst, DST_SIZE - 1) != 0) { + strncpy(rrd.ds_def[ds].dst, dst, DST_SIZE - 1); + rrd.ds_def[ds].dst[DST_SIZE - 1] = '\0'; - rrd.pdp_prep[ds].last_ds[0] = 'U'; - rrd.pdp_prep[ds].last_ds[1] = 'N'; - rrd.pdp_prep[ds].last_ds[2] = 'K'; - rrd.pdp_prep[ds].last_ds[3] = 'N'; - rrd.pdp_prep[ds].last_ds[4] = '\0'; - + rrd.pdp_prep[ds].last_ds[0] = 'U'; + rrd.pdp_prep[ds].last_ds[1] = 'N'; + rrd.pdp_prep[ds].last_ds[2] = 'K'; + rrd.pdp_prep[ds].last_ds[3] = 'N'; + rrd.pdp_prep[ds].last_ds[4] = '\0'; + } break; case 'r': if ((matches = cheers tobi Yesterday William Cassis wrote: > Hello, > > I'm running MRTG on Fedora Core 8 with RRDTool and am having problems > with MRTG updating rrd files with correct values. > > MRTG version 2.15.1 (package 2.15.1-6.fc8) > RRDTool says it's version 1.2.99907080300 when I run rrdtool --help, but > the package is 1.3-0.6.beta3.fc8. > > When MRTG runs, it seems that the 'tune' step is zeroing out the most > recent values in the rrd files. Commenting out the section of the MRTG > perl executable that calls the RRDs::tune command has temporarily fixed > things, but that's probably not a good long-term fix ;). > > Here's a snippet from my mrtg config file: > > ******** > ### Interface 11 >> Descr: 'FastEthernet0/10' | Name: 'Fa0/10' | Ip: '' > | Eth: '00-03-e3-36-20-0a' ### > > Target[FastEthernet0_10]: \FastEthernet0/10:mrtg@office-sw01:::::2 > SetEnv[FastEthernet0_10]: MRTG_INT_IP="" > MRTG_INT_DESCR="FastEthernet0/10" > MaxBytes[FastEthernet0_10]: 12500000 > Title[FastEthernet0_10]: Traffic Analysis for FastEthernet0/10 -- > office-sw01 > PageTop[FastEthernet0_10]: <h1>Traffic Analysis for FastEthernet0/10 -- > office-sw01</h1> > <div id="sysdetails"> > <table> > <tr> > <td>System:</td> > <td>office-sw01</td> > </tr> > <tr> > <td>Description:</td> > <td>FastEthernet0/10 Test </td> > </tr> > <tr> > <td>ifType:</td> > <td>ethernetCsmacd</td> > </tr> > <tr> > <td>Max Speed:</td> > <td>100.0 Mbits/s</td> > </tr> > </table> > </div> > > ******** > > When I run MRTG with --debug="log", I get output that looks like this: > > Creating the rrd: > --log: RRDs::create(/usr/local/mrtg/office-sw01/fastethernet0_10.rrd -b > 1208374325 -s 300 DS:ds0:COUNTER:600:0:12500000 > DS:ds1:COUNTER:600:0:12500000 RRA:AVERAGE:0.5:1:800 > RRA:AVERAGE:0.5:6:800 RRA:AVERAGE:0.5:24:800 RRA:AVERAGE:0.5:288:800 > RRA:MAX:0.5:1:800 RRA:MAX:0.5:6:800 RRA:MAX:0.5:24:800 > RRA:MAX:0.5:288:800) > --log: RRDs::update(/usr/local/mrtg/office-sw01/fastethernet0_10.rrd, > '1208374335:172812857:450899955') > --log: got: ???/??? > > Updating the rrd with values: > --log: RRDs::tune(/usr/local/mrtg/office-sw01/fastethernet0_10.rrd -a > ds0:12500000 -a ds1:12500000 -d ds0:COUNTER -d ds1:COUNTER) > --log: RRDs::update(/usr/local/mrtg/office-sw01/fastethernet0_10.rrd, > '1208377525:186981022:466737759') > --log: got: ???/??? > > However, the rrd records 'NaN' values for that interval: > <!-- 2008-04-16 13:20:00 PDT / 1208377200 --> <row><v> NaN </v><v> NaN > </v></row> > <!-- 2008-04-16 13:25:00 PDT / 1208377500 --> <row><v> NaN </v><v> NaN > </v></row> > <!-- 2008-04-16 13:30:00 PDT / 1208377800 --> <row><v> NaN </v><v> NaN > </v></row> > > After commenting out 'RRDs::tune(@args);' in the mrtg executable, the > rrds are updating with correct values. > > I figured that this might be par for the course since I'm running a beta > version of rrdtool, but unfortunately yum doesn't give me an option to > install a stable version of rrdtool and I have quite a few other > packages that are dependencies on the version of rrdtool that the system > has installed. > > Is this a known bug? > > Any help is appreciated! > > Thanks, > Will Cassis > > _______________________________________________ > rrd-users mailing list > rrd-users@lists.oetiker.ch > https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users > > -- Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten http://it.oetiker.ch tobi@oetiker.ch ++41 62 213 9902 _______________________________________________ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users |
![]() |
| Thread Tools | |
| Display Modes | |
|
|