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.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, wait
Methods inherited from interface MultiCollector
collect, collect, collect
-
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
-
getPrometheusNames
Description copied from interface:MultiCollector
This 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:
getPrometheusNames
in interfaceMultiCollector
-