Skip to content

Commit

Permalink
dd_service override
Browse files Browse the repository at this point in the history
  • Loading branch information
mhlidd committed Jan 28, 2025
1 parent c8533ce commit 6856415
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 27 deletions.
3 changes: 3 additions & 0 deletions internal-api/src/main/java/datadog/trace/api/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -746,6 +746,9 @@ private Config(final ConfigProvider configProvider, final InstrumenterConfig ins
{
final Map<String, String> tags = new HashMap<>(configProvider.getMergedMap(GLOBAL_TAGS));
tags.putAll(configProvider.getMergedMap(TRACE_TAGS, TAGS));
if (serviceNameSetByUser) { // prioritize service name set by DD_SERVICE over DD_TAGS config
tags.remove("service");
}
this.tags = getMapWithPropertiesDefinedByEnvironment(tags, ENV, VERSION);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package datadog.trace.bootstrap.config.provider;

import datadog.trace.util.Strings;
import java.util.Arrays;
import java.util.Map;

public class AgentArgsInjector {
Expand All @@ -12,8 +11,7 @@ public class AgentArgsInjector {
* @param agentArgs Agent arguments to be parsed and set
*/
public static void injectAgentArgsConfig(String agentArgs) {
Map<String, String> args =
ConfigConverter.parseMap(agentArgs, "javaagent arguments", '=');
Map<String, String> args = ConfigConverter.parseMap(agentArgs, "javaagent arguments", '=');
injectAgentArgsConfig(args);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,23 +68,17 @@ static List<String> parseList(final String str, final String separator) {

@Nonnull
static Map<String, String> parseMap(final String str, final String settingName) {
if (settingName.equals("trace.tags")){
return parseTraceTagsMap(str,
settingName,
':', Arrays.asList(',', ' '));
} else{
return parseMap(
str,
settingName,
':');
if (settingName.equals(
"trace.tags")) { // if we are parsing dd.tags, use the tags specific parser
return parseTraceTagsMap(str, settingName, ':', Arrays.asList(',', ' '));
} else {
return parseMap(str, settingName, ':');
}
}

@Nonnull
static Map<String, String> parseMap(
final String str,
final String settingName,
final char keyValueSeparator) {
final String str, final String settingName, final char keyValueSeparator) {
// If we ever want to have default values besides an empty map, this will need to change.
String trimmed = Strings.trim(str);
if (trimmed.isEmpty()) {
Expand Down Expand Up @@ -149,11 +143,7 @@ static Map<String, String> parseOrderedMap(final String str, final String settin
return Collections.emptyMap();
}
Map<String, String> map = new LinkedHashMap<>();
loadMap(
map,
trimmed,
settingName,
':');
loadMap(map, trimmed, settingName, ':');
return map;
}

Expand All @@ -163,7 +153,6 @@ public BadFormatException(String message) {
}
}


private static void loadMap(
Map<String, String> map, String str, String settingName, char keyValueSeparator) {
// we know that the str is trimmed and rely on that there is no leading/trailing whitespace
Expand Down Expand Up @@ -233,7 +222,6 @@ private static void loadMap(
}
}


private static void loadTraceTagsMap(
Map<String, String> map,
String str,
Expand Down
23 changes: 18 additions & 5 deletions internal-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -1785,6 +1785,19 @@ class ConfigTest extends DDSpecification {
'service.version': 'my-svc-vers']
}

def "service name prioritizes values from DD_SERVICE over tags"() {
setup:
System.setProperty(PREFIX + TAGS, "service:service-name-from-tags")
System.setProperty(PREFIX + SERVICE, "service-name-from-dd-service")

when:
def config = new Config()

then:
config.serviceName == "service-name-from-dd-service"
!config.mergedSpanTags.containsKey("service")
}

def "DD_SERVICE precedence over 'dd.service.name' java property is set; 'dd.service' overwrites DD_SERVICE"() {
setup:
environmentVariables.set(DD_SERVICE_NAME_ENV, "dd-service-name-env-var")
Expand All @@ -1798,7 +1811,7 @@ class ConfigTest extends DDSpecification {

then:
config.serviceName == "dd-service-java-prop"
config.mergedSpanTags == [service: 'service-tag-in-dd-trace-global-tags-java-property', 'service.version': 'my-svc-vers']
config.mergedSpanTags == ['service.version': 'my-svc-vers']
config.mergedJmxTags == [(RUNTIME_ID_TAG) : config.getRuntimeId(), (SERVICE_TAG): config.serviceName,
'service.version': 'my-svc-vers']
}
Expand All @@ -1814,7 +1827,7 @@ class ConfigTest extends DDSpecification {

then:
config.serviceName == "dd-service-env-var"
config.mergedSpanTags == [service: 'service-tag-in-dd-trace-global-tags-java-property', 'service.version': 'my-svc-vers']
config.mergedSpanTags == ['service.version': 'my-svc-vers']
config.mergedJmxTags == [(RUNTIME_ID_TAG) : config.getRuntimeId(), (SERVICE_TAG): config.serviceName,
'service.version': 'my-svc-vers']
}
Expand All @@ -1830,12 +1843,12 @@ class ConfigTest extends DDSpecification {

then:
config.serviceName == "dd-service-java-prop"
config.mergedSpanTags == [service: 'service-tag-in-dd-trace-global-tags-java-property', 'service.version': 'my-svc-vers']
config.mergedSpanTags == ['service.version': 'my-svc-vers']
config.mergedJmxTags == [(RUNTIME_ID_TAG) : config.getRuntimeId(), (SERVICE_TAG): config.serviceName,
'service.version': 'my-svc-vers']
}

def "set servicenaem by DD_SERVICE"() {
def "set servicename by DD_SERVICE"() {
setup:
environmentVariables.set("DD_SERVICE", "dd-service-env-var")
System.setProperty(PREFIX + GLOBAL_TAGS, "service:service-tag-in-dd-trace-global-tags-java-property,service.version:my-svc-vers")
Expand All @@ -1846,7 +1859,7 @@ class ConfigTest extends DDSpecification {

then:
config.serviceName == "dd-service-env-var"
config.mergedSpanTags == [service: 'service-tag-in-dd-trace-global-tags-java-property', 'service.version': 'my-svc-vers']
config.mergedSpanTags == ['service.version': 'my-svc-vers']
config.mergedJmxTags == [(RUNTIME_ID_TAG) : config.getRuntimeId(), (SERVICE_TAG): config.serviceName,
'service.version': 'my-svc-vers']
}
Expand Down

0 comments on commit 6856415

Please sign in to comment.