Class CacheMetricsCollector
Object
CacheMetricsCollector
- All Implemented Interfaces:
MultiCollector
Collect metrics from Caffeine's com.github.benmanes.caffeine.cache.Cache.
// Note that `recordStats()` is required to gather non-zero statistics
Cache<String, String> cache = Caffeine.newBuilder().recordStats().build();
CacheMetricsCollector cacheMetrics = new CacheMetricsCollector();
PrometheusRegistry.defaultRegistry.register(cacheMetrics);
cacheMetrics.addCache("mycache", cache);
Exposed metrics are labeled with the provided cache name.
With the example above, sample metric names would be:
caffeine_cache_hit_total{cache="mycache"} 10.0 caffeine_cache_miss_total{cache="mycache"} 3.0 caffeine_cache_requests_total{cache="mycache"} 13.0 caffeine_cache_eviction_total{cache="mycache"} 1.0 caffeine_cache_estimated_size{cache="mycache"} 5.0Additionally, if the cache includes a loader, the following metrics would be provided:
caffeine_cache_load_failure_total{cache="mycache"} 2.0 caffeine_cache_loads_total{cache="mycache"} 7.0 caffeine_cache_load_duration_seconds_count{cache="mycache"} 7.0 caffeine_cache_load_duration_seconds_sum{cache="mycache"} 0.0034
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Add or replace the cache with the given name.void
Add or replace the cache with the given name.void
clear()
Remove all caches.collect()
Called when the Prometheus server scrapes metrics.Cache<?,
?> removeCache
(String cacheName) Remove the cache with the given name.Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface MultiCollector
collect, collect, collect, getPrometheusNames
-
Constructor Details
-
CacheMetricsCollector
public CacheMetricsCollector()
-
-
Method Details
-
addCache
Add or replace the cache with the given name.Any references any previous cache with this name is invalidated.
- Parameters:
cacheName
- The name of the cache, will be the metrics label valuecache
- The cache being monitored
-
addCache
Add or replace the cache with the given name.Any references any previous cache with this name is invalidated.
- Parameters:
cacheName
- The name of the cache, will be the metrics label valuecache
- The cache being monitored
-
removeCache
Remove the cache with the given name.Any references to the cache are invalidated.
- Parameters:
cacheName
- cache to be removed
-
clear
Remove all caches.Any references to all caches are invalidated.
-
collect
Description copied from interface:MultiCollector
Called when the Prometheus server scrapes metrics.- Specified by:
collect
in interfaceMultiCollector
-