[rrd-users] graph from mysql
Martin Sperl
rrdtool at martin.sperl.org
Thu May 16 17:40:13 CEST 2013
/derive does essentially take the "difference" of 2 consecutive "bins" - say 5 minute intervals - and if the value is way off (>2^31) , then it assumes it is a wraparound and "corrects" for that.
as for SNMP V2: you need to use a different OID to get the corresponding 64 bit values - really: look on the internet to get those OID numbers in question.
(a quick look shows: snmpget -v 2c -c public 14.32.5.18 ifHCInOctets.1 could do the trick for you - maybe you need to modify it for your needs)
Martin
On 15.05.2013, at 17:34, Shabbir Ahmed wrote:
> thanks for your email, before ur msg i tried my self /derive and the graphs are normal. kindly look at attachment.
>
> actually i fetch data from switches and i have tried option -v 2c but the result is same, 32 bit counter. can u explain it to me wat derive does and i dont have to worry about other thigns like calculating data etc my self, if you dont mind.
>
> can u also look at my graph generating cmd to verify if im not doing any thing wrong,
>
> rrdtool graph test.png --imgformat=PNG --start=-2day --end=-1day -S=300 "DEF:up=$UP:min:AVERAGE" "DEF:down=$DOWN:min:AVERAGE" AREA:down#2ECCFA:"Out traffic" AREA:up#013ADF:"Download" --vertical-label=bytes/sec --title="ADSL bandwidth graphs" GPRINT:up:LAST:"Current\:%8.2lf %s\n" GPRINT:up:AVERAGE:"Average\:%8.2lf %s\n" GPRINT:up:MAX:"Maximum\:%8.2lf %s\n" --font TITLE:12: --font AXIS:8: --font LEGEND:10: --font UNIT:8: AREA:up#013ADF:"In traffic"
>
>
> I am sorry if im teasing you,
> Shabbir.
>
>
> On Wed, May 15, 2013 at 7:36 PM, Martin Sperl <rrdtool at martin.sperl.org> wrote:
> so you are using the 32bit counter.
>
> Then if you insert into the database, you:
> either have to do the "wraparound" logic yourself prior to inserting the values
> or you insert the "absolute" counter values and use /derive (as explained before)
> if you use the rrd flatfile database via rrdcreate and update, then (depending on the definition of the rrd-file) rrd will try to do the "overflow" detection...
>
> Martin
>
> P.s: the 64bit counter are typically only available if you use snmp V2C - google for "64 bit counter SNMP" and you should find enough information on how to use it.
>
>
> On 15.05.2013, at 10:07, Shabbir Ahmed wrote:
>
>> quering the device snmpbulkget -c public 119.156.203.217 .1.3.6.1.2.1.2.2.1.10 -v 2c
>> returns 32bit integers
>> IF-MIB::ifInOctets.20971520 = Counter32: 0
>> IF-MIB::ifInOctets.20972032 = Counter32: 0
>> IF-MIB::ifInOctets.20972544 = Counter32: 1295822366
>> IF-MIB::ifInOctets.20973056 = Counter32: 1295822366
>> IF-MIB::ifInOctets.20973568 = Counter32: 1295822366
>> IF-MIB::ifInOctets.20974080 = Counter32: 1295822366
>>
>>
>> 2nd question is most of the values are always same is it the reason port is down?
>>
>> 3rd question what if counter reaches its up limit and starts from 0 again, how rrd tool manages it? or should we have to manage our self?
>>
>> kindly help further with this issue.
>>
>> thanks,
>>
>>
>> On Wed, May 15, 2013 at 11:53 AM, Martin Sperl <rrdtool at martin.sperl.org> wrote:
>> Seems as if you are having "integer overflow" issues reading the 32bit SNMP values (or when calculating the delta of the counters in your program).
>>
>> These rollovers is something your application will need to figure out prior to inserting into the database - either by detecting a "rollover" (the "rrdtool update" command for rrd files - not used with the dbi backend - has a provision for that) or by querying the 64bit values on the router instead and then inserting those values. Alternatively the dbi backend can also "try" to do the calculations for you on the fly if you insert the absolute counter values - see the man-page for details of which option to use... (/derive after the data column)
>>
>> Martin
>>
>>
>>
>> On 14.05.2013, at 20:03, Shabbir Ahmed wrote:
>>
>>> yes i used, this time i made graphs for my dsl router at home and they are doing better, but the connection is 4mb and the graph shows 1.5G, i hv checked database has large values, but these are ported from device, what i do i need to do now devid the values on something to get the desired value?
>>>
>>>
>>>
>>>
>>> On Tue, May 14, 2013 at 12:31 AM, Martin Sperl <rrdtool at martin.sperl.org> wrote:
>>> Did you try the /rrdfillmissing=1/ as mentioned below as a workaround for your "missing" data?
>>>
>>> Martin
>>>
>>>
>>>
>>> On 13.05.2013, at 18:27, Shabbir Ahmed wrote:
>>>
>>>> some time when i query for snmp the get times out so i cant fill in the table at that time, to fix this wat should i do ?
>>>>
>>>> 12:00 i queried db response recorded into mysql
>>>> 12:05 i queried but snmp get timeout, no entry into mysql
>>>> 12:06 i queried and got the response into mysql.
>>>>
>>>>
>>>>
>>>>
>>>> On Mon, May 13, 2013 at 11:36 AM, Martin Sperl <rrdtool at martin.sperl.org> wrote:
>>>> Hi!
>>>>
>>>> One observation: actually you should see 4 lines not 2 or 1.
>>>>
>>>> The other is that your data is possibly not stored "equidistant", so that there are slight "gaps" of say 302 seconds between consecutive datapoints, which would mean that you are producing times like this: 0,302,603,...,3298,3601,... (so there would be a gap at time 3300 to 3599)
>>>>
>>>> For debugging purposes: can you please run rrdtool like this:
>>>> RRDDEBUGSQL=1 rrdtool graph test.png --imgformat=PNG --start=-1day --width=600 --height=80 -S=300 "DEF:min=$UP:min:AVERAGE" "LINE1:min#336600:value"
>>>>
>>>> Then you will see the SQL that gets executed and then you can run the SQL on your own to understand how this "gaps" are generated from the database...
>>>>
>>>> But there is also an option to "fill in" "missing" gaps in rrd via the "/rrdfillmissing=" option. The idea here is similar to the "xff" argument to rrdcreate for the RRA definition.
>>>>
>>>> So you may try to add it to your DEF like this: UP="sql//mysql/host=127.0.0.1/dbname=newdsl/username=root/password=nocb4enter/rrdfillmissing=1//g3412306061/time/up/idx=201409600"
>>>>
>>>> Ciao,
>>>> Martin
>>>>
>>>> On 12.05.2013, at 15:05, Shabbir Ahmed wrote:
>>>>
>>>>> Hi, i collect data from switches and save them into mysql, (snmpidx,time,up,down)
>>>>>
>>>>> now i want to draw graphs using
>>>>>
>>>>> DOWN="sql//mysql/host=127.0.0.1/dbname=newdsl/username=root/password=nocb4enter//g3412306061/time/down/idx=201343232"
>>>>> UP="sql//mysql/host=127.0.0.1/dbname=newdsl/username=root/password=nocb4enter//g3412306061/time/up/idx=201409600"
>>>>>
>>>>> rrdtool graph test.png --imgformat=PNG --start=-1day --width=600 --height=80 -S=300 "DEF:min=$UP:min:AVERAGE" "LINE1:min#336600:value" "DEF:avg=$UP:avg:AVERAGE" "LINE1:avg#00FF11:average" "DEF:max=$UP:max:AVERAGE" "LINE1:max#FF0000:max" "DEF:dw=$DOWN:min:AVERAGE" "LINE1:dw#0033CC:value"
>>>>>
>>>>> 1. the graphs drawn has gaps (i collect data every five mins) and draw them with 5 mins step but still the gape bw two occurences are empty.
>>>>>
>>>>> 2. it doesnt draw two lines.
>>>>>
>>>>> Kindly help,
>>>>>
>>>>> _______________________________________________
>>>>> rrd-users mailing list
>>>>> rrd-users at lists.oetiker.ch
>>>>> https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
>>>>
>>>>
>>>
>>>
>>> <test.png>
>>
>>
>
>
> <test.png>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.oetiker.ch/pipermail/rrd-users/attachments/20130516/b74cf332/attachment-0001.htm
More information about the rrd-users
mailing list