code: public static <T> void gauge(MetricNameDetails nameDetails, final Callable<T> impl) {
          gauge(nameDetails, new Gauge<T>() {
              @Override
              public T getValue() {
                  try {
                      return impl.call();
                  }
                  catch (Exception ex) {
                      throw new RuntimeException(ex);
                  }
              }
          });
      }
docs: This doesn't make a ton of sense given the above but it will
  likely be cleaner in Java8. Also avoids having to catch an exception
  in a Gauge implementation.