code: @Nullable
      public static <T extends Collection<?>> T gaugeCollectionSize(String name, Iterable<Tag> tags, T collection) {
          return globalRegistry.gaugeCollectionSize(name, tags, collection);
      }
docs: Register a gauge that reports the size of the {@link java.util.Collection}. The registration
  will keep a weak reference to the collection so it will not prevent garbage collection.
  The collection implementation used should be thread safe. Note that calling
  {@link java.util.Collection#size()} can be expensive for some collection implementations
  and should be considered before registering.
  
  @param name       Name of the gauge being registered.
  @param tags       Sequence of dimensions for breaking down the name.
  @param collection Thread-safe implementation of {@link Collection} used to access the value.
  @param <T>        The type of the state object from which the gauge value is extracted.
  @return The number that was passed in so the registration can be done as part of an assignment
  statement.