61
61
import io .quarkus .opentelemetry .runtime .AutoConfiguredOpenTelemetrySdkBuilderCustomizer ;
62
62
import io .quarkus .opentelemetry .runtime .OpenTelemetryRecorder ;
63
63
import io .quarkus .opentelemetry .runtime .QuarkusContextStorage ;
64
+ import io .quarkus .opentelemetry .runtime .config .build .ExporterType ;
65
+ import io .quarkus .opentelemetry .runtime .config .build .OTelBuildConfig ;
64
66
import io .quarkus .opentelemetry .runtime .config .runtime .OTelRuntimeConfig ;
65
67
import io .quarkus .opentelemetry .runtime .tracing .cdi .WithSpanInterceptor ;
66
68
import io .quarkus .opentelemetry .runtime .tracing .intrumentation .InstrumentationRecorder ;
@@ -111,7 +113,8 @@ SyntheticBeanBuildItem openTelemetryBean(OpenTelemetryRecorder recorder, OTelRun
111
113
}
112
114
113
115
@ BuildStep
114
- void registerNativeImageResources (BuildProducer <ServiceProviderBuildItem > services ,
116
+ void handleServices (OTelBuildConfig config ,
117
+ BuildProducer <ServiceProviderBuildItem > services ,
115
118
BuildProducer <RemovedResourceBuildItem > removedResources ,
116
119
BuildProducer <RuntimeReinitializedClassBuildItem > runtimeReinitialized ) throws IOException {
117
120
@@ -125,9 +128,11 @@ void registerNativeImageResources(BuildProducer<ServiceProviderBuildItem> servic
125
128
new ServiceProviderBuildItem (ConfigurableSpanExporterProvider .class .getName (), spanExporterProviders ));
126
129
}
127
130
// remove the service file that contains OtlpSpanExporterProvider
128
- removedResources .produce (new RemovedResourceBuildItem (
129
- ArtifactKey .fromString ("io.opentelemetry:opentelemetry-exporter-otlp" ),
130
- Set .of ("META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSpanExporterProvider" )));
131
+ if (config .traces ().exporter ().stream ().noneMatch (ExporterType .Constants .OTLP_VALUE ::equals )) {
132
+ removedResources .produce (new RemovedResourceBuildItem (
133
+ ArtifactKey .fromString ("io.opentelemetry:opentelemetry-exporter-otlp" ),
134
+ Set .of ("META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSpanExporterProvider" )));
135
+ }
131
136
132
137
runtimeReinitialized .produce (
133
138
new RuntimeReinitializedClassBuildItem ("io.opentelemetry.sdk.autoconfigure.TracerProviderConfiguration" ));
0 commit comments