code: @NonNull
    public Caffeine<K, V> recordStats(
        @NonNull Supplier<? extends StatsCounter> statsCounterSupplier) {
      requireState(this.statsCounterSupplier == null, "Statistics recording was already set");
      requireNonNull(statsCounterSupplier);
      this.statsCounterSupplier = () -> StatsCounter.guardedStatsCounter(statsCounterSupplier.get());
      return this;
    }
docs: Enables the accumulation of {@link CacheStats} during the operation of the cache. Without this
  {@link Cache#stats} will return zero for all statistics. Note that recording statistics
  requires bookkeeping to be performed with each operation, and thus imposes a performance
  penalty on cache operation. Any exception thrown by the supplied {@link StatsCounter} will be
  suppressed and logged.
  
  @param statsCounterSupplier a supplier instance that returns a new {@link StatsCounter}
  @return this {@code Caffeine} instance (for chaining)