Type |
Task
|
Priority |
Normal
|
Assignee | |
Version |
tigase-server-8.2.0
|
Spent time |
45m
|
Issue Votes (0)
Watchers (0)
Type |
Task
|
Priority |
Normal
|
Assignee | |
Version |
tigase-server-8.2.0
|
Spent time |
45m
|
Currently MethodStatistics maintains collection of methods (
private final ConcurrentHashMap<Method, MethodStatistics> statistics = new ConcurrentHashMap<>();
) and propagates it correctly (https://github.com/tigase/tigase-server/blob/05fa90bfa40ad4b253819b4be7b897fd76b7c8b2/src/main/java/tigase/stats/StatisticsInvocationHandler.java#L46-L46 ) but during actual statistics collection overloaded methods are not correctly distinguished causing some statistics to be "dropped" (by being overridden) in https://github.com/tigase/tigase-server/blob/05fa90bfa40ad4b253819b4be7b897fd76b7c8b2/src/main/java/tigase/stats/StatisticsInvocationHandler.java#L138-L138 where we simply take method name (String name = method.getName();
) and add it to the list:list.add(compName, prefix + "/" + name + "/Excutions last hour", per_hour, Level.FINEST);
The most notable example would be UserRepository and it's
getData
method:We have increasing count of executions yet calculation of "Execution last X" is completely wrong.
Possible solution would be to include all method parameters in the statistics list (e.g.:
getData(String)
,getData(BareJID,String)
, etc.)