Skip to content

Commit 1191be5

Browse files
Ensure auto-detected service name is the same for every process in the same build
1 parent 5bfab65 commit 1191be5

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/domain/buildsystem/BuildSystemModuleImpl.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import datadog.trace.api.civisibility.domain.JavaAgent;
1313
import datadog.trace.api.civisibility.telemetry.CiVisibilityMetricCollector;
1414
import datadog.trace.api.config.CiVisibilityConfig;
15+
import datadog.trace.api.config.GeneralConfig;
1516
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
1617
import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext;
1718
import datadog.trace.bootstrap.instrumentation.api.Tags;
@@ -99,6 +100,8 @@ public <T extends CoverageCalculator> BuildSystemModuleImpl(
99100
settings =
100101
new BuildModuleSettings(
101102
getPropertiesPropagatedToChildProcess(
103+
config.getServiceName(),
104+
config.isServiceNameSetByUser(),
102105
moduleName,
103106
startCommand,
104107
classpath,
@@ -125,6 +128,8 @@ public void set(Map<String, String> carrier, String key, String value) {
125128
}
126129

127130
private Map<String, String> getPropertiesPropagatedToChildProcess(
131+
String serviceName,
132+
boolean userProvidedServiceName,
128133
String moduleName,
129134
String startCommand,
130135
@Nullable Collection<Path> classpath,
@@ -190,6 +195,11 @@ private Map<String, String> getPropertiesPropagatedToChildProcess(
190195
CiVisibilityConfig.CIVISIBILITY_INJECTED_TRACER_VERSION),
191196
TracerVersion.TRACER_VERSION);
192197

198+
propagatedSystemProperties.put(
199+
Strings.propertyNameToSystemPropertyName(GeneralConfig.SERVICE_NAME), serviceName);
200+
propagatedSystemProperties.put(
201+
Strings.propertyNameToSystemPropertyName(GeneralConfig.SERVICE_NAME_SET_BY_USER),
202+
String.valueOf(userProvidedServiceName));
193203
propagatedSystemProperties.put(
194204
Strings.propertyNameToSystemPropertyName(CiVisibilityConfig.CIVISIBILITY_MODULE_NAME),
195205
moduleName);

dd-trace-api/src/main/java/datadog/trace/api/config/GeneralConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public final class GeneralConfig {
2121
public static final String SITE = "site";
2222

2323
public static final String SERVICE_NAME = "service.name";
24+
public static final String SERVICE_NAME_SET_BY_USER = "service.name.set.by.user";
2425
public static final String ENV = "env";
2526
public static final String VERSION = "version";
2627
public static final String PRIMARY_TAG = "primary.tag";

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,8 @@ private Config(final ConfigProvider configProvider, final InstrumenterConfig ins
631631
serviceNameSetByUser = false;
632632
serviceName = configProvider.getString(SERVICE, DEFAULT_SERVICE_NAME, SERVICE_NAME);
633633
} else {
634-
serviceNameSetByUser = true;
634+
// might be an auto-detected name propagated from instrumented parent process
635+
serviceNameSetByUser = configProvider.getBoolean(SERVICE_NAME_SET_BY_USER, true);
635636
serviceName = userProvidedServiceName;
636637
}
637638

0 commit comments

Comments
 (0)