<!-- 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. -->

We should collect the count of no provider available exception in MetricsFilter.

With: `RpcException.isNoInvokerAvailableAfterFilter()`

SERVICE_SUBSCRIBE_METRIC_NUM_SUCCEED("dubbo.registry.subscribe.service.num.succeed.total", "Succeed Service-Level Num"),
    SERVICE_SUBSCRIBE_METRIC_NUM_FAILED("dubbo.registry.subscribe.service.num.failed.total", "Failed Service-Level Num"),
    
    STORE_PROVIDER_METADATA("dubbo.metadata.store.provider.total", "Store Provider Metadata"),
    STORE_PROVIDER_METADATA_SUCCEED("dubbo.metadata.store.provider.succeed.total", "Succeed Store Provider Metadata"),
    STORE_PROVIDER_METADATA_FAILED("dubbo.metadata.store.provider.failed.total", "Failed Store Provider Metadata"),
    METADATA_GIT_COMMITID_METRIC("git.commit.id", "Git Commit Id Metrics"),
    
    ;
    private String name;
    private String description;
    public final String getName() {
        return this.name;
    }
    public final String getNameByType(String type) {
        return String.format(name, type);
    }
    public final MetricsKey formatName(String type) {
        this.name = String.format(name, type);
        return this;
    }
    public final String getDescription() {
        return this.description;
    }
    MetricsKey(String name, String description) {
        this.name = name;
        this.description = description;
    }
}