code: public static <C extends AsyncCache<?, ?>> C monitor(MeterRegistry registry, C cache, String cacheName, Iterable<Tag> tags) {
          monitor(registry, cache.synchronous(), cacheName, tags);
          return cache;
      }
docs: Record metrics on a Caffeine cache. You must call {@link Caffeine#recordStats()} prior to building the cache
  for metrics to be recorded.
  
  @param registry  The registry to bind metrics to.
  @param cache     The cache to instrument.
  @param cacheName Will be used to tag metrics with "cache".
  @param tags      Tags to apply to all recorded metrics.
  @param <C>       The cache type.
  @return The instrumented cache, unchanged. The original cache is not wrapped or proxied in any way.
  @see CacheStats