code: public static <T> Consumer<T> monitor(Consumer<T> consumer, AtomicLong calls) {
          return new MonitoringConsumer<T>(consumer, calls);
      }
docs: Monitors calls to an consumer.
  
  @param <T> the consumer parameter type
  @param consumer the consumer that will be monitored
  @param calls a value holder accumulating calls
  @return the proxied consumer