[SNMP4J] Statistics about number of retries and snmp request times

MichaƂ Steiner mist at mist.pl
Wed Jan 27 12:26:44 CET 2016


Hi Frank

Thanks for all those changes. It looks  promising

My remarks:


snmp4jStatsRequestWaitTime - it's a total number so if  there were retries
then it will be a sum of all response times (+ some overhead) . Having only
this I cannot say how long I waited for last single  successful  request.
It could  be more or less calculated using   timeout, max retries and
TimeoutModel logic, but it is complicated and requires knowledge of
timeoutmodel. I'm not saying it is not useful data, but it would be great
if I have also more detailed information.  This information is there, it is
only question how to publish it.  Maybe it would be possible to use
currentValue fleid on  CounterEvent  ?  snmp4jStatsRequestWaitTime event
could have total time of request on currentValue, and time of last
successful request on increment field ?


snmp4jStatsRequestRetries - it is event about retry, using it I can count
how many retries was on given address, (including timeouts ) but I cannot
say how many retries was required for getting each response.  I need this
data to create histogram (to know for example that 90% of requests was
responded after x retries etc).  So my proposal is lets move
sending snmp4jStatsRequestRetries event  code to responseReceived   method
and instead putting 1 in event lets put there: target.getRetries() -
retryCount


And one more remark.  CounterEvent doesn't give you possibility to send
info about PDU - size and type. This data has big impact on times and
retries number. I'm worrying that putting single OID requests into one bag
with big bulk requests will make this stats not very useful.

That is why I would prefer dedicated stats events :

ResponseReceived {
int numberOfRetries: // number of retries - 0 means response after first
time
int totalWaitTime; //total time
int lastWaitTime; //time only for successful request
Target target;
int requestSize; //number of oids
int requestType; //GET, SET or what
}
ResponseReceived  should be send from responceReceived method

RequestTimeout {
Target target;
int requestSize; //number of oids
int requestType; //GET, SET or what
}

RequestTimeout  should be send from responceReceived method

What do you think ?


Michal



More information about the SNMP4J mailing list