code: @Nullable
      public static <T extends Map<?, ?>> T gaugeMapSize(String name, Iterable<Tag> tags, T map) {
          return globalRegistry.gaugeMapSize(name, tags, map);
      }
docs: Register a gauge that reports the size of the {@link java.util.Map}. 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.Map#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 map  Thread-safe implementation of {@link Map} 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.