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