code: <T> Gauge gauge(Meter.Id id, @Nullable T obj, ToDoubleFunction<T> valueFunction) {
          return registerMeterIfNecessary(Gauge.class, id, id2 -> newGauge(id2, obj, valueFunction), NoopGauge::new);
      }
docs: Only used by {@link Gauge#builder(String, Object, ToDoubleFunction)}.
  
  @param id            The identifier for this gauge.
  @param obj           State object used to compute a value.
  @param valueFunction Function that is applied on the value for the number.
  @param <T>           The type of the state object from which the gauge value is extracted.
  @return A new or existing long task timer.