CacheMetrics: Add recent hit rate

The depricated recent hit rate implementation was add from Origin as it
is still been used by external system.

Signed-off-by: Amnon Heiman <amnon@scylladb.com>
This commit is contained in:
Amnon Heiman 2015-11-10 15:58:51 +02:00
parent 72f6f5dab4
commit 54d451de88

View File

@ -24,6 +24,8 @@
package org.apache.cassandra.metrics;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import com.cloudius.urchin.api.APIClient;
import com.cloudius.urchin.metrics.APIMetrics;
import com.cloudius.urchin.metrics.DefaultNameFactory;
@ -48,6 +50,9 @@ public class CacheMetrics {
/** Total number of cache entries */
public final Gauge<Integer> entries;
private final AtomicLong lastRequests = new AtomicLong(0);
private final AtomicLong lastHits = new AtomicLong(0);
private APIClient c = new APIClient();
/**
@ -101,6 +106,17 @@ public class CacheMetrics {
// for backward compatibility
@Deprecated
public double getRecentHitRate() {
return 0;
long r = requests.count();
long h = hits.count();
try
{
return ((double)(h - lastHits.get())) / (r - lastRequests.get());
}
finally
{
lastRequests.set(r);
lastHits.set(h);
}
}
}