Skip to content

Commit 935678f

Browse files
Refactored processTagsAndBaggage for v1 protocol.
1 parent 76d8898 commit 935678f

7 files changed

Lines changed: 32 additions & 17 deletions

File tree

dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV1.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public TraceMapperV1() {
8383
@Override
8484
public void map(List<? extends CoreSpan<?>> trace, Writable writable) {
8585
CoreSpan<?> firstSpan = trace.get(0);
86-
firstSpan.processTagsAndBaggage(spanMetadata, false);
86+
firstSpan.processTagsAndBaggage(spanMetadata, false, false);
8787
Metadata firstSpanMeta = spanMetadata.metadata;
8888

8989
// encoded fields: 1..7, but skipping #5, as not required by tracers and set by the agent.
@@ -125,7 +125,7 @@ private void encodeSpans(Writable writable, int fieldId, List<? extends CoreSpan
125125
Metadata meta = spanMetadata.metadata;
126126
for (CoreSpan<?> span : spans) {
127127
if (meta == null) {
128-
span.processTagsAndBaggage(spanMetadata, false);
128+
span.processTagsAndBaggage(spanMetadata, false, false);
129129
meta = spanMetadata.metadata;
130130
}
131131
TagMap tags = meta.getTags();

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

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,16 +91,8 @@ default <U> U unsafeGetTag(CharSequence name) {
9191

9292
void processTagsAndBaggage(MetadataConsumer consumer);
9393

94-
/**
95-
* Runs tag/baggage processing with optional serialization of span links into legacy {@code
96-
* _dd.span_links} string tag.
97-
*
98-
* <p>Callers that need structured span links can pass {@code false} and consume links from {@link
99-
* Metadata#getSpanLinks()}.
100-
*/
101-
default void processTagsAndBaggage(MetadataConsumer consumer, boolean spanLinksAsTag) {
102-
processTagsAndBaggage(consumer);
103-
}
94+
void processTagsAndBaggage(
95+
MetadataConsumer consumer, boolean injectLinksAsTags, boolean injectBaggageAsTags);
10496

10597
T setSamplingPriority(int samplingPriority, int samplingMechanism);
10698

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -769,12 +769,14 @@ public void processServiceTags() {
769769

770770
@Override
771771
public void processTagsAndBaggage(final MetadataConsumer consumer) {
772-
processTagsAndBaggage(consumer, true);
772+
processTagsAndBaggage(consumer);
773773
}
774774

775775
@Override
776-
public void processTagsAndBaggage(final MetadataConsumer consumer, boolean spanLinksAsTag) {
777-
context.processTagsAndBaggage(consumer, longRunningVersion, this, spanLinksAsTag);
776+
public void processTagsAndBaggage(
777+
final MetadataConsumer consumer, boolean injectLinksAsTags, boolean injectBaggageAsTags) {
778+
context.processTagsAndBaggage(
779+
consumer, longRunningVersion, this, injectLinksAsTags, injectBaggageAsTags);
778780
}
779781

780782
@Override

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,11 +1172,18 @@ void earlyProcessTags(AppendableSpanLinks links) {
11721172
}
11731173
}
11741174

1175+
void processTagsAndBaggage(
1176+
final MetadataConsumer consumer, int longRunningVersion, DDSpan restrictedSpan) {
1177+
processTagsAndBaggage(
1178+
consumer, longRunningVersion, restrictedSpan, injectLinksAsTags, injectBaggageAsTags);
1179+
}
1180+
11751181
void processTagsAndBaggage(
11761182
final MetadataConsumer consumer,
11771183
int longRunningVersion,
11781184
DDSpan restrictedSpan,
1179-
boolean spanLinksAsTag) {
1185+
boolean injectLinksAsTags,
1186+
boolean injectBaggageAsTags) {
11801187
// NOTE: The span is passed for the sole purpose of allowing updating & reading of the span
11811188
// links
11821189
// This is a compromise to avoid...
@@ -1187,7 +1194,7 @@ void processTagsAndBaggage(
11871194
TagsPostProcessorFactory.lazyProcessor().processTags(unsafeTags, this, restrictedSpan);
11881195

11891196
// Links
1190-
if (injectLinksAsTags || spanLinksAsTag) {
1197+
if (injectLinksAsTags) {
11911198
String linksTag = DDSpanLink.toTag(restrictedSpan.getLinks());
11921199
if (linksTag != null) {
11931200
unsafeTags.set(SPAN_LINKS, linksTag);

dd-trace-core/src/test/groovy/datadog/trace/common/metrics/SimpleSpan.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,9 @@ class SimpleSpan implements CoreSpan<SimpleSpan> {
222222
@Override
223223
void processTagsAndBaggage(MetadataConsumer consumer) {}
224224

225+
@Override
226+
void processTagsAndBaggage(MetadataConsumer consumer, boolean injectLinksAsTags, boolean injectBaggageAsTags) {}
227+
225228
@Override
226229
SimpleSpan setSamplingPriority(int samplingPriority, int samplingMechanism) {
227230
return this

dd-trace-core/src/test/groovy/datadog/trace/common/writer/TraceGenerator.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,11 @@ class TraceGenerator {
352352
consumer.accept(metadata)
353353
}
354354

355+
@Override
356+
void processTagsAndBaggage(MetadataConsumer consumer, boolean injectLinksAsTags, boolean injectBaggageAsTags) {
357+
consumer.accept(metadata)
358+
}
359+
355360
@Override
356361
PojoSpan setSamplingPriority(int samplingPriority, int samplingMechanism) {
357362
return this

dd-trace-core/src/test/groovy/datadog/trace/common/writer/ddagent/TraceMapperV1PayloadTest.groovy

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1663,6 +1663,12 @@ class TraceMapperV1PayloadTest extends DDSpecification {
16631663
processTagsAndBaggageCount++
16641664
super.processTagsAndBaggage(consumer)
16651665
}
1666+
1667+
@Override
1668+
void processTagsAndBaggage(MetadataConsumer consumer, boolean injectLinksAsTags, boolean injectBaggageAsTags) {
1669+
processTagsAndBaggageCount++
1670+
super.processTagsAndBaggage(consumer, injectLinksAsTags, injectBaggageAsTags)
1671+
}
16661672
}
16671673

16681674
private static class ByteArrayChannel implements WritableByteChannel {

0 commit comments

Comments
 (0)