This is a discussion on Re: [rrd-users] DERIVE vs COUNTER within the RRD Users forums, part of the Networking and Network Related category; On Sat, Mar 22, 2008 at 01:49:16AM +1100, Jean-Yves Avenard wrote: > Hi. > > I want ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
On Sat, Mar 22, 2008 at 01:49:16AM +1100, Jean-Yves Avenard wrote:
> Hi. > > I want to measure the amount of traffic going through my ADSL link. > > The data will be fetched using snmp every minute. > > One issue is that the snmp server on my ADSL modem only supports 32 > bits counter. So it is possible for the counter to reset due to an > overflow. That's no reset. Don't think of it that way, it will just confuse you. > Another issue is that if there's a connection drop-out (and this can > happen several times a day on my DSL connection) the modem when it > re-establishes the connection reset the counter I am reading. This should be detectable. A suggestion follows below. > In the past I used mrtg for measuring the bandwidth. Unfortunately, > often after a reset of the counter that wasn't due to an overflow, > mrtg recorded the value as if an overflow did happen and it would mess > up my graphs and the scale used (the remaining of the traffic would > look like a flat line close to 0). > > My DSL modem is syncing at 12mbit/s, so an overflow can not happen > within a 1 or even 5 minutes interval. And, perhaps more important, the rate computed cannot be more than 12mbps. Use this knowledge, that's why rrdtool know about a minimum and maximum rate. But use this only as a safe-guard to detect the most obvious problems. It won't detect a reset which happens when the counter was at 2^32-${small value}. > The RRD documentation describes the difference between the type > COUNTER and DERIVE. > > Which type of data should I use when using rrdtool create? Using DERIVE, together with a minimum rate of zero, is a trick to ignore *any* counter value which is lower than the previous one. So, the question you need to ask yourself is: do you want to take a few shortcuts at the expense of loosing a little bit of information. If yes: go for derive + minimum_rate==0 If no: go for counter, and detect resets > is there a way for rrd to always determine if a reset is a due to a > reset of the modem or due to an overflow? No, not in rrdtool. That is a front-end responsibility. As a start: you can probably find uptime in snmp. If this is lower than the previous time assume a reset has happened. Update with "U" at time "$time-1" Update with the current counter value at time "$time" Or, if you want: find out how long the device is running since the reset -> boottime Update with "U" at time "$boottime-1" Update with zero at time "$boottime" Update with the current counter value at time "$currenttime" In either case, your front-end (the script calling rrdtool) should keep track of that uptime variable. Either keep a daemon running, or fetch and store the uptime each time your script runs. HTH -- Alex van den Bogaerdt http://www.vandenbogaerdt.nl/rrdtool/ _______________________________________________ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users |