Here are the examples of the java api @org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean(org.springframework.cloud.sleuth.Tracer.class) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
1 Examples
15
Source : OtelAutoConfiguration.java
with Apache License 2.0
from spring-cloud-incubator
with Apache License 2.0
from spring-cloud-incubator
/**
* {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration
* Auto-configuration} to enable tracing via Spring Cloud Sleuth and OpenTelemetry SDK.
*
* @author Marcin Grzejszczak
* @author John Watson
* @since 1.0.0
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnClreplaced({ io.opentelemetry.api.trace.Tracer.clreplaced, OtelProperties.clreplaced })
@ConditionalOnOtelEnabled
@ConditionalOnProperty(value = "spring.sleuth.enabled", matchIfMissing = true)
@ConditionalOnMissingBean(org.springframework.cloud.sleuth.Tracer.clreplaced)
@EnableConfigurationProperties({ OtelProperties.clreplaced, SleuthSpanFilterProperties.clreplaced, SleuthBaggageProperties.clreplaced, SleuthTracerProperties.clreplaced })
@Import({ OtelBridgeConfiguration.clreplaced, OtelPropagationConfiguration.clreplaced, TraceConfiguration.clreplaced, SleuthAnnotationConfiguration.clreplaced, OtelResourceConfiguration.clreplaced })
@AutoConfigureBefore(BraveAutoConfiguration.clreplaced)
public clreplaced OtelAutoConfiguration {
@Bean
@ConditionalOnMissingBean
OpenTelemetry otel(SdkTracerProvider tracerProvider, ContextPropagators contextPropagators) {
return OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).setPropagators(contextPropagators).build();
}
@Bean
@ConditionalOnMissingBean
SdkTracerProvider otelTracerProvider(SpanLimits spanLimits, ObjectProvider<List<SpanProcessor>> spanProcessors, SpanExporterCustomizer spanExporterCustomizer, ObjectProvider<List<SpanExporter>> spanExporters, Sampler sampler, Resource resource) {
SdkTracerProviderBuilder sdkTracerProviderBuilder = SdkTracerProvider.builder().setResource(resource).setSampler(sampler).setSpanLimits(spanLimits);
List<SpanProcessor> processors = spanProcessors.getIfAvailable(ArrayList::new);
processors.addAll(spanExporters.getIfAvailable(ArrayList::new).stream().map(e -> SimpleSpanProcessor.create(spanExporterCustomizer.customize(e))).collect(Collectors.toList()));
processors.forEach(sdkTracerProviderBuilder::addSpanProcessor);
return sdkTracerProviderBuilder.build();
}
@Bean
@ConditionalOnMissingBean
Resource otelResource(Environment env, ObjectProvider<List<Supplier<Resource>>> resourceProviders) {
String applicationName = env.getProperty("spring.application.name");
Resource resource = defaultResource(applicationName);
List<Supplier<Resource>> resourceCustomizers = resourceProviders.getIfAvailable(ArrayList::new);
for (Supplier<Resource> provider : resourceCustomizers) {
resource = resource.merge(provider.get());
}
return resource;
}
private Resource defaultResource(String applicationName) {
if (applicationName == null) {
return Resource.getDefault();
}
return Resource.getDefault().merge(Resource.create(Attributes.of(ResourceAttributes.SERVICE_NAME, applicationName)));
}
@Bean
@ConditionalOnMissingBean
SpanLimits otelSpanLimits(OtelProperties otelProperties) {
return SpanLimits.getDefault().toBuilder().setMaxNumberOfAttributes(otelProperties.getMaxAttrs()).setMaxNumberOfAttributesPerEvent(otelProperties.getMaxEventAttrs()).setMaxNumberOfAttributesPerLink(otelProperties.getMaxLinkAttrs()).setMaxNumberOfEvents(otelProperties.getMaxEvents()).setMaxNumberOfLinks(otelProperties.getMaxLinks()).build();
}
@Bean
@ConditionalOnMissingBean
Tracer otelTracer(TracerProvider tracerProvider, OtelProperties otelProperties) {
return tracerProvider.get(otelProperties.getInstrumentationName());
}
@Bean
@ConditionalOnMissingBean
Sampler otelSampler(OtelProperties otelProperties) {
return Sampler.traceIdRatioBased(otelProperties.getTraceIdRatioBased());
}
@Bean
SleuthContextListener sleuthContextListener() {
return new SleuthContextListener();
}
}