Skip to content

Commit 94f3109

Browse files
committed
Remove useless OpenTelemetry to Micrometer bridge warning
Closes: #49573
1 parent b1bb7ad commit 94f3109

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

extensions/micrometer-opentelemetry/deployment/src/main/java/io/quarkus/micrometer/opentelemetry/deployment/MicrometerOtelBridgeProcessor.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.quarkus.micrometer.opentelemetry.deployment;
22

33
import java.util.Locale;
4+
import java.util.function.BiFunction;
45
import java.util.function.BooleanSupplier;
56

67
import jakarta.enterprise.inject.Instance;
@@ -11,6 +12,7 @@
1112
import org.jboss.jandex.ParameterizedType;
1213
import org.jboss.jandex.Type;
1314
import org.jboss.logmanager.Level;
15+
import org.objectweb.asm.ClassVisitor;
1416

1517
import io.micrometer.core.instrument.MeterRegistry;
1618
import io.opentelemetry.api.OpenTelemetry;
@@ -20,8 +22,11 @@
2022
import io.quarkus.deployment.annotations.BuildSteps;
2123
import io.quarkus.deployment.annotations.ExecutionTime;
2224
import io.quarkus.deployment.annotations.Record;
25+
import io.quarkus.deployment.builditem.BytecodeTransformerBuildItem;
2326
import io.quarkus.deployment.builditem.LogCategoryBuildItem;
2427
import io.quarkus.deployment.builditem.RunTimeConfigurationDefaultBuildItem;
28+
import io.quarkus.gizmo.ClassTransformer;
29+
import io.quarkus.gizmo.MethodDescriptor;
2530
import io.quarkus.micrometer.deployment.MicrometerProcessor;
2631
import io.quarkus.micrometer.opentelemetry.runtime.MicrometerOtelBridgeRecorder;
2732
import io.quarkus.opentelemetry.deployment.OpenTelemetryEnabled;
@@ -33,6 +38,8 @@
3338
MicrometerOtelBridgeProcessor.OtlpMetricsExporterEnabled.class })
3439
public class MicrometerOtelBridgeProcessor {
3540

41+
private static final String UNSUPPORTED_READ_LOGGER_CLASS_NAME = "io.opentelemetry.instrumentation.micrometer.v1_5.UnsupportedReadLogger";
42+
3643
@BuildStep
3744
public void disableOTelAutoInstrumentedMetrics(BuildProducer<RunTimeConfigurationDefaultBuildItem> runtimeConfigProducer) {
3845
runtimeConfigProducer.produce(
@@ -53,6 +60,22 @@ public void tuneDefaultConfigs(BuildProducer<LogCategoryBuildItem> logCategoryPr
5360
Level.ERROR));
5461
}
5562

63+
@BuildStep
64+
BytecodeTransformerBuildItem silenceWarning() {
65+
return new BytecodeTransformerBuildItem.Builder().setClassToTransform(UNSUPPORTED_READ_LOGGER_CLASS_NAME)
66+
.setCacheable(true).setVisitorFunction(
67+
new BiFunction<>() {
68+
@Override
69+
public ClassVisitor apply(String s, ClassVisitor classVisitor) {
70+
ClassTransformer transformer = new ClassTransformer(UNSUPPORTED_READ_LOGGER_CLASS_NAME);
71+
transformer.removeMethod(
72+
MethodDescriptor.ofMethod(UNSUPPORTED_READ_LOGGER_CLASS_NAME, "<clinit>", void.class));
73+
return transformer.applyTo(classVisitor);
74+
}
75+
})
76+
.build();
77+
}
78+
5679
@BuildStep
5780
@Record(ExecutionTime.RUNTIME_INIT)
5881
void createBridgeBean(

0 commit comments

Comments
 (0)