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 = CacheMetricsCollector.builder().build();
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.0
Additionally, 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
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd or replace the cache with the given name.voidAdd or replace the cache with the given name.builder()voidclear()Remove all caches.collect()Called when the Prometheus server scrapes metrics.This is called in two places: During registration to check if a metric with that name already exists.Cache<?, ?> removeCache(String cacheName) Remove the cache with the given name.Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface MultiCollector
collect, collect, collect
-
Constructor Details
-
CacheMetricsCollector
Deprecated.Instantiates aCacheMetricsCollector, with the legacy parameters.The use of this constructor is discouraged, in favor of a Builder pattern
builder()Note that the
builder()API has different default values than this deprecated constructor.
-
-
Method Details
-
addCache
-
addCache
-
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:MultiCollectorCalled when the Prometheus server scrapes metrics.- Specified by:
collectin interfaceMultiCollector
-
getPrometheusNames
Description copied from interface:MultiCollectorThis is called in two places:- During registration to check if a metric with that name already exists.
- During scrape to check if the collector can be skipped because a name filter is present and all names are excluded.
If your collector returns a constant list of metrics that have names that do not change at runtime it is a good idea to overwrite this and return the names.
- Specified by:
getPrometheusNamesin interfaceMultiCollector
-
builder
-