Skip to content

Commit 6f45f71

Browse files
committed
use declarative config properties
1 parent 81398c4 commit 6f45f71

File tree

3 files changed

+46
-51
lines changed

3 files changed

+46
-51
lines changed

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

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import java.util.HashMap;
99
import java.util.Map;
10-
import java.util.Objects;
1110
import org.springframework.core.env.Environment;
1211

1312
/**
@@ -39,11 +38,39 @@ public static Boolean isDeclarativeConfig(Environment environment) {
3938

4039
public static String translatePropertyName(Environment environment, String name) {
4140
if (isDeclarativeConfig(environment)) {
42-
return Objects.requireNonNull(
43-
DECLARATIVE_CONFIG_PROPERTY_MAPPING.get(name),
41+
String value = DECLARATIVE_CONFIG_PROPERTY_MAPPING.get(name);
42+
if (value != null) {
43+
return value;
44+
}
45+
if (name.startsWith("otel.instrumentation.")) {
46+
return String.format(
47+
"otel.instrumentation/development.java.%s",
48+
name.substring("otel.instrumentation.".length()));
49+
}
50+
51+
throw new IllegalStateException(
4452
"No mapping found for property name: " + name + ". Please report this bug.");
4553
} else {
4654
return name;
4755
}
4856
}
57+
58+
public static boolean isInstrumentationEnabled(
59+
Environment environment, String name, boolean defaultValue) {
60+
Boolean explicit =
61+
environment.getProperty(
62+
String.format(
63+
translatePropertyName(environment, "otel.instrumentation.%s.enabled"), name),
64+
Boolean.class);
65+
if (explicit != null) {
66+
return explicit;
67+
}
68+
if (!defaultValue) {
69+
return false;
70+
}
71+
return environment.getProperty(
72+
translatePropertyName(environment, "otel.instrumentation.common.default-enabled"),
73+
Boolean.class,
74+
true);
75+
}
4976
}

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

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,10 @@
55

66
package io.opentelemetry.instrumentation.spring.autoconfigure.internal;
77

8-
import static io.opentelemetry.instrumentation.spring.autoconfigure.internal.EarlyConfig.translatePropertyName;
9-
108
import java.util.Map;
119
import java.util.Objects;
1210
import org.springframework.context.annotation.Condition;
1311
import org.springframework.context.annotation.ConditionContext;
14-
import org.springframework.core.env.Environment;
1512
import org.springframework.core.type.AnnotatedTypeMetadata;
1613

1714
/**
@@ -26,23 +23,9 @@ public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata)
2623
Objects.requireNonNull(
2724
metadata.getAnnotationAttributes(ConditionalOnEnabledInstrumentation.class.getName()));
2825

29-
Environment environment = context.getEnvironment();
30-
31-
String name =
32-
String.format(
33-
translatePropertyName(environment, "otel.instrumentation.%s.enabled"),
34-
attributes.get("module"));
35-
Boolean explicit = environment.getProperty(name, Boolean.class);
36-
if (explicit != null) {
37-
return explicit;
38-
}
39-
boolean defaultValue = (boolean) attributes.get("enabledByDefault");
40-
if (!defaultValue) {
41-
return false;
42-
}
43-
return environment.getProperty(
44-
translatePropertyName(environment, "otel.instrumentation.common.default-enabled"),
45-
Boolean.class,
46-
true);
26+
return EarlyConfig.isInstrumentationEnabled(
27+
context.getEnvironment(),
28+
attributes.get("module").toString(),
29+
(boolean) attributes.get("enabledByDefault"));
4730
}
4831
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderInstaller.java

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.slf4j.Logger;
1717
import org.slf4j.LoggerFactory;
1818
import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
19+
import org.springframework.core.env.ConfigurableEnvironment;
1920

2021
class LogbackAppenderInstaller {
2122

@@ -41,25 +42,18 @@ static void install(ApplicationEnvironmentPreparedEvent applicationEnvironmentPr
4142
}
4243
}
4344

44-
private static boolean isLogbackAppenderAddable(
45-
ApplicationEnvironmentPreparedEvent applicationEnvironmentPreparedEvent) {
46-
return isAppenderAddable(
47-
applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-appender.enabled");
45+
private static boolean isLogbackAppenderAddable(ApplicationEnvironmentPreparedEvent event) {
46+
return isAppenderAddable(event, "logback-appender");
4847
}
4948

50-
private static boolean isLogbackMdcAppenderAddable(
51-
ApplicationEnvironmentPreparedEvent applicationEnvironmentPreparedEvent) {
52-
return isAppenderAddable(
53-
applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-mdc.enabled");
49+
private static boolean isLogbackMdcAppenderAddable(ApplicationEnvironmentPreparedEvent event) {
50+
return isAppenderAddable(event, "logback-mdc");
5451
}
5552

56-
private static boolean isAppenderAddable(
57-
ApplicationEnvironmentPreparedEvent applicationEnvironmentPreparedEvent, String property) {
58-
boolean otelEnabled =
59-
EarlyConfig.otelEnabled(applicationEnvironmentPreparedEvent.getEnvironment());
60-
boolean logbackInstrumentationEnabled =
61-
evaluateBooleanProperty(applicationEnvironmentPreparedEvent, property, true);
62-
return otelEnabled && logbackInstrumentationEnabled;
53+
private static boolean isAppenderAddable(ApplicationEnvironmentPreparedEvent event, String name) {
54+
ConfigurableEnvironment environment = event.getEnvironment();
55+
return EarlyConfig.otelEnabled(environment)
56+
&& EarlyConfig.isInstrumentationEnabled(environment, name, true);
6357
}
6458

6559
private static void reInitializeOpenTelemetryAppender(
@@ -225,18 +219,9 @@ private static void initializeMdcAppenderFromProperties(
225219

226220
private static Boolean evaluateBooleanProperty(
227221
ApplicationEnvironmentPreparedEvent applicationEnvironmentPreparedEvent, String property) {
228-
return applicationEnvironmentPreparedEvent
229-
.getEnvironment()
230-
.getProperty(property, Boolean.class);
231-
}
232-
233-
private static boolean evaluateBooleanProperty(
234-
ApplicationEnvironmentPreparedEvent applicationEnvironmentPreparedEvent,
235-
String property,
236-
boolean defaultValue) {
237-
return applicationEnvironmentPreparedEvent
238-
.getEnvironment()
239-
.getProperty(property, Boolean.class, defaultValue);
222+
ConfigurableEnvironment environment = applicationEnvironmentPreparedEvent.getEnvironment();
223+
return environment.getProperty(
224+
EarlyConfig.translatePropertyName(environment, property), Boolean.class);
240225
}
241226

242227
private static <T> Optional<T> findAppender(Class<T> appenderClass) {

0 commit comments

Comments
 (0)