Hi Michal,

The request wait time can be used with the snmpOutPkts counter to determine the last and
the average wait time.

Regarding the retries, you never can determine whether a retry was necessary or not, because you will never know if the agent got the initial request or not (except probably
when using connection oriented transport).

Thus, if you encounter retries but no timeouts, then you should increase the timeout value
(if possible). On the other hand timeouts are more worse than retries.

The sizes of the SNMP messages can be fetched from the transport listener. PDU types
from the snmpOutGetRequests, snmpOutGetNexts, etc.

So it is all about the collect the information and combine it.

Best regards,
Frank

Am 27.01.2016 um 12:26 schrieb Michał Steiner:
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


--
---
AGENT++
Maximilian-Kolbe-Str. 10
73257 Koengen, Germany
https://agentpp.com
Phone: +49 7024 8688230
Fax:   +49 7024 8688231

_______________________________________________
SNMP4J mailing list
[email protected]
https://oosnmp.net/mailman/listinfo/snmp4j

Reply via email to