Skip to content

Commit 25344a8

Browse files
authored
Cleanup of the AppD related code. (#2609)
Removed dead code Updated use of deprecated resource attribute
1 parent 94071cf commit 25344a8

File tree

6 files changed

+77
-178
lines changed

6 files changed

+77
-178
lines changed

custom/src/main/java/com/splunk/opentelemetry/appd/AppdBonusConfigurationCustomizerProvider.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@
1616

1717
package com.splunk.opentelemetry.appd;
1818

19-
import static io.opentelemetry.sdk.autoconfigure.AdditionalPropertiesUtil.getAdditionalPropertyOrDefault;
19+
import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty;
2020

2121
import com.google.auto.service.AutoService;
22+
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
23+
import io.opentelemetry.sdk.autoconfigure.AutoConfigureUtil;
2224
import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigurationCustomizer;
2325
import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigurationCustomizerProvider;
24-
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalLanguageSpecificInstrumentationPropertyModel;
2526
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel;
2627
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.PropagatorModel;
2728
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanProcessorModel;
2829
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.TracerProviderModel;
29-
import java.util.Map;
3030

3131
@AutoService(DeclarativeConfigurationCustomizerProvider.class)
3232
public final class AppdBonusConfigurationCustomizerProvider
@@ -57,15 +57,12 @@ public void customize(DeclarativeConfigurationCustomizer autoConfiguration) {
5757
}
5858

5959
private static boolean isFeatureEnabled(OpenTelemetryConfigurationModel model) {
60-
if (model.getInstrumentationDevelopment() == null
61-
|| model.getInstrumentationDevelopment().getJava() == null) {
62-
return false;
63-
}
64-
65-
Map<String, ExperimentalLanguageSpecificInstrumentationPropertyModel> properties =
66-
model.getInstrumentationDevelopment().getJava().getAdditionalProperties();
60+
DeclarativeConfigProperties config = AutoConfigureUtil.getInstrumentationConfig(model);
6761

68-
return getAdditionalPropertyOrDefault(properties, CONFIG_CISCO_CTX_ENABLED, false);
62+
return config
63+
.getStructured("cisco", empty())
64+
.getStructured("ctx", empty())
65+
.getBoolean("enabled", false);
6966
}
7067

7168
private static boolean canAddPropagator(String compositeList) {

custom/src/main/java/com/splunk/opentelemetry/appd/AppdBonusCustomizer.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@
1616

1717
package com.splunk.opentelemetry.appd;
1818

19-
import static io.opentelemetry.semconv.ServiceAttributes.SERVICE_NAME;
20-
import static io.opentelemetry.semconv.incubating.DeploymentIncubatingAttributes.DEPLOYMENT_ENVIRONMENT_NAME;
21-
2219
import com.google.auto.service.AutoService;
2320
import com.google.common.annotations.VisibleForTesting;
2421
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
@@ -57,12 +54,6 @@ void customize(AutoConfigurationCustomizer customizer, AppdBonusPropagator propa
5754
}
5855
return builder;
5956
});
60-
customizer.addResourceCustomizer(
61-
(resource, configProperties) -> {
62-
propagator.setEnvironmentName(resource.getAttribute(DEPLOYMENT_ENVIRONMENT_NAME));
63-
propagator.setServiceName(resource.getAttribute(SERVICE_NAME));
64-
return resource;
65-
});
6657
}
6758

