From 0645c51525e5e4384722d08260caa451f7743fef Mon Sep 17 00:00:00 2001 From: "datadog-datadog-prod-us1[bot]" <88084959+datadog-datadog-prod-us1[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 18:08:23 +0000 Subject: [PATCH 1/3] Pre-construct TagMap.Entry objects for tags Co-authored-by: dougqh --- .../core/tagprocessor/InternalTagsAdder.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java b/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java index 6fed132a68f..bb89129a6c0 100644 --- a/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java +++ b/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java @@ -11,12 +11,20 @@ import javax.annotation.Nullable; public final class InternalTagsAdder extends TagsPostProcessor { - private final UTF8BytesString ddService; - private final UTF8BytesString version; + private final String ddService; + private final TagMap.Entry ddServiceEntry; + private final TagMap.Entry versionEntry; public InternalTagsAdder(@Nullable final String ddService, @Nullable final String version) { - this.ddService = ddService != null ? UTF8BytesString.create(ddService) : null; - this.version = version != null && !version.isEmpty() ? UTF8BytesString.create(version) : null; + this.ddService = ddService; + this.ddServiceEntry = + ddService != null + ? TagMap.Entry.create(DDTags.BASE_SERVICE, UTF8BytesString.create(ddService)) + : null; + this.versionEntry = + version != null && !version.isEmpty() + ? TagMap.Entry.create(VERSION, UTF8BytesString.create(version)) + : null; } @Override @@ -28,12 +36,12 @@ public void processTags( if (!ddService.toString().equalsIgnoreCase(spanContext.getServiceName())) { // service name != DD_SERVICE - unsafeTags.set(DDTags.BASE_SERVICE, ddService); + unsafeTags.set(ddServiceEntry); } else { // as per config consistency, the version tag is added across tracers only if // the service name is DD_SERVICE and version tag is not manually set - if (version != null && !unsafeTags.containsKey(VERSION)) { - unsafeTags.set(VERSION, version); + if (versionEntry != null && !unsafeTags.containsKey(VERSION)) { + unsafeTags.set(versionEntry); } } } From d883e591829b5db2330ffe959450e9b20f425bd0 Mon Sep 17 00:00:00 2001 From: Douglas Q Hawkins Date: Fri, 27 Mar 2026 14:16:11 -0400 Subject: [PATCH 2/3] Revisiting the handling of empty ddService --- .../trace/core/tagprocessor/InternalTagsAdder.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java b/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java index bb89129a6c0..85f854a92c6 100644 --- a/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java +++ b/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java @@ -11,32 +11,30 @@ import javax.annotation.Nullable; public final class InternalTagsAdder extends TagsPostProcessor { - private final String ddService; - private final TagMap.Entry ddServiceEntry; + private final TagMap.Entry baseServiceEntry; private final TagMap.Entry versionEntry; public InternalTagsAdder(@Nullable final String ddService, @Nullable final String version) { - this.ddService = ddService; - this.ddServiceEntry = + this.baseServiceEntry = ddService != null ? TagMap.Entry.create(DDTags.BASE_SERVICE, UTF8BytesString.create(ddService)) : null; this.versionEntry = version != null && !version.isEmpty() - ? TagMap.Entry.create(VERSION, UTF8BytesString.create(version)) + ? TagMap.Entry.create(VERSION, UTF8BytesString.create(version)) : null; } @Override public void processTags( TagMap unsafeTags, DDSpanContext spanContext, List spanLinks) { - if (spanContext == null || ddService == null) { + if (spanContext == null || baseServiceEntry == null) { return; } - if (!ddService.toString().equalsIgnoreCase(spanContext.getServiceName())) { + if (!baseServiceEntry.stringValue().equalsIgnoreCase(spanContext.getServiceName())) { // service name != DD_SERVICE - unsafeTags.set(ddServiceEntry); + unsafeTags.set(baseServiceEntry); } else { // as per config consistency, the version tag is added across tracers only if // the service name is DD_SERVICE and version tag is not manually set From d650b780b4d75b0b65cd9ffdb79928ccf3ef533a Mon Sep 17 00:00:00 2001 From: Douglas Q Hawkins Date: Fri, 27 Mar 2026 14:19:24 -0400 Subject: [PATCH 3/3] spotless --- .../java/datadog/trace/core/tagprocessor/InternalTagsAdder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java b/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java index 85f854a92c6..6e6a6397d1e 100644 --- a/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java +++ b/dd-trace-core/src/main/java/datadog/trace/core/tagprocessor/InternalTagsAdder.java @@ -21,7 +21,7 @@ public InternalTagsAdder(@Nullable final String ddService, @Nullable final Strin : null; this.versionEntry = version != null && !version.isEmpty() - ? TagMap.Entry.create(VERSION, UTF8BytesString.create(version)) + ? TagMap.Entry.create(VERSION, UTF8BytesString.create(version)) : null; }