Skip to content

Commit 081415e

Browse files
always need map converter (#13224)
Co-authored-by: Jean Bisutti <[email protected]>
1 parent 36e1e14 commit 081415e

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

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

+14-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import io.opentelemetry.api.OpenTelemetry;
99
import io.opentelemetry.api.trace.TracerProvider;
10-
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.MapConverter;
10+
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.OtelMapConverter;
1111
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.SdkEnabled;
1212
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.OtelResourceProperties;
1313
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.OtelSpringProperties;
@@ -64,9 +64,9 @@ static class OpenTelemetrySdkConfig {
6464

6565
@Bean
6666
@ConfigurationPropertiesBinding
67-
public MapConverter mapConverter() {
67+
public OtelMapConverter otelMapConverter() {
6868
// needed for otlp exporter headers and OtelResourceProperties
69-
return new MapConverter();
69+
return new OtelMapConverter();
7070
}
7171

7272
@Bean
@@ -133,6 +133,17 @@ public ConfigProperties otelProperties(
133133
@ConditionalOnProperty(name = "otel.sdk.disabled", havingValue = "true")
134134
static class DisabledOpenTelemetrySdkConfig {
135135

136+
@Bean
137+
@ConfigurationPropertiesBinding
138+
// Duplicated in OpenTelemetrySdkConfig and DisabledOpenTelemetrySdkConfig to not expose the
139+
// converter in the public API
140+
public OtelMapConverter otelMapConverter() {
141+
// needed for otlp exporter headers and OtelResourceProperties
142+
// we need this converter, even if the SDK is disabled,
143+
// because the properties are parsed before the SDK is disabled
144+
return new OtelMapConverter();
145+
}
146+
136147
@Bean
137148
public OpenTelemetry openTelemetry() {
138149
return OpenTelemetry.noop();
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
2121
* at any time.
2222
*/
23-
public class MapConverter implements Converter<String, Map<String, String>> {
23+
public class OtelMapConverter implements Converter<String, Map<String, String>> {
2424

2525
public static final String KEY = "key";
2626

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,9 @@ void shouldInitializeSdkWhenNotDisabled() {
156156
void shouldInitializeNoopOpenTelemetryWhenSdkIsDisabled() {
157157
this.contextRunner
158158
.withConfiguration(AutoConfigurations.of(OpenTelemetryAutoConfiguration.class))
159-
.withPropertyValues("otel.sdk.disabled=true")
159+
.withPropertyValues(
160+
"otel.sdk.disabled=true",
161+
"otel.resource.attributes=service.name=workflow-backend-dev,service.version=3c8f9ce9")
160162
.run(
161163
context ->
162164
assertThat(context).getBean("openTelemetry").isEqualTo(OpenTelemetry.noop()));

0 commit comments

Comments
 (0)