@Override
    public <REQ, RESP> ServerCall.Listener<REQ> interceptCall(final ServerCall<REQ, RESP> call,
                                                              final Metadata headers,
                                                              final ServerCallHandler<REQ, RESP> next) {
        if (isWatermarkExceeded()) {
            call.close(Status.RESOURCE_EXHAUSTED.withDescription("Watermark exceeded"), new Metadata());
            this.logWarning("Watermark exceeded, reject the gRPC request by Circuit Breaking mechanism.");
            return new ServerCall.Listener<REQ>() {
            };
        }

        ServerCall.Listener<REQ> delegate = next.startCall(call, headers);

        return new ForwardingServerCallListener.SimpleForwardingServerCallListener<REQ>(delegate) {
            @Override
            public void onMessage(final REQ message) {
                if (isWatermarkExceeded()) {
                    call.close(Status.RESOURCE_EXHAUSTED.withDescription("Watermark exceeded"), new Metadata());
                    logWarning("Watermark exceeded, reject the gRPC request by Circuit Breaking mechanism.");
                    return;
                }

                super.onMessage(message);
            }
        };
    }
gRPCWatermarkInterceptor is a gRPC interceptor that checks if the watermark is exceeded before processing the request.
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/watermark/WatermarkGRPCInterceptor.java