Module com.github.benmanes.caffeine
Interface StatsCounter
- All Known Implementing Classes:
ConcurrentStatsCounter
Accumulates statistics during the operation of a
Cache for presentation by
Cache.stats().-
Method Summary
Modifier and TypeMethodDescriptionstatic StatsCounterReturns an accumulator that does not record any cache events.static StatsCounterguardedStatsCounter(StatsCounter statsCounter) Returns an accumulator that suppresses and logs any exception thrown by the delegatestatsCounter.voidrecordEviction(int weight, RemovalCause cause) Records the eviction of an entry from the cache.voidrecordHits(int count) Records cache hits.voidrecordLoadFailure(long loadTime) Records the failed load of a new entry.voidrecordLoadSuccess(long loadTime) Records the successful load of a new entry.voidrecordMisses(int count) Records cache misses.snapshot()Returns a snapshot of this counter's values.
-
Method Details
-
recordHits
void recordHits(int count) Records cache hits. This should be called when a cache request returns a cached value.- Parameters:
count- the number of hits to record
-
recordMisses
void recordMisses(int count) Records cache misses. This should be called when a cache request returns a value that was not found in the cache. This method should be called by the loading thread, as well as by threads blocking on the load. Multiple concurrent calls toCachelookup methods with the same key on an absent value should result in a single call to eitherrecordLoadSuccessorrecordLoadFailureand multiple calls to this method, despite all being served by the results of a single load operation.- Parameters:
count- the number of misses to record
-
recordLoadSuccess
void recordLoadSuccess(long loadTime) Records the successful load of a new entry. This method should be called when a cache request causes an entry to be loaded (such as byCache.get(K, java.util.function.Function<? super K, ? extends V>)orMap.computeIfAbsent(K, java.util.function.Function<? super K, ? extends V>)) and the loading completes successfully. In contrast torecordMisses(int), this method should only be called by the loading thread.- Parameters:
loadTime- the number of nanoseconds the cache spent computing or retrieving the new value
-
recordLoadFailure
void recordLoadFailure(long loadTime) Records the failed load of a new entry. This method should be called when a cache request causes an entry to be loaded (such as byCache.get(K, java.util.function.Function<? super K, ? extends V>)orMap.computeIfAbsent(K, java.util.function.Function<? super K, ? extends V>)), but an exception is thrown while loading the entry or the loading function returns null. In contrast torecordMisses(int), this method should only be called by the loading thread.- Parameters:
loadTime- the number of nanoseconds the cache spent computing or retrieving the new value prior to discovering the value doesn't exist or an exception being thrown
-
recordEviction
Records the eviction of an entry from the cache. This should only been called when an entry is evicted due to the cache's eviction strategy, and not as a result of manualinvalidations.- Parameters:
weight- the weight of the evicted entrycause- the reason for which the entry was removed
-
snapshot
CacheStats snapshot()Returns a snapshot of this counter's values. Note that this may be an inconsistent view, as it may be interleaved with update operations.Note: the values of the metrics are undefined in case of overflow (though it is guaranteed not to throw an exception). If you require specific handling, we recommend implementing your own stats collector.
- Returns:
- a snapshot of this counter's values
-
disabledStatsCounter
Returns an accumulator that does not record any cache events.- Returns:
- an accumulator that does not record metrics
-
guardedStatsCounter
Returns an accumulator that suppresses and logs any exception thrown by the delegatestatsCounter.- Parameters:
statsCounter- the accumulator to delegate to- Returns:
- an accumulator that suppresses and logs any exception thrown by the delegate
-