Skip to content

Commit b0c18d3

Browse files
committed
use unified config bridge
1 parent dc4f216 commit b0c18d3

File tree

5 files changed

+37
-78
lines changed

5 files changed

+37
-78
lines changed

javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/internal/PropertyTranslator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.LinkedHashMap;
99
import java.util.Map;
1010

11+
@SuppressWarnings("NonApiType")
1112
class PropertyTranslator {
1213
// lookup order matters - we choose the first match
1314
private final LinkedHashMap<String, String> translationMap;

javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/internal/PropertyTranslatorBuilder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
package io.opentelemetry.javaagent.extension.internal;
77

8+
import com.google.errorprone.annotations.CanIgnoreReturnValue;
89
import java.util.LinkedHashMap;
910
import java.util.Map;
1011

@@ -18,11 +19,13 @@ public class PropertyTranslatorBuilder {
1819

1920
PropertyTranslatorBuilder() {}
2021

22+
@CanIgnoreReturnValue
2123
public PropertyTranslatorBuilder addTranslation(String propertyName, String yamlPath) {
2224
translationMap.put(propertyName, yamlPath);
2325
return this;
2426
}
2527

28+
@CanIgnoreReturnValue
2629
public PropertyTranslatorBuilder addFixedValue(String propertyName, Object value) {
2730
fixedValues.put(propertyName, value);
2831
return this;

javaagent-extension-api/src/test/java/io/opentelemetry/javaagent/extension/internal/ConfigPropertiesUtilTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.contrib.sdk.autoconfigure;
6+
package io.opentelemetry.javaagent.extension.internal;
77

88
import static org.assertj.core.api.Assertions.assertThat;
99
import static org.mockito.ArgumentMatchers.any;
@@ -13,7 +13,6 @@
1313

1414
import io.opentelemetry.api.incubator.config.ConfigProvider;
1515
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
16-
import io.opentelemetry.javaagent.extension.internal.ConfigPropertiesUtil;
1716
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
1817
import io.opentelemetry.sdk.autoconfigure.internal.AutoConfigureUtil;
1918
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;

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

Lines changed: 32 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,16 @@
44
*/
55

66
package io.opentelemetry.javaagent.extension.internal;
7+
78
import static org.assertj.core.api.Assertions.assertThat;
89

9-
import io.opentelemetry.javaagent.extension.internal.DeclarativeConfigPropertiesBridge;
1010
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1111
import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration;
1212
import io.opentelemetry.sdk.extension.incubator.fileconfig.SdkConfigProvider;
1313
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.InstrumentationModel;
1414
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel;
15-
import java.io.ByteArrayInputStream;
16-
import java.nio.charset.StandardCharsets;
1715
import java.time.Duration;
1816
import java.util.Arrays;
19-
import java.util.Collections;
2017
import java.util.HashMap;
2118
import java.util.Map;
2219
import java.util.Objects;
@@ -25,56 +22,31 @@
2522

2623
class DeclarativeConfigPropertiesBridgeTest {
2724

28-
private static final String YAML =
29-
"file_format: 0.4\n"
30-
+ "instrumentation/development:\n"
31-
+ " java:\n"
32-
+ " common:\n"
33-
+ " default-enabled: true\n"
34-
+ " runtime-telemetry:\n"
35-
+ " enabled: false\n"
36-
+ " example-instrumentation:\n"
37-
+ " string_key: value\n"
38-
+ " bool_key: true\n"
39-
+ " int_key: 1\n"
40-
+ " double_key: 1.1\n"
41-
+ " list_key:\n"
42-
+ " - value1\n"
43-
+ " - value2\n"
44-
+ " - true\n"
45-
+ " map_key:\n"
46-
+ " string_key1: value1\n"
47-
+ " string_key2: value2\n"
48-
+ " bool_key: true\n"
49-
+ " acme:\n"
50-
+ " full_name:\n"
51-
+ " preserved: true";
52-
5325
private ConfigProperties bridge;
5426
private ConfigProperties emptyBridge;
5527

5628
@BeforeEach
5729
void setup() {
58-
bridge = createBridge(Collections.emptyMap());
30+
bridge = create(ConfigPropertiesUtil.propertyTranslatorBuilder());
5931

6032
OpenTelemetryConfigurationModel emptyModel =
6133
new OpenTelemetryConfigurationModel()
6234
.withAdditionalProperty("instrumentation/development", new InstrumentationModel());
6335
SdkConfigProvider emptyConfigProvider = SdkConfigProvider.create(emptyModel);
6436
emptyBridge =
65-
DeclarativeConfigPropertiesBridge.fromInstrumentationConfig(
66-
Objects.requireNonNull(emptyConfigProvider.getInstrumentationConfig()),
67-
Collections.emptyMap());
37+
ConfigPropertiesUtil.resolveInstrumentationConfig(
38+
Objects.requireNonNull(emptyConfigProvider.getInstrumentationConfig()));
6839
}
6940

70-
private static DeclarativeConfigPropertiesBridge createBridge(
71-
Map<String, String> translationMap) {
41+
private static ConfigProperties create(PropertyTranslatorBuilder builder) {
7242
OpenTelemetryConfigurationModel model =
7343
DeclarativeConfiguration.parse(
74-
new ByteArrayInputStream(YAML.getBytes(StandardCharsets.UTF_8)));
75-
return DeclarativeConfigPropertiesBridge.fromInstrumentationConfig(
76-
Objects.requireNonNull(SdkConfigProvider.create(model).getInstrumentationConfig()),
77-
translationMap);
44+
DeclarativeConfigPropertiesBridgeTest.class
45+
.getClassLoader()
46+
.getResourceAsStream("config.yaml"));
47+
SdkConfigProvider configProvider = SdkConfigProvider.create(model);
48+
return ConfigPropertiesUtil.resolveInstrumentationConfig(
49+
configProvider.getInstrumentationConfig(), builder);
7850
}
7951

8052
@Test
@@ -88,7 +60,6 @@ void getProperties() {
8860
.isTrue();
8961

9062
// common cases
91-
assertThat(bridge.getBoolean("otel.instrumentation.common.default-enabled")).isTrue();
9263
assertThat(bridge.getBoolean("otel.instrumentation.runtime-telemetry.enabled")).isFalse();
9364

9465
// check all the types
@@ -151,23 +122,34 @@ void vendor() {
151122
}
152123

153124
@Test
154-
void translation() {
155-
DeclarativeConfigPropertiesBridge propertiesBridge =
156-
createBridge(Collections.singletonMap("acme", "acme.full_name"));
125+
void vendorTranslation() {
126+
ConfigProperties propertiesBridge =
127+
create(
128+
ConfigPropertiesUtil.propertyTranslatorBuilder()
129+
.addTranslation("acme", "acme.full_name"));
157130
assertThat(propertiesBridge.getBoolean("acme.preserved")).isTrue();
158131
}
159132

160133
@Test
161-
void common() {
162-
assertThat(bridge.getBoolean("otel.instrumentation.common.default-enabled")).isFalse();
134+
void agentCommonTranslation() {
135+
assertThat(
136+
create(
137+
ConfigPropertiesUtil.propertyTranslatorBuilder()
138+
.addTranslation(
139+
"otel.instrumentation.common.default-enabled",
140+
"common.default.enabled"))
141+
.getBoolean("otel.instrumentation.common.default-enabled"))
142+
.isFalse();
163143
}
164144

165145
@Test
166-
void agent() {
167-
Map<String, Object> earlyInitProperties = new HashMap<>();
168-
earlyInitProperties.put("otel.javaagent.debug", true);
169-
earlyInitProperties.put("otel.javaagent.logging", "application");
170-
DeclarativeConfigPropertiesBridge bridge = create(earlyInitProperties);
146+
void agentTranslation() {
147+
ConfigProperties bridge =
148+
create(
149+
ConfigPropertiesUtil.propertyTranslatorBuilder()
150+
.addTranslation("otel.javaagent", "agent")
151+
.addFixedValue("otel.javaagent.debug", true)
152+
.addFixedValue("otel.javaagent.logging", "application"));
171153

172154
assertThat(bridge.getBoolean("otel.javaagent.debug")).isTrue();
173155
assertThat(bridge.getBoolean("otel.javaagent.experimental.indy")).isTrue();

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

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,5 @@
11
file_format: 0.4
22
instrumentation/development:
3-
general:
4-
peer:
5-
service_mapping:
6-
- peer: 1.2.3.4
7-
service: FooService
8-
- peer: 2.3.4.5
9-
service: BarService
10-
http:
11-
# known_methods:
12-
# - GET
13-
# - POST
14-
# - PUT
15-
client:
16-
request_captured_headers:
17-
- Content-Type
18-
- Accept
19-
response_captured_headers:
20-
- Content-Type
21-
- Content-Encoding
22-
server:
23-
request_captured_headers:
24-
- Content-Type
25-
- Accept
26-
response_captured_headers:
27-
- Content-Type
28-
- Content-Encoding
293
java:
304
acme:
315
full_name:

0 commit comments

Comments
 (0)