Skip to content

Commit 346af1c

Browse files
committed
agent properties, part 1
1 parent 7c5cd56 commit 346af1c

File tree

4 files changed

+25
-14
lines changed

4 files changed

+25
-14
lines changed

javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/AgentListener.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
package io.opentelemetry.javaagent.extension;
77

88
import io.opentelemetry.api.incubator.config.ConfigProvider;
9-
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
109
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
1110
import io.opentelemetry.sdk.autoconfigure.internal.AutoConfigureUtil;
1211
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
@@ -41,11 +40,7 @@ static ConfigProperties resolveConfigProperties(
4140
ConfigProvider configProvider =
4241
AutoConfigureUtil.getConfigProvider(autoConfiguredOpenTelemetrySdk);
4342
if (configProvider != null) {
44-
DeclarativeConfigProperties instrumentationConfig = configProvider.getInstrumentationConfig();
45-
46-
if (instrumentationConfig != null) {
47-
return new DeclarativeConfigPropertiesBridge(instrumentationConfig);
48-
}
43+
return new DeclarativeConfigPropertiesBridge(configProvider);
4944
}
5045
// Should never happen
5146
throw new IllegalStateException(

javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/DeclarativeConfigPropertiesBridge.java

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

88
import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty;
99

10+
import io.opentelemetry.api.incubator.config.ConfigProvider;
1011
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
1112
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1213
import java.time.Duration;
@@ -49,18 +50,27 @@
4950
final class DeclarativeConfigPropertiesBridge implements ConfigProperties {
5051

5152
private static final String OTEL_INSTRUMENTATION_PREFIX = "otel.instrumentation.";
53+
private static final String OTEL_JAVA_AGENT_PREFIX = "otel.javaagent.";
54+
private static final String OTEL_JAVA_AGENT_ENABLED = "otel.javaagent.enabled";
5255

5356
private static final Map<String, String> MAPPING_RULES = new HashMap<>();
5457

5558
// The node at .instrumentation.java
5659
private final DeclarativeConfigProperties instrumentationJavaNode;
60+
// todo
61+
// private final DeclarativeConfigProperties instrumentationGeneralNode;
5762

5863
static {
5964
MAPPING_RULES.put("otel.instrumentation.common.default-enabled", "common.default.enabled");
6065
}
6166

62-
DeclarativeConfigPropertiesBridge(DeclarativeConfigProperties instrumentationNode) {
63-
instrumentationJavaNode = instrumentationNode.getStructured("java", empty());
67+
DeclarativeConfigPropertiesBridge(ConfigProvider configProvider) {
68+
DeclarativeConfigProperties inst = configProvider.getInstrumentationConfig();
69+
if (inst == null) {
70+
inst = DeclarativeConfigProperties.empty();
71+
}
72+
instrumentationJavaNode = inst.getStructured("java", empty());
73+
// instrumentationGeneralNode = inst.getStructured("general", empty());
6474
}
6575

6676
@Nullable
@@ -72,6 +82,10 @@ public String getString(String propertyName) {
7282
@Nullable
7383
@Override
7484
public Boolean getBoolean(String propertyName) {
85+
if (OTEL_JAVA_AGENT_ENABLED.equals(propertyName)) {
86+
// todo
87+
}
88+
7589
return getPropertyValue(propertyName, DeclarativeConfigProperties::getBoolean);
7690
}
7791

@@ -136,7 +150,8 @@ public Map<String, String> getMap(String propertyName) {
136150
@Nullable
137151
private <T> T getPropertyValue(
138152
String property, BiFunction<DeclarativeConfigProperties, String, T> extractor) {
139-
if (!property.startsWith(OTEL_INSTRUMENTATION_PREFIX)) {
153+
if (!property.startsWith(OTEL_INSTRUMENTATION_PREFIX)
154+
&& !property.startsWith(OTEL_JAVA_AGENT_PREFIX)) {
140155
return null;
141156
}
142157
// Split the remainder of the property on ".", and walk to the N-1 entry

javaagent-extension-api/src/test/java/io/opentelemetry/javaagent/extension/DeclarativeConfigPropertiesBridgeTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,14 @@ void setup() {
3333
.getClassLoader()
3434
.getResourceAsStream("config.yaml"));
3535
SdkConfigProvider configProvider = SdkConfigProvider.create(model);
36-
bridge =
37-
new DeclarativeConfigPropertiesBridge(
38-
Objects.requireNonNull(configProvider.getInstrumentationConfig()));
36+
bridge = new DeclarativeConfigPropertiesBridge(Objects.requireNonNull(configProvider));
3937

4038
OpenTelemetryConfigurationModel emptyModel =
4139
new OpenTelemetryConfigurationModel()
4240
.withAdditionalProperty("instrumentation/development", new InstrumentationModel());
4341
SdkConfigProvider emptyConfigProvider = SdkConfigProvider.create(emptyModel);
4442
emptyBridge =
45-
new DeclarativeConfigPropertiesBridge(
46-
Objects.requireNonNull(emptyConfigProvider.getInstrumentationConfig()));
43+
new DeclarativeConfigPropertiesBridge(Objects.requireNonNull(emptyConfigProvider));
4744
}
4845

4946
@Test
@@ -110,5 +107,8 @@ void getProperties() {
110107
.isEqualTo(Arrays.asList("value1", "value2"));
111108
assertThat(bridge.getMap("otel.instrumentation.other-instrumentation.map_key", expectedMap))
112109
.isEqualTo(expectedMap);
110+
111+
// todo agent properties
112+
// assertThat(bridge.getBoolean("otel.javaagent.enabled")).isFalse();
113113
}
114114
}

javaagent-extension-api/src/test/resources/config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
disabled: true
12
file_format: 0.4
23
instrumentation/development:
34
java:

0 commit comments

Comments
 (0)