code: @Nullable
      public <T> T gauge(String name, T obj, ToDoubleFunction<T> valueFunction) {
          return gauge(name, emptyList(), obj, valueFunction);
      }
docs: Register a gauge that reports the value of the object.
  
  @param name          Name of the gauge being registered.
  @param obj           State object used to compute a value.
  @param valueFunction Function that produces an instantaneous gauge value from the state object.
  @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.