in achievements-server/src/main/java/org/jetbrains/buildserver/achievements/impl/UserEventsImpl.java [68:84]
public synchronized float getEventsRate(@NotNull String eventName, int timeIntervalSeconds) {
ArrayList<Long> eventLog = myEventLog.get(eventName);
if (eventLog == null || eventLog.isEmpty()) {
return 0;
}
int count = 1;
Long startTime = eventLog.get(eventLog.size() - 1);
for (int i = eventLog.size() - 2; i >= 0; i--) {
Long time = eventLog.get(i);
if (time - startTime > timeIntervalSeconds) break;
count++;
}
return 1.0f * count / timeIntervalSeconds;
}