6859
private static boolean featureEnabled(ConfigProperties config) {

custom/src/main/java/io/opentelemetry/sdk/autoconfigure/AdditionalPropertiesUtil.java

Lines changed: 0 additions & 131 deletions
This file was deleted.

custom/src/main/java/io/opentelemetry/sdk/autoconfigure/AutoConfigureUtil.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
2929
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.DistributionPropertyModel;
3030
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel;
3131
import io.opentelemetry.sdk.resources.Resource;
32+
import java.util.Map;
3233
import java.util.logging.Logger;
34+
import java.util.stream.Collectors;
3335

3436
/**
3537
* This class is a hack to allows us to call getResource() and getConfig() on the
@@ -79,6 +81,29 @@ public static DeclarativeConfigProperties getDistributionConfig(
7981
splunkModel.getAdditionalProperties(), componentLoader);
8082
}
8183

84+
public static DeclarativeConfigProperties getInstrumentationConfig(
85+
OpenTelemetryConfigurationModel model) {
86+
if (model.getInstrumentationDevelopment() == null
87+
|| model.getInstrumentationDevelopment().getJava() == null) {
88+
return empty();
89+
}
90+
91+
Map<String, Object> properties =
92+
model
93+
.getInstrumentationDevelopment()
94+
.getJava()
95+
.getAdditionalProperties()
96+
.entrySet()
97+
.stream()
98+
.collect(
99+
Collectors.toMap(Map.Entry::getKey, v -> v.getValue().getAdditionalProperties()));
100+
101+
ComponentLoader componentLoader =
102+
ComponentLoader.forClassLoader(AutoConfigureUtil.class.getClassLoader());
103+
104+
return YamlDeclarativeConfigProperties.create(properties, componentLoader);
105+
}
106+
82107
public static Resource getResource(AutoConfiguredOpenTelemetrySdk sdk) {
83108
return sdk.getResource();
84109
}

custom/src/test/java/com/splunk/opentelemetry/appd/AppdBeforeAgentListenerTest.java

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,21 @@
1818

1919
import static com.splunk.opentelemetry.appd.AppdBonusPropagator.CTX_HEADER_ENV;
2020
import static com.splunk.opentelemetry.appd.AppdBonusPropagator.CTX_HEADER_SERVICE;
21+
import static io.opentelemetry.semconv.ServiceAttributes.SERVICE_NAME;
22+
import static io.opentelemetry.semconv.incubating.DeploymentIncubatingAttributes.DEPLOYMENT_ENVIRONMENT_NAME;
2123
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
24+
import static org.mockito.Mockito.mock;
25+
import static org.mockito.Mockito.when;
2226

2327
import com.splunk.opentelemetry.testing.declarativeconfig.DeclarativeConfigTestUtil;
28+
import io.opentelemetry.api.common.Attributes;
2429
import io.opentelemetry.context.Context;
2530
import io.opentelemetry.instrumentation.testing.internal.AutoCleanupExtension;
31+
import io.opentelemetry.sdk.autoconfigure.AutoConfigureUtil;
2632
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
33+
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
34+
import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties;
35+
import io.opentelemetry.sdk.resources.Resource;
2736
import java.io.IOException;
2837
import java.nio.file.Path;
2938
import java.util.HashMap;
@@ -36,7 +45,7 @@ class AppdBeforeAgentListenerTest {
3645
@RegisterExtension final AutoCleanupExtension autoCleanup = AutoCleanupExtension.create();
3746

3847
@Test
39-
void shouldSetPropagatorProperties(@TempDir Path tempDir) throws IOException {
48+
void shouldSetPropagatorProperties_declarativeConfig(@TempDir Path tempDir) throws IOException {
4049
// given
4150
AppdBeforeAgentListener agentListener = new AppdBeforeAgentListener();
4251
var yaml =
@@ -76,4 +85,38 @@ void shouldSetPropagatorProperties(@TempDir Path tempDir) throws IOException {
7685
assertThat(carrier.get(CTX_HEADER_SERVICE)).isEqualTo("test-service");
7786
assertThat(carrier.get(CTX_HEADER_ENV)).isEqualTo("test-deployment-env");
7887
}
88+
89+
@Test
90+
void shouldSetPropagatorProperties_envVarConfig() {
91+
// given
92+
AppdBeforeAgentListener agentListener = new AppdBeforeAgentListener();
93+
AutoConfiguredOpenTelemetrySdk sdkMock = mock(AutoConfiguredOpenTelemetrySdk.class);
94+
ConfigProperties mockConfigProperties =
95+
DefaultConfigProperties.createFromMap(Map.of("cisco.ctx.enabled", Boolean.TRUE.toString()));
96+
Resource resource =
97+
Resource.create(
98+
Attributes.of(
99+
DEPLOYMENT_ENVIRONMENT_NAME, "test-deployment-env", SERVICE_NAME, "test-service"));
100+
when(AutoConfigureUtil.getConfig(sdkMock)).thenReturn(mockConfigProperties);
101+
when(AutoConfigureUtil.getResource(sdkMock)).thenReturn(resource);
102+
103+
// when
104+
agentListener.beforeAgent(sdkMock);
105+
106+
// then
107+
AppdBonusPropagator propagator = AppdBonusPropagator.getInstance();
108+
Map<String, String> carrier = new HashMap<>();
109+
Context context = Context.current();
110+
propagator.inject(
111+
context,
112+
carrier,
113+
(map, key, value) -> {
114+
if (map != null) {
115+
map.put(key, value);
116+
}
117+
});
118+
119+
assertThat(carrier.get(CTX_HEADER_SERVICE)).isEqualTo("test-service");
120+
assertThat(carrier.get(CTX_HEADER_ENV)).isEqualTo("test-deployment-env");
121+
}
79122
}

custom/src/test/java/com/splunk/opentelemetry/appd/AppdBonusCustomizerTest.java

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
import static com.splunk.opentelemetry.appd.AppdBonusSpanProcessor.APPD_ATTR_APP;
2323
import static com.splunk.opentelemetry.appd.AppdBonusSpanProcessor.APPD_ATTR_BT;
2424
import static com.splunk.opentelemetry.appd.AppdBonusSpanProcessor.APPD_ATTR_TIER;
25-
import static io.opentelemetry.semconv.ServiceAttributes.SERVICE_NAME;
26-
import static io.opentelemetry.semconv.incubating.DeploymentIncubatingAttributes.DEPLOYMENT_ENVIRONMENT_NAME;
2725
import static org.assertj.core.api.Assertions.assertThat;
2826
import static org.mockito.ArgumentMatchers.any;
2927
import static org.mockito.Mockito.mock;
@@ -35,7 +33,6 @@
3533
import io.opentelemetry.context.Context;
3634
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
3735
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
38-
import io.opentelemetry.sdk.resources.Resource;
3936
import io.opentelemetry.sdk.trace.ReadWriteSpan;
4037
import io.opentelemetry.sdk.trace.SdkTracerProviderBuilder;
4138
import io.opentelemetry.sdk.trace.SpanProcessor;
@@ -57,7 +54,6 @@ class AppdBonusCustomizerTest {
5754
@Mock Context context;
5855
@Mock AppdBonusPropagator propagator;
5956
@Mock SpanProcessor defaultSpanProcessor;
60-
@Mock Resource resource;
6157

6258
@Test
6359
void customizeEnabled() {
@@ -66,8 +62,6 @@ void customizeEnabled() {
6662
when(context.get(CONTEXT_KEY)).thenReturn(appdContext);
6763
when(config.getBoolean("cisco.ctx.enabled", false)).thenReturn(true);
6864
when(config.getList("otel.propagators", DEFAULT_PROPAGATORS)).thenReturn(DEFAULT_PROPAGATORS);
69-
when(resource.getAttribute(SERVICE_NAME)).thenReturn("amazingService");
70-
when(resource.getAttribute(DEPLOYMENT_ENVIRONMENT_NAME)).thenReturn("amazingEnv");
7165

7266
AppdBonusCustomizer testClass = new AppdBonusCustomizer();
7367
testClass.customize(customizer, propagator);
@@ -76,10 +70,6 @@ void customizeEnabled() {
7670
ArgumentCaptor.forClass(Function.class);
7771
verify(customizer).addPropertiesCustomizer(pcCaptor.capture());
7872

79-
ArgumentCaptor<BiFunction<Resource, ConfigProperties, Resource>> rcCaptor =
80-
ArgumentCaptor.forClass(BiFunction.class);
81-
verify(customizer).addResourceCustomizer(rcCaptor.capture());
82-
8373
ArgumentCaptor<BiFunction<SdkTracerProviderBuilder, ConfigProperties, SdkTracerProviderBuilder>>
8474
tpcCaptor = ArgumentCaptor.forClass(BiFunction.class);
8575
verify(customizer).addTracerProviderCustomizer(tpcCaptor.capture());
@@ -90,11 +80,6 @@ void customizeEnabled() {
9080
defaultSpanProcessor.onStart(mock(), mock());
9181
verify(defaultSpanProcessor).onStart(any(), any());
9282

93-
Resource res = rcCaptor.getValue().apply(resource, config);
94-
assertThat(res).isSameAs(resource);
95-
verify(propagator).setServiceName("amazingService");
96-
verify(propagator).setEnvironmentName("amazingEnv");
97-
9883
SdkTracerProviderBuilder builder = mock();
9984
tpcCaptor.getValue().apply(builder, config);
10085
ArgumentCaptor<SpanProcessor> spCapture = ArgumentCaptor.forClass(SpanProcessor.class);
@@ -116,8 +101,6 @@ void customizeEnabled() {
116101
@Test
117102
void customizeNotEnabled() {
118103
when(config.getBoolean("cisco.ctx.enabled", false)).thenReturn(false);
119-
when(resource.getAttribute(SERVICE_NAME)).thenReturn("amazingService");
120-
when(resource.getAttribute(DEPLOYMENT_ENVIRONMENT_NAME)).thenReturn("amazingEnv");
121104

122105
AppdBonusCustomizer testClass = new AppdBonusCustomizer();
123106
testClass.customize(customizer, propagator);
@@ -126,10 +109,6 @@ void customizeNotEnabled() {
126109
ArgumentCaptor.forClass(Function.class);
127110
verify(customizer).addPropertiesCustomizer(pcCaptor.capture());
128111

129-
ArgumentCaptor<BiFunction<Resource, ConfigProperties, Resource>> rcCaptor =
130-
ArgumentCaptor.forClass(BiFunction.class);
131-
verify(customizer).addResourceCustomizer(rcCaptor.capture());
132-
133112
ArgumentCaptor<BiFunction<SdkTracerProviderBuilder, ConfigProperties, SdkTracerProviderBuilder>>
134113
tpcCaptor = ArgumentCaptor.forClass(BiFunction.class);
135114
verify(customizer).addTracerProviderCustomizer(tpcCaptor.capture());
@@ -140,11 +119,6 @@ void customizeNotEnabled() {
140119
defaultSpanProcessor.onStart(mock(), mock());
141120
verify(defaultSpanProcessor).onStart(any(), any());
142121

143-
Resource res = rcCaptor.getValue().apply(resource, config);
144-
assertThat(res).isSameAs(resource);
145-
verify(propagator).setServiceName("amazingService");
146-
verify(propagator).setEnvironmentName("amazingEnv");
147-
148122
SdkTracerProviderBuilder builder = mock();
149123
tpcCaptor.getValue().apply(builder, config);
150124
verify(builder, never()).addSpanProcessor(any());

0 commit comments

Comments
 (0)