Repository: quarkusio/quarkus
Issue: Warnings about MetricCollectingClientInterceptor and MetricCollectingServerInterceptor when using grpc and micrometer

### Describe the bug

Warnings about `MetricCollectingClientInterceptor` and `MetricCollectingServerInterceptor` when using grpc and micrometer

Warnings:
 - At least one unused gRPC client interceptor found: io.micrometer.core.instrument.binder.grpc.MetricCollectingClientInterceptor. If there are meant to be used globally, annotate them with @GlobalInterceptor.
 - At least one unused gRPC interceptor found: io.micrometer.core.instrument.binder.grpc.MetricCollectingServerInterceptor. If there are meant to be used globally, annotate them with @GlobalInterceptor.

These warnings should be fixed or at least silenced using `LogCleanupFilterBuildItem`

```
[INFO] --- quarkus-maven-plugin:2.6.2.Final:build (default) @ code-with-quarkus ---
[INFO] [org.jboss.threads] JBoss Threads version 3.4.2.Final
[WARNING] [io.quarkus.grpc.deployment.GrpcClientProcessor] At least one unused gRPC client interceptor found: io.micrometer.core.instrument.binder.grpc.MetricCollectingClientInterceptor. If there are meant to be used globally, annotate them with @GlobalInterceptor.
[WARNING] [io.quarkus.grpc.deployment.GrpcServerProcessor] At least one unused gRPC interceptor found: io.micrometer.core.instrument.binder.grpc.MetricCollectingServerInterceptor. If there are meant to be used globally, annotate them with @GlobalInterceptor.
[INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 921ms
```

### Expected behavior

No warnings

### Actual behavior

Warnings
```
[INFO] --- quarkus-maven-plugin:2.6.2.Final:build (default) @ code-with-quarkus ---
[INFO] [org.jboss.threads] JBoss Threads version 3.4.2.Final
[WARNING] [io.quarkus.grpc.deployment.GrpcClientProcessor] At least one unused gRPC client interceptor found: io.micrometer.core.instrument.binder.grpc.MetricCollectingClientInterceptor. If there are meant to be used globally, annotate them with @GlobalInterceptor.
[WARNING] [io.quarkus.grpc.deployment.GrpcServerProcessor] At least one unused gRPC interceptor found: io.micrometer.core.instrument.binder.grpc.MetricCollectingServerInterceptor. If there are meant to be used globally, annotate them with @GlobalInterceptor.
[INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 921ms
```

### How to Reproduce?

 - select `Micrometer` and `gRPC` on https://code.quarkus.io/
 - download the app
 - run `mvn clean package`

### Output of `uname -a` or `ver`

macOS Monterey

### Output of `java -version`

Java 17

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.6.2.Final

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

_No response_

### Additional information

_No response_

Changed files:
extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcInterceptors.java
extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcServerProcessor.java
extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcClientProcessor.java

diff --git a/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcClientProcessor.java b/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcClientProcessor.java
index 54953a2aea2..862779c9b4a 100644
--- a/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcClientProcessor.java
+++ b/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcClientProcessor.java
@@ -5,6 +5,7 @@
 import static io.quarkus.grpc.deployment.GrpcDotNames.CONFIGURE_STUB;
 import static io.quarkus.grpc.deployment.GrpcDotNames.CREATE_CHANNEL_METHOD;
 import static io.quarkus.grpc.deployment.GrpcDotNames.RETRIEVE_CHANNEL_METHOD;
+import static io.quarkus.grpc.deployment.GrpcInterceptors.MICROMETER_INTERCEPTORS;
 import static io.quarkus.grpc.deployment.ResourceRegistrationUtils.registerResourcesForProperties;
 
 import java.util.ArrayList;
@@ -359,6 +360,11 @@ SyntheticBeanBuildItem clientInterceptorStorage(GrpcClientRecorder recorder, Rec
         // The rest, if anything stays, should be logged as problematic
         Set<String> superfluousInterceptors = new HashSet<>(interceptors.nonGlobalInterceptors);
 
+        // Remove the metrics interceptors
+        for (String MICROMETER_INTERCEPTOR : MICROMETER_INTERCEPTORS) {
+            superfluousInterceptors.remove(MICROMETER_INTERCEPTOR);
+        }
+
         List<AnnotationInstance> found = new ArrayList<>(index.getAnnotations(GrpcDotNames.REGISTER_CLIENT_INTERCEPTOR));
         for (AnnotationInstance annotation : index.getAnnotations(GrpcDotNames.REGISTER_CLIENT_INTERCEPTOR_LIST)) {
             for (AnnotationInstance nested : annotation.value().asNestedArray()) {
diff --git a/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcInterceptors.java b/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcInterceptors.java
index 0e154ea4394..0722cf9d445 100644
--- a/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcInterceptors.java
+++ b/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcInterceptors.java
@@ -5,6 +5,7 @@
 import java.lang.reflect.Modifier;
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 import org.jboss.jandex.ClassInfo;
@@ -13,6 +14,10 @@
 
 final class GrpcInterceptors {
 
+    static final List<String> MICROMETER_INTERCEPTORS = List.of(
+            "io.micrometer.core.instrument.binder.grpc.MetricCollectingClientInterceptor",
+            "io.micrometer.core.instrument.binder.grpc.MetricCollectingServerInterceptor");
+
     final Set<String> globalInterceptors;
     final Set<String> nonGlobalInterceptors;
 
diff --git a/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcServerProcessor.java b/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcServerProcessor.java
index 4c0ad8692e3..7b440777f96 100644
--- a/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcServerProcessor.java
+++ b/extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcServerProcessor.java
@@ -4,6 +4,7 @@
 import static io.quarkus.grpc.deployment.GrpcDotNames.BLOCKING;
 import static io.quarkus.grpc.deployment.GrpcDotNames.NON_BLOCKING;
 import static io.quarkus.grpc.deployment.GrpcDotNames.TRANSACTIONAL;
+import static io.quarkus.grpc.deployment.GrpcInterceptors.MICROMETER_INTERCEPTORS;
 import static java.util.Arrays.asList;
 
 import java.lang.reflect.Modifier;
@@ -385,6 +386,11 @@ void gatherGrpcInterceptors(BeanArchiveIndexBuildItem indexBuildItem,
         // the rest, if anything stays, should be logged as problematic
         Set<String> superfluousInterceptors = new HashSet<>(interceptors.nonGlobalInterceptors);
 
+        // Remove the metrics interceptors
+        for (String MICROMETER_INTERCEPTOR : MICROMETER_INTERCEPTORS) {
+            superfluousInterceptors.remove(MICROMETER_INTERCEPTOR);
+        }
+
         List<AnnotationInstance> found = new ArrayList<>(index.getAnnotations(GrpcDotNames.REGISTER_INTERCEPTOR));
         for (AnnotationInstance annotation : index.getAnnotations(GrpcDotNames.REGISTER_INTERCEPTORS)) {
             for (AnnotationInstance nested : annotation.value().asNestedArray()) {