Skip to content

Commit 8fce1cb

Browse files
committed
review
1 parent 9309d82 commit 8fce1cb

File tree

4 files changed

+57
-6
lines changed

4 files changed

+57
-6
lines changed

dd-trace-core/src/main/java/datadog/trace/core/DDSpanContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -765,7 +765,7 @@ void setAllTags(final Map<String, ?> map) {
765765
}
766766
}
767767

768-
public void unsafeSetTag(final String tag, final Object value) {
768+
void unsafeSetTag(final String tag, final Object value) {
769769
unsafeTags.put(tag, value);
770770
}
771771

internal-api/build.gradle

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,6 @@ excludedClassesCoverage += [
122122
"datadog.trace.api.civisibility.CiVisibilityWellKnownTags",
123123
"datadog.trace.api.civisibility.InstrumentationBridge",
124124
"datadog.trace.api.civisibility.InstrumentationTestBridge",
125-
"datadog.trace.api.ClassloaderConfigurationOverrides",
126-
"datadog.trace.api.ClassloaderConfigurationOverrides.Lazy",
127-
"datadog.trace.api.ClassloaderConfigurationOverrides.ContextualInfo",
128125
// POJO
129126
"datadog.trace.api.git.GitInfo",
130127
"datadog.trace.api.git.GitInfoProvider",

internal-api/src/main/java/datadog/trace/api/ClassloaderConfigurationOverrides.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
public class ClassloaderConfigurationOverrides {
1616
public static final String DATADOG_TAGS_PREFIX = "datadog/tags/";
1717
public static final String DATADOG_TAGS_JNDI_PREFIX = "java:comp/env/" + DATADOG_TAGS_PREFIX;
18-
private static final boolean CAN_SPLIT_SERVICE_NAME_BY_DEPLOYMENT =
18+
// not final for testing purposes
19+
static boolean CAN_SPLIT_SERVICE_NAME_BY_DEPLOYMENT =
1920
Config.get().isJeeSplitByDeployment() && !Config.get().isServiceNameSetByUser();
2021

2122
private static class Lazy {
@@ -44,7 +45,7 @@ public Map<String, Object> getTags() {
4445
}
4546
}
4647

47-
private static Function<ClassLoader, ContextualInfo> EMPTY_CONTEXTUAL_INFO_ADDER =
48+
private static final Function<ClassLoader, ContextualInfo> EMPTY_CONTEXTUAL_INFO_ADDER =
4849
ignored -> new ContextualInfo(null);
4950

5051
private final WeakHashMap<ClassLoader, ContextualInfo> weakCache = new WeakHashMap<>();
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package datadog.trace.api
2+
3+
import datadog.trace.bootstrap.instrumentation.api.AgentSpan
4+
import datadog.trace.test.util.DDSpecification
5+
import spock.lang.Unroll
6+
7+
class ClassloaderConfigurationOverridesTest extends DDSpecification {
8+
9+
@Unroll
10+
def 'service name set = #expected when split-by-deployment enabled is #splitByDeploymentEnabled and service name manually set = #spanServiceName and contextual service name is #contextualServiceName'() {
11+
setup:
12+
injectSysConfig("dd.service", "test")
13+
def span = Mock(AgentSpan)
14+
when:
15+
ClassloaderConfigurationOverrides.CAN_SPLIT_SERVICE_NAME_BY_DEPLOYMENT = splitByDeploymentEnabled
16+
if (splitByDeploymentEnabled) {
17+
injectSysConfig("dd.trace.experimental.jee.split-by-deployment", "true")
18+
}
19+
ClassloaderConfigurationOverrides.addContextualInfo(Thread.currentThread().getContextClassLoader(),
20+
new ClassloaderConfigurationOverrides.ContextualInfo(contextualServiceName))
21+
ClassloaderConfigurationOverrides.maybeEnrichSpan(span)
22+
then:
23+
if (splitByDeploymentEnabled && contextualServiceName != null && !contextualServiceName.isEmpty()) {
24+
(1.._) * span.getServiceName()
25+
}
26+
if (expected) {
27+
1 * span.setServiceName(contextualServiceName)
28+
}
29+
30+
where:
31+
splitByDeploymentEnabled | contextualServiceName | spanServiceName | expected
32+
false | null | null | false
33+
false | "test" | null | false
34+
false | null | "test" | false
35+
true | null | null | false
36+
true | "" | null | false
37+
true | "cont" | null | true
38+
true | "" | "test" | false
39+
true | null | "test" | false
40+
true | "test" | "test" | false
41+
true | "cont" | "test" | true
42+
}
43+
44+
def "enrich should set tags when present"() {
45+
def span = Mock(AgentSpan)
46+
when:
47+
ClassloaderConfigurationOverrides.getOrAddEmpty(Thread.currentThread().getContextClassLoader()).addTag("key", "value")
48+
ClassloaderConfigurationOverrides.maybeEnrichSpan(span)
49+
then:
50+
1 * span.setTag("key", "value")
51+
_ * span.getServiceName()
52+
}
53+
}

0 commit comments

Comments
 (0)