Skip to content

Commit d8aa0f5

Browse files
authored
Remove deprecated spring properties (#10454)
1 parent 51aa39b commit d8aa0f5

File tree

35 files changed

+139
-515
lines changed

35 files changed

+139
-515
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

+8-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.MapConverter;
1616
import io.opentelemetry.instrumentation.spring.autoconfigure.propagators.PropagationProperties;
1717
import io.opentelemetry.instrumentation.spring.autoconfigure.resources.OtelResourceAutoConfiguration;
18+
import io.opentelemetry.instrumentation.spring.autoconfigure.resources.OtelResourceProperties;
1819
import io.opentelemetry.instrumentation.spring.autoconfigure.resources.SpringConfigProperties;
1920
import io.opentelemetry.sdk.OpenTelemetrySdk;
2021
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
@@ -61,6 +62,7 @@
6162
@EnableConfigurationProperties({
6263
SamplerProperties.class,
6364
OtlpExporterProperties.class,
65+
OtelResourceProperties.class,
6466
PropagationProperties.class
6567
})
6668
public class OpenTelemetryAutoConfiguration {
@@ -103,9 +105,14 @@ static class Metric {}
103105
ConfigProperties configProperties(
104106
Environment env,
105107
OtlpExporterProperties otlpExporterProperties,
108+
OtelResourceProperties resourceProperties,
106109
PropagationProperties propagationProperties) {
107110
return new SpringConfigProperties(
108-
env, new SpelExpressionParser(), otlpExporterProperties, propagationProperties);
111+
env,
112+
new SpelExpressionParser(),
113+
otlpExporterProperties,
114+
resourceProperties,
115+
propagationProperties);
109116
}
110117

111118
@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/DeprecatedPropagationProperties.java

-26
This file was deleted.

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

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
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;
@@ -22,12 +23,13 @@
2223

2324
/** Configures {@link ContextPropagators} bean for propagation. */
2425
@Configuration
25-
@EnableConfigurationProperties(DeprecatedPropagationProperties.class)
26+
@EnableConfigurationProperties(PropagationProperties.class)
2627
@AutoConfigureBefore(OpenTelemetryAutoConfiguration.class)
2728
@ConditionalOnProperty(prefix = "otel.propagation", name = "enabled", matchIfMissing = true)
28-
@SuppressWarnings("deprecation")
2929
public class PropagationAutoConfiguration {
3030

31+
private static final List<String> DEFAULT_PROPAGATORS = Arrays.asList("tracecontext", "baggage");
32+
3133
@Bean
3234
@ConditionalOnMissingBean
3335
ContextPropagators contextPropagators(ObjectProvider<List<TextMapPropagator>> propagators) {
@@ -43,11 +45,9 @@ static class PropagatorsConfiguration {
4345

4446
@Bean
4547
TextMapPropagator compositeTextMapPropagator(
46-
BeanFactory beanFactory,
47-
DeprecatedPropagationProperties properties,
48-
ConfigProperties configProperties) {
48+
BeanFactory beanFactory, ConfigProperties configProperties) {
4949
return CompositeTextMapPropagatorFactory.getCompositeTextMapPropagator(
50-
beanFactory, configProperties.getList("otel.propagators", properties.getType()));
50+
beanFactory, configProperties.getList("otel.propagators", DEFAULT_PROPAGATORS));
5151
}
5252
}
5353
}

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

+9-5
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;
@@ -25,16 +26,19 @@
2526
import org.springframework.context.annotation.Configuration;
2627

2728
@Configuration
28-
@EnableConfigurationProperties({OtelSpringResourceProperties.class, OtelResourceProperties.class})
29+
@EnableConfigurationProperties({OtelResourceProperties.class})
2930
@AutoConfigureBefore(OpenTelemetryAutoConfiguration.class)
3031
@ConditionalOnProperty(prefix = "otel.springboot.resource", name = "enabled", matchIfMissing = true)
3132
public class OtelResourceAutoConfiguration {
3233

3334
@Bean
34-
public ResourceProvider otelResourceProvider(
35-
OtelSpringResourceProperties otelSpringResourceProperties,
36-
OtelResourceProperties otelResourceProperties) {
37-
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();
3842
}
3943

4044
@Bean

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

-23
This file was deleted.

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

+6
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,19 @@ public class SpringConfigProperties implements ConfigProperties {
2323

2424
private final ExpressionParser parser;
2525
private final OtlpExporterProperties otlpExporterProperties;
26+
private final OtelResourceProperties resourceProperties;
2627
private final PropagationProperties propagationProperties;
2728

2829
public SpringConfigProperties(
2930
Environment environment,
3031
ExpressionParser parser,
3132
OtlpExporterProperties otlpExporterProperties,
33+
OtelResourceProperties resourceProperties,
3234
PropagationProperties propagationProperties) {
3335
this.environment = environment;
3436
this.parser = parser;
3537
this.otlpExporterProperties = otlpExporterProperties;
38+
this.resourceProperties = resourceProperties;
3639
this.propagationProperties = propagationProperties;
3740
}
3841

@@ -78,6 +81,7 @@ public List<String> getList(String name) {
7881
if (name.equals("otel.propagators")) {
7982
return propagationProperties.getPropagators();
8083
}
84+
8185
List<String> value = environment.getProperty(name, List.class);
8286
return value == null ? Collections.emptyList() : value;
8387
}
@@ -98,6 +102,8 @@ public Duration getDuration(String name) {
98102
public Map<String, String> getMap(String name) {
99103
// maps from config properties are not supported by Environment, so we have to fake it
100104
switch (name) {
105+
case "otel.resource.attributes":
106+
return resourceProperties.getAttributes();
101107
case "otel.exporter.otlp.headers":
102108
return otlpExporterProperties.getHeaders();
103109
case "otel.exporter.otlp.logs.headers":

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

-16
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,13 @@
1414

1515
public class SpringResourceProvider implements ResourceProvider {
1616

17-
private final OtelSpringResourceProperties otelSpringResourceProperties;
18-
private final OtelResourceProperties otelResourceProperties;
19-
20-
public SpringResourceProvider(
21-
OtelSpringResourceProperties otelSpringResourceProperties,
22-
OtelResourceProperties otelResourceProperties) {
23-
this.otelSpringResourceProperties = otelSpringResourceProperties;
24-
this.otelResourceProperties = otelResourceProperties;
25-
}
26-
2717
@Override
2818
public Resource createResource(ConfigProperties configProperties) {
2919
AttributesBuilder attributesBuilder = Attributes.builder();
3020
String springApplicationName = configProperties.getString("spring.application.name");
3121
if (springApplicationName != null) {
3222
attributesBuilder.put(ResourceAttributes.SERVICE_NAME, springApplicationName);
3323
}
34-
otelSpringResourceProperties.getAttributes().forEach(attributesBuilder::put);
35-
otelResourceProperties.getAttributes().forEach(attributesBuilder::put);
36-
String applicationName = configProperties.getString("otel.service.name");
37-
if (applicationName != null) {
38-
attributesBuilder.put(ResourceAttributes.SERVICE_NAME, applicationName);
39-
}
4024
return Resource.create(attributesBuilder.build());
4125
}
4226
}

instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfigurationTest.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ void shouldDetermineServiceNameByOtelServiceName() {
140140
.withConfiguration(
141141
AutoConfigurations.of(
142142
OtelResourceAutoConfiguration.class, OpenTelemetryAutoConfiguration.class))
143-
.withPropertyValues("otel.springboot.resource.attributes.service.name=otel-name-backend")
143+
.withPropertyValues("otel.resource.attributes.service.name=otel-name-backend")
144144
.run(
145145
context -> {
146146
Resource otelResource = context.getBean("otelResource", Resource.class);
@@ -157,9 +157,9 @@ void shouldInitializeAttributes() {
157157
AutoConfigurations.of(
158158
OtelResourceAutoConfiguration.class, OpenTelemetryAutoConfiguration.class))
159159
.withPropertyValues(
160-
"otel.springboot.resource.attributes.xyz=foo",
161-
"otel.springboot.resource.attributes.environment=dev",
162-
"otel.springboot.resource.attributes.service.instance.id=id-example")
160+
"otel.resource.attributes.xyz=foo",
161+
"otel.resource.attributes.environment=dev",
162+
"otel.resource.attributes.service.instance.id=id-example")
163163
.run(
164164
context -> {
165165
Resource otelResource = context.getBean("otelResource", Resource.class);

0 commit comments

Comments
 (0)