@Override
  public InvocationHandler create(Target target, Map<Method, MethodHandler> dispatch) {
    final InvocationHandler invocationHandle = invocationHandler.create(target, dispatch);
    return (proxy, method, args) -> {
      if (JAVA_OBJECT_METHODS.contains(method.getName()) || Util.isDefault(method)) {
        return invocationHandle.invoke(proxy, method, args);
      }

      final Timer.Sample sample = Timer.start(meterRegistry);
      Timer timer = null;
      try {
        final Object invoke = invocationHandle.invoke(proxy, method, args);
        timer = createTimer(target, method, args, null);
        return invoke;
      } catch (final FeignException e) {
        timer = createTimer(target, method, args, e);
        createFeignExceptionCounter(target, method, args, e).increment();
        throw e;
      } catch (final Throwable e) {
        timer = createTimer(target, method, args, e);
        throw e;
      } finally {
        if (timer == null) {
          timer = createTimer(target, method, args, null);
        }
        sample.stop(timer);
      }
    };
  }
Methods that are declared by super class object and, if invoked, we don't wanna record metrics
for
micrometer/src/main/java/feign/micrometer/MeteredInvocationHandleFactory.java