diff --git a/dd-trace-core/src/main/java/datadog/trace/civisibility/writer/ddintake/CiTestCycleMapperV1.java b/dd-trace-core/src/main/java/datadog/trace/civisibility/writer/ddintake/CiTestCycleMapperV1.java index 3de19f68088..d00b10fda51 100644 --- a/dd-trace-core/src/main/java/datadog/trace/civisibility/writer/ddintake/CiTestCycleMapperV1.java +++ b/dd-trace-core/src/main/java/datadog/trace/civisibility/writer/ddintake/CiTestCycleMapperV1.java @@ -5,6 +5,7 @@ import static datadog.json.JsonMapper.toJson; import static datadog.trace.api.cache.RadixTreeCache.UNSET_STATUS; import static datadog.trace.api.civisibility.CIConstants.MAX_META_STRING_VALUE_LENGTH; +import static datadog.trace.core.CoreSpan.OWN_PROPAGATION_TAGS; import static datadog.trace.util.Strings.truncate; import datadog.communication.serialization.GrowableBuffer; @@ -222,7 +223,7 @@ public void map(List> trace, Writable writable) { writable.writeUTF8(ERROR); writable.writeInt(span.getError()); /* 7 (meta), 8 (metrics) */ - span.processTagsAndBaggage(metaWriter.withWritable(writable)); + span.processTagsAndBaggage(metaWriter.withWritable(writable), OWN_PROPAGATION_TAGS); } eventCount += trace.size(); serializationTimeMillis += (int) (System.currentTimeMillis() - serializationStartTimestamp); diff --git a/dd-trace-core/src/main/java/datadog/trace/common/writer/FileBasedPayloadDispatcher.java b/dd-trace-core/src/main/java/datadog/trace/common/writer/FileBasedPayloadDispatcher.java index 0733d9a9a04..dbed1cfe66e 100644 --- a/dd-trace-core/src/main/java/datadog/trace/common/writer/FileBasedPayloadDispatcher.java +++ b/dd-trace-core/src/main/java/datadog/trace/common/writer/FileBasedPayloadDispatcher.java @@ -3,6 +3,7 @@ import static datadog.json.JsonMapper.toJson; import static datadog.trace.api.cache.RadixTreeCache.UNSET_STATUS; import static datadog.trace.api.civisibility.CIConstants.MAX_META_STRING_VALUE_LENGTH; +import static datadog.trace.core.CoreSpan.OWN_PROPAGATION_TAGS; import static datadog.trace.util.Strings.truncate; import datadog.json.JsonWriter; @@ -270,7 +271,7 @@ private String serializeTestEvent(CoreSpan span) { w.name("duration").value(span.getDurationNano()); w.name("error").value(span.getError()); - span.processTagsAndBaggage(new JsonMetaWriter(w)); + span.processTagsAndBaggage(new JsonMetaWriter(w), OWN_PROPAGATION_TAGS); w.endObject(); // content w.endObject(); // event diff --git a/dd-trace-core/src/main/java/datadog/trace/common/writer/ListWriter.java b/dd-trace-core/src/main/java/datadog/trace/common/writer/ListWriter.java index 7c151dab5c4..ca728a5fc5d 100644 --- a/dd-trace-core/src/main/java/datadog/trace/common/writer/ListWriter.java +++ b/dd-trace-core/src/main/java/datadog/trace/common/writer/ListWriter.java @@ -1,5 +1,6 @@ package datadog.trace.common.writer; +import static datadog.trace.core.CoreSpan.OWN_PROPAGATION_TAGS; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.NANOSECONDS; import static java.util.concurrent.TimeUnit.SECONDS; @@ -46,7 +47,7 @@ public void write(List trace) { for (DDSpan span : trace) { // This is needed to properly do all delayed processing to make this writer even // remotely realistic so the test actually test something - span.processTagsAndBaggage(metadataConsumer); + span.processTagsAndBaggage(metadataConsumer, OWN_PROPAGATION_TAGS); } add(trace); diff --git a/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV0_4.java b/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV0_4.java index cbdcbd41433..87984c835bc 100644 --- a/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV0_4.java +++ b/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV0_4.java @@ -2,6 +2,7 @@ import static datadog.communication.http.OkHttpUtils.msgpackRequestBodyOf; import static datadog.trace.api.cache.RadixTreeCache.UNSET_STATUS; +import static datadog.trace.core.CoreSpan.ROOT_PROPAGATION_TAGS; import datadog.communication.serialization.Codec; import datadog.communication.serialization.GenerationalUtf8Cache; @@ -367,7 +368,7 @@ public void map(List> trace, final Writable writable) { metaWriter .withWritable(writable) .forSpan(i == 0, i == trace.size() - 1, !firstSpanWritten), - i == 0); + i == 0 ? ROOT_PROPAGATION_TAGS : 0); if (!metaStruct.isEmpty()) { /* 13 */ metaStructWriter.withWritable(writable).write(metaStruct); diff --git a/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV0_5.java b/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV0_5.java index 51a7f1bdb8c..314908354e2 100644 --- a/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV0_5.java +++ b/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV0_5.java @@ -2,6 +2,7 @@ import static datadog.communication.http.OkHttpUtils.msgpackRequestBodyOf; import static datadog.trace.api.cache.RadixTreeCache.UNSET_STATUS; +import static datadog.trace.core.CoreSpan.ROOT_PROPAGATION_TAGS; import datadog.communication.serialization.GrowableBuffer; import datadog.communication.serialization.Mapper; @@ -85,7 +86,7 @@ public void map(final List> trace, final Writable writable metaWriter .withWritable(writable) .forSpan(i == 0, i == trace.size() - 1, !firstSpanWritten), - i == 0); + i == 0 ? ROOT_PROPAGATION_TAGS : 0); /* 12 */ writeDictionaryEncoded(writable, span.getType()); firstSpanWritten = true; diff --git a/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV1.java b/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV1.java index a4895dc08d5..3e50a26567c 100644 --- a/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV1.java +++ b/dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/TraceMapperV1.java @@ -3,6 +3,9 @@ import static datadog.communication.http.OkHttpUtils.msgpackRequestBodyOf; import static datadog.trace.api.DDTags.SPAN_EVENTS; import static datadog.trace.api.cache.RadixTreeCache.UNSET_STATUS; +import static datadog.trace.core.CoreSpan.ROOT_PROPAGATION_TAGS; +import static datadog.trace.core.CoreSpan.STRUCTURED_EVENTS; +import static datadog.trace.core.CoreSpan.STRUCTURED_LINKS; import static java.util.Collections.emptyMap; import static java.util.Collections.singletonMap; @@ -44,6 +47,9 @@ public final class TraceMapperV1 implements TraceMapper { private static final Logger log = LoggerFactory.getLogger(TraceMapperV1.class); + /** Span links and events are encoded natively rather than as tags. */ + private static final int STRUCTURED_LINKS_AND_EVENTS = STRUCTURED_LINKS | STRUCTURED_EVENTS; + // Attribute value types (from V1 spec) static final int VALUE_TYPE_STRING = 1; static final int VALUE_TYPE_BOOLEAN = 2; @@ -92,7 +98,8 @@ public void map(List> trace, Writable writable) { } CoreSpan firstSpan = trace.get(0); - firstSpan.processTagsAndBaggageWithStructuredLinksAndEvents(spanMetadata, true); + firstSpan.processTagsAndBaggage( + spanMetadata, STRUCTURED_LINKS_AND_EVENTS | ROOT_PROPAGATION_TAGS); Metadata firstSpanMeta = spanMetadata.metadata; // encoded fields: 1..7, but skipping #5, as not required by tracers and set by the agent. @@ -132,7 +139,8 @@ private void encodeSpans(Writable writable, int fieldId, List span = spans.get(i); if (meta == null) { - span.processTagsAndBaggageWithStructuredLinksAndEvents(spanMetadata, i == 0); + span.processTagsAndBaggage( + spanMetadata, STRUCTURED_LINKS_AND_EVENTS | (i == 0 ? ROOT_PROPAGATION_TAGS : 0)); meta = spanMetadata.metadata; } TagMap tags = meta.getTags(); diff --git a/dd-trace-core/src/main/java/datadog/trace/core/CoreSpan.java b/dd-trace-core/src/main/java/datadog/trace/core/CoreSpan.java index b3d2a4efb76..0432d952fc0 100644 --- a/dd-trace-core/src/main/java/datadog/trace/core/CoreSpan.java +++ b/dd-trace-core/src/main/java/datadog/trace/core/CoreSpan.java @@ -92,32 +92,34 @@ default String getSpanKindString() { /** * Runs early {@link datadog.trace.core.tagprocessor.TagsPostProcessor} like base service and peer * service computation. Such tags are needed before span serialization so they can’t be processed - * lazily as part of the {@link #processTagsAndBaggage(MetadataConsumer)} API. + * lazily as part of the {@link #processTagsAndBaggage(MetadataConsumer, int)} API. */ void processServiceTags(); - void processTagsAndBaggage(MetadataConsumer consumer); + /** The serialization protocol encodes span links natively, so they are not added as a tag. */ + int STRUCTURED_LINKS = 1; - default void processTagsAndBaggage(MetadataConsumer consumer, boolean firstInChunk) { - processTagsAndBaggage(consumer); - } + /** The serialization protocol encodes span events natively, so they are not added as a tag. */ + int STRUCTURED_EVENTS = 1 << 1; /** - * Variant of {@link #processTagsAndBaggage(MetadataConsumer)} for protocols that serialize span - * links and span events as first-class structured data rather than tags. Baggage tag injection - * still follows the tracer configuration. - * - *

To simplify tests, by default delegating to {@link - * #processTagsAndBaggage(MetadataConsumer)}. + * Serializes the span context own propagation tags. This is the default option, for tag-based + * protocols that serialize each span independently. */ - default void processTagsAndBaggageWithStructuredLinksAndEvents(MetadataConsumer consumer) { - processTagsAndBaggage(consumer); - } + int OWN_PROPAGATION_TAGS = 1 << 2; - default void processTagsAndBaggageWithStructuredLinksAndEvents( - MetadataConsumer consumer, boolean firstInChunk) { - processTagsAndBaggageWithStructuredLinksAndEvents(consumer); - } + /** Serializes the local root span context propagation tags, as for the first span of a chunk. */ + int ROOT_PROPAGATION_TAGS = 1 << 3; + + /** + * Processes the span tags and baggage, and hands the resulting {@link Metadata} to the consumer. + * + * @param consumer The consumer of the span metadata. + * @param options A combination of {@link #STRUCTURED_LINKS}, {@link #STRUCTURED_EVENTS}, and + * either {@link #OWN_PROPAGATION_TAGS} (the default option) or {@link + * #ROOT_PROPAGATION_TAGS}. + */ + void processTagsAndBaggage(MetadataConsumer consumer, int options); T setSamplingPriority(int samplingPriority, int samplingMechanism); diff --git a/dd-trace-core/src/main/java/datadog/trace/core/DDSpan.java b/dd-trace-core/src/main/java/datadog/trace/core/DDSpan.java index fb4db533808..f44cbf71242 100644 --- a/dd-trace-core/src/main/java/datadog/trace/core/DDSpan.java +++ b/dd-trace-core/src/main/java/datadog/trace/core/DDSpan.java @@ -806,25 +806,8 @@ public void processServiceTags() { } @Override - public void processTagsAndBaggage(final MetadataConsumer consumer) { - context.processTagsAndBaggage(consumer, longRunningVersion, this); - } - - @Override - public void processTagsAndBaggage(final MetadataConsumer consumer, final boolean firstInChunk) { - context.processTagsAndBaggage(consumer, longRunningVersion, this, firstInChunk); - } - - @Override - public void processTagsAndBaggageWithStructuredLinksAndEvents(final MetadataConsumer consumer) { - context.processTagsAndBaggageWithStructuredLinksAndEvents(consumer, longRunningVersion, this); - } - - @Override - public void processTagsAndBaggageWithStructuredLinksAndEvents( - final MetadataConsumer consumer, final boolean firstInChunk) { - context.processTagsAndBaggageWithStructuredLinksAndEvents( - consumer, longRunningVersion, this, firstInChunk); + public void processTagsAndBaggage(final MetadataConsumer consumer, final int options) { + context.processTagsAndBaggage(consumer, longRunningVersion, this, options); } @Override diff --git a/dd-trace-core/src/main/java/datadog/trace/core/DDSpanContext.java b/dd-trace-core/src/main/java/datadog/trace/core/DDSpanContext.java index 40642b0d210..5fe3aad59cd 100644 --- a/dd-trace-core/src/main/java/datadog/trace/core/DDSpanContext.java +++ b/dd-trace-core/src/main/java/datadog/trace/core/DDSpanContext.java @@ -5,6 +5,10 @@ import static datadog.trace.api.DDTags.SPAN_LINKS; import static datadog.trace.bootstrap.instrumentation.api.ErrorPriorities.UNSET; import static datadog.trace.bootstrap.instrumentation.api.ServiceNameSources.MANUAL; +import static datadog.trace.core.CoreSpan.OWN_PROPAGATION_TAGS; +import static datadog.trace.core.CoreSpan.ROOT_PROPAGATION_TAGS; +import static datadog.trace.core.CoreSpan.STRUCTURED_EVENTS; +import static datadog.trace.core.CoreSpan.STRUCTURED_LINKS; import datadog.trace.api.Config; import datadog.trace.api.DDSpanId; @@ -1324,72 +1328,26 @@ void earlyProcessTags(AppendableSpanLinks links) { } } - void processTagsAndBaggage( - final MetadataConsumer consumer, int longRunningVersion, DDSpan restrictedSpan) { - processTagsAndBaggage( - consumer, - longRunningVersion, - restrictedSpan, - injectLinksAsTags, - true, // injectEventsAsTags - injectBaggageAsTags, - propagationTags); - } - - void processTagsAndBaggage( - final MetadataConsumer consumer, - int longRunningVersion, - DDSpan restrictedSpan, - boolean firstInChunk) { - processTagsAndBaggage( - consumer, - longRunningVersion, - restrictedSpan, - injectLinksAsTags, - true, // injectEventsAsTags - injectBaggageAsTags, - firstInChunk ? getPropagationTags() : null); - } - /** - * Serialize span links and span events as first-class structured data rather than tags. While - * baggage tag injection keeps following the tracer configuration. + * Processes the span tags and baggage, and hands the resulting {@link Metadata} to the consumer. + * + * @param consumer The consumer of the span metadata. + * @param longRunningVersion The long-running version of the span. + * @param restrictedSpan The span to read links and events from. + * @param options The {@link CoreSpan} options describing what the serialization protocol needs. */ - void processTagsAndBaggageWithStructuredLinksAndEvents( - final MetadataConsumer consumer, int longRunningVersion, DDSpan restrictedSpan) { - processTagsAndBaggage( - consumer, - longRunningVersion, - restrictedSpan, - false, // injectLinksAsTags - false, // injectEventsAsTags - injectBaggageAsTags, - propagationTags); - } - - void processTagsAndBaggageWithStructuredLinksAndEvents( - final MetadataConsumer consumer, - int longRunningVersion, - DDSpan restrictedSpan, - boolean firstInChunk) { - processTagsAndBaggage( - consumer, - longRunningVersion, - restrictedSpan, - false, // injectLinksAsTags - false, // injectEventsAsTags - injectBaggageAsTags, - firstInChunk ? getPropagationTags() : null); - } - void processTagsAndBaggage( - final MetadataConsumer consumer, - int longRunningVersion, - DDSpan restrictedSpan, - boolean injectLinksAsTags, - boolean injectEventsAsTags, - boolean injectBaggageAsTags, - PropagationTags serializedPropagationTags) { + final MetadataConsumer consumer, int longRunningVersion, DDSpan restrictedSpan, int options) { + boolean injectLinksAsTags = this.injectLinksAsTags && (options & STRUCTURED_LINKS) == 0; + boolean injectEventsAsTags = (options & STRUCTURED_EVENTS) == 0; + PropagationTags serializedPropagationTags; + if ((options & ROOT_PROPAGATION_TAGS) != 0) { + serializedPropagationTags = getPropagationTags(); + } else if ((options & OWN_PROPAGATION_TAGS) != 0) { + serializedPropagationTags = this.propagationTags; + } else { + serializedPropagationTags = null; + } // NOTE: The span is passed for the sole purpose of allowing updating & reading of the span // links and events // This is a compromise to avoid... @@ -1418,7 +1376,7 @@ void processTagsAndBaggage( // Baggage Map baggageItemsWithPropagationTags; - if (injectBaggageAsTags) { + if (this.injectBaggageAsTags) { baggageItemsWithPropagationTags = new HashMap<>(baggageItems); if (w3cBaggage != null) { injectW3CBaggageTags(baggageItemsWithPropagationTags); diff --git a/dd-trace-core/src/main/java/datadog/trace/core/otlp/trace/OtlpTraceJson.java b/dd-trace-core/src/main/java/datadog/trace/core/otlp/trace/OtlpTraceJson.java index 17963da3514..32877b15017 100644 --- a/dd-trace-core/src/main/java/datadog/trace/core/otlp/trace/OtlpTraceJson.java +++ b/dd-trace-core/src/main/java/datadog/trace/core/otlp/trace/OtlpTraceJson.java @@ -14,6 +14,7 @@ import static datadog.trace.common.writer.ddagent.TraceMapper.SAMPLING_PRIORITY_KEY; import static datadog.trace.common.writer.ddagent.TraceMapper.THREAD_ID; import static datadog.trace.common.writer.ddagent.TraceMapper.THREAD_NAME; +import static datadog.trace.core.CoreSpan.OWN_PROPAGATION_TAGS; import static datadog.trace.core.otlp.common.OtlpCommonJson.hexSpanId; import static datadog.trace.core.otlp.common.OtlpCommonJson.hexTraceId; import static datadog.trace.core.otlp.common.OtlpCommonJson.writeAttribute; @@ -112,7 +113,7 @@ public static void writeSpan( if (span.getSpanType() != null) { writeSpanTag(writer, SPAN_TYPE, span.getSpanType()); } - span.processTagsAndBaggage(metaWriter); + span.processTagsAndBaggage(metaWriter, OWN_PROPAGATION_TAGS); writer.endArray(); if (!links.isEmpty()) { diff --git a/dd-trace-core/src/main/java/datadog/trace/core/otlp/trace/OtlpTraceProto.java b/dd-trace-core/src/main/java/datadog/trace/core/otlp/trace/OtlpTraceProto.java index e7b0310bc42..6aabcbc9428 100644 --- a/dd-trace-core/src/main/java/datadog/trace/core/otlp/trace/OtlpTraceProto.java +++ b/dd-trace-core/src/main/java/datadog/trace/core/otlp/trace/OtlpTraceProto.java @@ -14,6 +14,7 @@ import static datadog.trace.common.writer.ddagent.TraceMapper.SAMPLING_PRIORITY_KEY; import static datadog.trace.common.writer.ddagent.TraceMapper.THREAD_ID; import static datadog.trace.common.writer.ddagent.TraceMapper.THREAD_NAME; +import static datadog.trace.core.CoreSpan.OWN_PROPAGATION_TAGS; import static datadog.trace.core.otlp.common.OtlpCommonProto.I32_WIRE_TYPE; import static datadog.trace.core.otlp.common.OtlpCommonProto.I64_WIRE_TYPE; import static datadog.trace.core.otlp.common.OtlpCommonProto.LEN_WIRE_TYPE; @@ -159,7 +160,7 @@ public static int recordSpanMessage( writeSpanTag(buf, SPAN_TYPE, span.getSpanType()); } - span.processTagsAndBaggage(metaWriter); + span.processTagsAndBaggage(metaWriter, OWN_PROPAGATION_TAGS); if (span.isError()) { int stateSize = 2; diff --git a/dd-trace-core/src/main/java/datadog/trace/llmobs/writer/ddintake/LLMObsSpanMapper.java b/dd-trace-core/src/main/java/datadog/trace/llmobs/writer/ddintake/LLMObsSpanMapper.java index ef5677abd6b..806c5778be8 100644 --- a/dd-trace-core/src/main/java/datadog/trace/llmobs/writer/ddintake/LLMObsSpanMapper.java +++ b/dd-trace-core/src/main/java/datadog/trace/llmobs/writer/ddintake/LLMObsSpanMapper.java @@ -1,6 +1,7 @@ package datadog.trace.llmobs.writer.ddintake; import static datadog.communication.http.OkHttpUtils.gzippedMsgpackRequestBodyOf; +import static datadog.trace.core.CoreSpan.OWN_PROPAGATION_TAGS; import static java.util.concurrent.TimeUnit.MINUTES; import datadog.communication.EvpProxy; @@ -281,7 +282,8 @@ public void map(List> trace, Writable writable, boolean re } /* 10 (metrics), 11 (tags), 12 meta — shift down 1 if session_id absent */ - span.processTagsAndBaggage(metaWriter.withWritable(writable, getErrorsMap(span))); + span.processTagsAndBaggage( + metaWriter.withWritable(writable, getErrorsMap(span)), OWN_PROPAGATION_TAGS); } // Increase only after all spans have been written. This way, if it rolls back because of a diff --git a/dd-trace-core/src/test/java/datadog/trace/common/metrics/SimpleSpan.java b/dd-trace-core/src/test/java/datadog/trace/common/metrics/SimpleSpan.java index 41a2a5a0d14..0b856adb70e 100644 --- a/dd-trace-core/src/test/java/datadog/trace/common/metrics/SimpleSpan.java +++ b/dd-trace-core/src/test/java/datadog/trace/common/metrics/SimpleSpan.java @@ -324,7 +324,7 @@ public CharSequence getType() { public void processServiceTags() {} @Override - public void processTagsAndBaggage(MetadataConsumer consumer) {} + public void processTagsAndBaggage(MetadataConsumer consumer, int options) {} @Override public SimpleSpan setSamplingPriority(int samplingPriority, int samplingMechanism) { diff --git a/dd-trace-core/src/test/java/datadog/trace/common/writer/FileBasedPayloadDispatcherTest.java b/dd-trace-core/src/test/java/datadog/trace/common/writer/FileBasedPayloadDispatcherTest.java index cad929d1ff0..2704dff3d3e 100644 --- a/dd-trace-core/src/test/java/datadog/trace/common/writer/FileBasedPayloadDispatcherTest.java +++ b/dd-trace-core/src/test/java/datadog/trace/common/writer/FileBasedPayloadDispatcherTest.java @@ -5,6 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -324,7 +325,7 @@ private static CoreSpan mockSpan(CharSequence type, Map tags) return null; }) .when(span) - .processTagsAndBaggage(any(MetadataConsumer.class)); + .processTagsAndBaggage(any(MetadataConsumer.class), anyInt()); return span; } diff --git a/dd-trace-core/src/test/java/datadog/trace/common/writer/TraceGenerator.java b/dd-trace-core/src/test/java/datadog/trace/common/writer/TraceGenerator.java index 2a42d7acdc1..c570b2ae7e4 100644 --- a/dd-trace-core/src/test/java/datadog/trace/common/writer/TraceGenerator.java +++ b/dd-trace-core/src/test/java/datadog/trace/common/writer/TraceGenerator.java @@ -404,7 +404,7 @@ public CharSequence getType() { public void processServiceTags() {} @Override - public void processTagsAndBaggage(MetadataConsumer consumer) { + public void processTagsAndBaggage(MetadataConsumer consumer, int options) { consumer.accept(metadata); } diff --git a/dd-trace-core/src/test/java/datadog/trace/common/writer/ddagent/TraceMapperV1PayloadTest.java b/dd-trace-core/src/test/java/datadog/trace/common/writer/ddagent/TraceMapperV1PayloadTest.java index 4c7472cf5fe..9920ada43a4 100644 --- a/dd-trace-core/src/test/java/datadog/trace/common/writer/ddagent/TraceMapperV1PayloadTest.java +++ b/dd-trace-core/src/test/java/datadog/trace/common/writer/ddagent/TraceMapperV1PayloadTest.java @@ -995,9 +995,9 @@ private CountingPojoSpan( } @Override - public void processTagsAndBaggage(MetadataConsumer consumer) { + public void processTagsAndBaggage(MetadataConsumer consumer, int options) { processTagsAndBaggageCount++; - super.processTagsAndBaggage(consumer); + super.processTagsAndBaggage(consumer, options); } } diff --git a/dd-trace-core/src/test/java/datadog/trace/core/PendingTraceBufferTest.java b/dd-trace-core/src/test/java/datadog/trace/core/PendingTraceBufferTest.java index 926262c1b35..e72e5fa3a7c 100644 --- a/dd-trace-core/src/test/java/datadog/trace/core/PendingTraceBufferTest.java +++ b/dd-trace-core/src/test/java/datadog/trace/core/PendingTraceBufferTest.java @@ -2,6 +2,7 @@ import static datadog.trace.api.sampling.PrioritySampling.UNSET; import static datadog.trace.api.sampling.PrioritySampling.USER_KEEP; +import static datadog.trace.core.CoreSpan.OWN_PROPAGATION_TAGS; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -180,7 +181,7 @@ void prioritySamplingIsAlwaysSent() { doAnswer( invocation -> { List spans = invocation.getArgument(0); - spans.get(0).processTagsAndBaggage(metadataChecker); + spans.get(0).processTagsAndBaggage(metadataChecker, OWN_PROPAGATION_TAGS); return null; }) .when(tracer) diff --git a/dd-trace-core/src/traceAgentTest/java/TraceGenerator.java b/dd-trace-core/src/traceAgentTest/java/TraceGenerator.java index 00b2017c52b..0fe52affee4 100644 --- a/dd-trace-core/src/traceAgentTest/java/TraceGenerator.java +++ b/dd-trace-core/src/traceAgentTest/java/TraceGenerator.java @@ -351,7 +351,7 @@ public String getType() { public void processServiceTags() {} @Override - public void processTagsAndBaggage(MetadataConsumer consumer) { + public void processTagsAndBaggage(MetadataConsumer consumer, int options) { consumer.accept(metadata); }