Skip to content

Commit 15a3ba2

Browse files
committed
remove all spring starter features where a standard property can be used
1 parent 658c286 commit 15a3ba2

File tree

33 files changed

+100
-475
lines changed

33 files changed

+100
-475
lines changed

instrumentation/spring/spring-boot-autoconfigure/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ dependencies {
3737
library("org.springframework.boot:spring-boot-starter-web:$springBootVersion")
3838
library("org.springframework.boot:spring-boot-starter-webflux:$springBootVersion")
3939

40-
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
40+
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
4141
compileOnly("io.opentelemetry:opentelemetry-extension-annotations")
4242
compileOnly("io.opentelemetry:opentelemetry-extension-trace-propagators")
4343
compileOnly("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java

+11-3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.otlp.OtlpSpanExporterAutoConfiguration;
1515
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.MapConverter;
1616
import io.opentelemetry.instrumentation.spring.autoconfigure.resources.OtelResourceAutoConfiguration;
17+
import io.opentelemetry.instrumentation.spring.autoconfigure.resources.OtelResourceProperties;
1718
import io.opentelemetry.instrumentation.spring.autoconfigure.resources.SpringConfigProperties;
1819
import io.opentelemetry.sdk.OpenTelemetrySdk;
1920
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
@@ -57,7 +58,11 @@
5758
* <p>Updates the sampler probability for the configured {@link TracerProvider}.
5859
*/
5960
@Configuration
60-
@EnableConfigurationProperties({SamplerProperties.class, OtlpExporterProperties.class})
61+
@EnableConfigurationProperties({
62+
SamplerProperties.class,
63+
OtlpExporterProperties.class,
64+
OtelResourceProperties.class
65+
})
6166
public class OpenTelemetryAutoConfiguration {
6267

6368
public OpenTelemetryAutoConfiguration() {}
@@ -96,8 +101,11 @@ static class Metric {}
96101
@Bean
97102
@ConditionalOnMissingBean
98103
ConfigProperties configProperties(
99-
Environment env, OtlpExporterProperties otlpExporterProperties) {
100-
return new SpringConfigProperties(env, new SpelExpressionParser(), otlpExporterProperties);
104+
Environment env,
105+
OtlpExporterProperties otlpExporterProperties,
106+
OtelResourceProperties resourceProperties) {
107+
return new SpringConfigProperties(
108+
env, new SpelExpressionParser(), otlpExporterProperties, resourceProperties);
101109
}
102110

103111
@Bean(destroyMethod = "") // SDK components are shutdown from the OpenTelemetry instance

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/internal/ExporterConfigEvaluator.java

+1-17
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.internal;
77

88
import java.util.Arrays;
9-
import javax.annotation.Nullable;
109
import org.springframework.core.env.Environment;
1110

1211
/**
@@ -18,28 +17,13 @@ public final class ExporterConfigEvaluator {
1817
private ExporterConfigEvaluator() {}
1918

2019
public static boolean isExporterEnabled(
21-
Environment environment,
22-
@Nullable String oldAllKey,
23-
String oldKey,
24-
String exportersKey,
25-
String wantExporter,
26-
boolean defaultValue) {
20+
Environment environment, String exportersKey, String wantExporter, boolean defaultValue) {
2721

2822
String exporter = environment.getProperty(exportersKey);
2923
if (exporter != null) {
3024
return Arrays.asList(exporter.split(",")).contains(wantExporter);
3125
}
3226

33-
String old = environment.getProperty(oldKey);
34-
if (old != null) {
35-
return "true".equals(old);
36-
}
37-
if (oldAllKey != null) {
38-
String oldAll = environment.getProperty(oldAllKey);
39-
if (oldAll != null) {
40-
return "true".equals(oldAll);
41-
}
42-
}
4327
return defaultValue;
4428
}
4529
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfiguration.java

+1-6
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,7 @@ static final class CustomCondition implements Condition {
3535
@Override
3636
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
3737
return ExporterConfigEvaluator.isExporterEnabled(
38-
context.getEnvironment(),
39-
"otel.exporter.logging.enabled",
40-
"otel.exporter.logging.metrics.enabled",
41-
"otel.metrics.exporter",
42-
"logging",
43-
false);
38+
context.getEnvironment(), "otel.metrics.exporter", "logging", false);
4439
}
4540
}
4641
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfiguration.java

+1-6
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,7 @@ static final class CustomCondition implements Condition {
3535
@Override
3636
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
3737
return ExporterConfigEvaluator.isExporterEnabled(
38-
context.getEnvironment(),
39-
"otel.exporter.logging.enabled",
40-
"otel.exporter.logging.traces.enabled",
41-
"otel.traces.exporter",
42-
"logging",
43-
false);
38+
context.getEnvironment(), "otel.traces.exporter", "logging", false);
4439
}
4540
}
4641
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/SystemOutLogRecordExporterAutoConfiguration.java

+1-6
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,7 @@ static final class CustomCondition implements Condition {
3535
@Override
3636
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
3737
return ExporterConfigEvaluator.isExporterEnabled(
38-
context.getEnvironment(),
39-
"otel.exporter.logging.enabled",
40-
"otel.exporter.logging.logs.enabled",
41-
"otel.logs.exporter",
42-
"logging",
43-
false);
38+
context.getEnvironment(), "otel.logs.exporter", "logging", false);
4439
}
4540
}
4641
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpLogRecordExporterAutoConfiguration.java

+1-6
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,7 @@ static final class CustomCondition implements Condition {
3636
@Override
3737
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
3838
return ExporterConfigEvaluator.isExporterEnabled(
39-
context.getEnvironment(),
40-
"otel.exporter.otlp.enabled",
41-
"otel.exporter.otlp.logs.enabled",
42-
"otel.logs.exporter",
43-
"otlp",
44-
true);
39+
context.getEnvironment(), "otel.logs.exporter", "otlp", true);
4540
}
4641
}
4742
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpMetricExporterAutoConfiguration.java

+1-6
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,7 @@ static final class CustomCondition implements Condition {
3838
@Override
3939
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
4040
return ExporterConfigEvaluator.isExporterEnabled(
41-
context.getEnvironment(),
42-
"otel.exporter.otlp.enabled",
43-
"otel.exporter.otlp.metrics.enabled",
44-
"otel.metrics.exporter",
45-
"otlp",
46-
true);
41+
context.getEnvironment(), "otel.metrics.exporter", "otlp", true);
4742
}
4843
}
4944
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpSpanExporterAutoConfiguration.java

+1-6
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,7 @@ static final class CustomCondition implements Condition {
4343
@Override
4444
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
4545
return ExporterConfigEvaluator.isExporterEnabled(
46-
context.getEnvironment(),
47-
"otel.exporter.otlp.enabled",
48-
"otel.exporter.otlp.traces.enabled",
49-
"otel.traces.exporter",
50-
"otlp",
51-
true);
46+
context.getEnvironment(), "otel.traces.exporter", "otlp", true);
5247
}
5348
}
5449
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfiguration.java

+1-6
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,7 @@ static final class CustomCondition implements Condition {
4747
@Override
4848
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
4949
return ExporterConfigEvaluator.isExporterEnabled(
50-
context.getEnvironment(),
51-
null,
52-
"otel.exporter.zipkin.enabled",
53-
"otel.traces.exporter",
54-
"zipkin",
55-
true);
50+
context.getEnvironment(), "otel.traces.exporter", "zipkin", true);
5651
}
5752
}
5853
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/CompositeTextMapPropagatorFactory.java

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ public final class CompositeTextMapPropagatorFactory {
2626
private static final Logger logger =
2727
Logger.getLogger(CompositeTextMapPropagatorFactory.class.getName());
2828

29-
@SuppressWarnings("deprecation") // deprecated class to be updated once published in new location
3029
static TextMapPropagator getCompositeTextMapPropagator(
3130
BeanFactory beanFactory, List<String> types) {
3231

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationAutoConfiguration.java

+5-7
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,25 @@
99
import io.opentelemetry.context.propagation.TextMapPropagator;
1010
import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
1111
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
12+
import java.util.Arrays;
1213
import java.util.Collections;
1314
import java.util.List;
1415
import org.springframework.beans.factory.BeanFactory;
1516
import org.springframework.beans.factory.ObjectProvider;
1617
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
1718
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
1819
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
19-
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2020
import org.springframework.context.annotation.Bean;
2121
import org.springframework.context.annotation.Configuration;
2222

2323
/** Configures {@link ContextPropagators} bean for propagation. */
2424
@Configuration
25-
@EnableConfigurationProperties(PropagationProperties.class)
2625
@AutoConfigureBefore(OpenTelemetryAutoConfiguration.class)
2726
@ConditionalOnProperty(prefix = "otel.propagation", name = "enabled", matchIfMissing = true)
28-
@SuppressWarnings("deprecation")
2927
public class PropagationAutoConfiguration {
3028

29+
private static final List<String> DEFAULT_PROPAGATORS = Arrays.asList("tracecontext", "baggage");
30+
3131
@Bean
3232
@ConditionalOnMissingBean
3333
ContextPropagators contextPropagators(ObjectProvider<List<TextMapPropagator>> propagators) {
@@ -43,11 +43,9 @@ static class PropagatorsConfiguration {
4343

4444
@Bean
4545
TextMapPropagator compositeTextMapPropagator(
46-
BeanFactory beanFactory,
47-
PropagationProperties properties,
48-
ConfigProperties configProperties) {
46+
BeanFactory beanFactory, ConfigProperties configProperties) {
4947
return CompositeTextMapPropagatorFactory.getCompositeTextMapPropagator(
50-
beanFactory, configProperties.getList("otel.propagators", properties.getType()));
48+
beanFactory, configProperties.getList("otel.propagators", DEFAULT_PROPAGATORS));
5149
}
5250
}
5351
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationProperties.java

-26
This file was deleted.

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/OtelResourceAutoConfiguration.java

+9-6
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import io.opentelemetry.instrumentation.resources.ProcessRuntimeResource;
1717
import io.opentelemetry.instrumentation.resources.ProcessRuntimeResourceProvider;
1818
import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
19+
import io.opentelemetry.sdk.autoconfigure.internal.EnvironmentResourceProvider;
1920
import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider;
2021
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
2122
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -24,18 +25,20 @@
2425
import org.springframework.context.annotation.Bean;
2526
import org.springframework.context.annotation.Configuration;
2627

27-
@SuppressWarnings("deprecation") // old otel.springboot.resource support
2828
@Configuration
29-
@EnableConfigurationProperties({OtelSpringResourceProperties.class, OtelResourceProperties.class})
29+
@EnableConfigurationProperties({OtelResourceProperties.class})
3030
@AutoConfigureBefore(OpenTelemetryAutoConfiguration.class)
3131
@ConditionalOnProperty(prefix = "otel.springboot.resource", name = "enabled", matchIfMissing = true)
3232
public class OtelResourceAutoConfiguration {
3333

3434
@Bean
35-
public ResourceProvider otelResourceProvider(
36-
OtelSpringResourceProperties otelSpringResourceProperties,
37-
OtelResourceProperties otelResourceProperties) {
38-
return new SpringResourceProvider(otelSpringResourceProperties, otelResourceProperties);
35+
public ResourceProvider otelEnvironmentResourceProvider() {
36+
return new EnvironmentResourceProvider();
37+
}
38+
39+
@Bean
40+
public ResourceProvider otelSpringResourceProvider() {
41+
return new SpringResourceProvider();
3942
}
4043

4144
@Bean

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/OtelSpringResourceProperties.java

-24
This file was deleted.

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/SpringConfigProperties.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,17 @@ public class SpringConfigProperties implements ConfigProperties {
2222

2323
private final ExpressionParser parser;
2424
private final OtlpExporterProperties otlpExporterProperties;
25+
private final OtelResourceProperties resourceProperties;
2526

2627
public SpringConfigProperties(
2728
Environment environment,
2829
ExpressionParser parser,
29-
OtlpExporterProperties otlpExporterProperties) {
30+
OtlpExporterProperties otlpExporterProperties,
31+
OtelResourceProperties resourceProperties) {
3032
this.environment = environment;
3133
this.parser = parser;
3234
this.otlpExporterProperties = otlpExporterProperties;
35+
this.resourceProperties = resourceProperties;
3336
}
3437

3538
@Nullable
@@ -91,6 +94,8 @@ public Duration getDuration(String name) {
9194
public Map<String, String> getMap(String name) {
9295
// maps from config properties are not supported by Environment, so we have to fake it
9396
switch (name) {
97+
case "otel.resource.attributes":
98+
return resourceProperties.getAttributes();
9499
case "otel.exporter.otlp.headers":
95100
return otlpExporterProperties.getHeaders();
96101
case "otel.exporter.otlp.logs.headers":

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/SpringResourceProvider.java

-17
Original file line numberDiff line numberDiff line change
@@ -12,32 +12,15 @@
1212
import io.opentelemetry.sdk.resources.Resource;
1313
import io.opentelemetry.semconv.ResourceAttributes;
1414

15-
@SuppressWarnings("deprecation") // old otel.springboot.resource support
1615
public class SpringResourceProvider implements ResourceProvider {
1716

18-
private final OtelSpringResourceProperties otelSpringResourceProperties;
19-
private final OtelResourceProperties otelResourceProperties;
20-
21-
public SpringResourceProvider(
22-
OtelSpringResourceProperties otelSpringResourceProperties,
23-
OtelResourceProperties otelResourceProperties) {
24-
this.otelSpringResourceProperties = otelSpringResourceProperties;
25-
this.otelResourceProperties = otelResourceProperties;
26-
}
27-
2817
@Override
2918
public Resource createResource(ConfigProperties configProperties) {
3019
AttributesBuilder attributesBuilder = Attributes.builder();
3120
String springApplicationName = configProperties.getString("spring.application.name");
3221
if (springApplicationName != null) {
3322
attributesBuilder.put(ResourceAttributes.SERVICE_NAME, springApplicationName);
3423
}
35-
otelSpringResourceProperties.getAttributes().forEach(attributesBuilder::put);
36-
otelResourceProperties.getAttributes().forEach(attributesBuilder::put);
37-
String applicationName = configProperties.getString("otel.service.name");
38-
if (applicationName != null) {
39-
attributesBuilder.put(ResourceAttributes.SERVICE_NAME, applicationName);
40-
}
4124
return Resource.create(attributesBuilder.build());
4225
}
4326
}

0 commit comments

Comments
 (0)