<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->

- [ ] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.

## Describe the proposal
<!-- Please use this for a concrete design proposal for functionality. -->
<!-- If you just want to request a new feature and discuss the possible business value, create a Feature Request. -->

The filter order of MetricsFilter should be lowest (may `Integer.MIN_VALUE + 100`) to collect metrics as much as possible.
metricsInterceptor.beforeMethod(invocation);
        } catch (Throwable t) {
            LOGGER.warn(INTERNAL_ERROR, "", "", "Error occurred when beforeMethod.", t);
        }
        return invoker.invoke(invocation);
    }
    @Override
    public void onResponse(Result result, Invoker<?> invoker, Invocation invocation) {
        if (collector == null || !collector.isCollectEnabled()) {
            return;
        }
        try {
            metricsInterceptor.afterMethod(invocation, result);
        } catch (Throwable t) {
            LOGGER.warn(INTERNAL_ERROR, "", "", "Error occurred when afterMethod.", t);
        }
    }
    @Override
    public void onError(Throwable t, Invoker<?> invoker, Invocation invocation) {
        if (collector == null || !collector.isCollectEnabled()) {
            return;
        }
        try {
            metricsInterceptor.handleMethodException(invocation, t, false);
        } catch (Throwable t1) {
            LOGGER.warn(INTERNAL_ERROR, "", "", "Error occurred when handleMethodException.", t1);
        }
    }
}