11package io .quarkus .micrometer .opentelemetry .deployment ;
22
33import java .util .Locale ;
4+ import java .util .function .BiFunction ;
45import java .util .function .BooleanSupplier ;
56
67import jakarta .enterprise .inject .Instance ;
1112import org .jboss .jandex .ParameterizedType ;
1213import org .jboss .jandex .Type ;
1314import org .jboss .logmanager .Level ;
15+ import org .objectweb .asm .ClassVisitor ;
1416
1517import io .micrometer .core .instrument .MeterRegistry ;
1618import io .opentelemetry .api .OpenTelemetry ;
2022import io .quarkus .deployment .annotations .BuildSteps ;
2123import io .quarkus .deployment .annotations .ExecutionTime ;
2224import io .quarkus .deployment .annotations .Record ;
25+ import io .quarkus .deployment .builditem .BytecodeTransformerBuildItem ;
2326import io .quarkus .deployment .builditem .LogCategoryBuildItem ;
2427import io .quarkus .deployment .builditem .RunTimeConfigurationDefaultBuildItem ;
28+ import io .quarkus .gizmo .ClassTransformer ;
29+ import io .quarkus .gizmo .MethodDescriptor ;
2530import io .quarkus .micrometer .deployment .MicrometerProcessor ;
2631import io .quarkus .micrometer .opentelemetry .runtime .MicrometerOtelBridgeRecorder ;
2732import io .quarkus .opentelemetry .deployment .OpenTelemetryEnabled ;
3338 MicrometerOtelBridgeProcessor .OtlpMetricsExporterEnabled .class })
3439public 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