Skip to content

Commit aa9d3fa

Browse files
fix: dont remove id tags and instead ignore in consumer
1 parent 54244a9 commit aa9d3fa

File tree

2 files changed

+32
-11
lines changed

2 files changed

+32
-11
lines changed

dd-trace-core/src/main/java/datadog/trace/civisibility/writer/ddintake/CiTestCycleMapperV1.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import datadog.communication.serialization.msgpack.MsgPackWriter;
1010
import datadog.trace.api.DDTags;
1111
import datadog.trace.api.DDTraceId;
12+
import datadog.trace.api.TagMap;
1213
import datadog.trace.api.civisibility.CiVisibilityWellKnownTags;
1314
import datadog.trace.api.civisibility.InstrumentationBridge;
1415
import datadog.trace.api.civisibility.telemetry.CiVisibilityDistributionMetric;
@@ -84,16 +85,9 @@ public void map(List<? extends CoreSpan<?>> trace, Writable writable) {
8485

8586
for (final CoreSpan<?> span : trace) {
8687
DDTraceId testSessionId = span.getTag(Tags.TEST_SESSION_ID);
87-
span.removeTag(Tags.TEST_SESSION_ID);
88-
8988
Number testModuleId = span.getTag(Tags.TEST_MODULE_ID);
90-
span.removeTag(Tags.TEST_MODULE_ID);
91-
9289
Number testSuiteId = span.getTag(Tags.TEST_SUITE_ID);
93-
span.removeTag(Tags.TEST_SUITE_ID);
94-
9590
String itrCorrelationId = span.getTag(Tags.ITR_CORRELATION_ID);
96-
span.removeTag(Tags.ITR_CORRELATION_ID);
9791

9892
int topLevelTagsCount = 0;
9993
if (testSessionId != null) {
@@ -323,20 +317,26 @@ MetaWriter withWritable(Writable writable) {
323317

324318
@Override
325319
public void accept(Metadata metadata) {
320+
TagMap tags = metadata.getTags().copy();
321+
322+
for (String ignoredTag : DEFAULT_TOP_LEVEL_TAGS) {
323+
tags.remove(ignoredTag);
324+
}
325+
326326
int metaSize =
327327
metadata.getBaggage().size()
328-
+ metadata.getTags().size()
328+
+ tags.size()
329329
+ (null == metadata.getHttpStatusCode() ? 0 : 1);
330330
int metricsSize = 0;
331-
for (Map.Entry<String, Object> tag : metadata.getTags().entrySet()) {
331+
for (Map.Entry<String, Object> tag : tags.entrySet()) {
332332
if (tag.getValue() instanceof Number) {
333333
++metricsSize;
334334
--metaSize;
335335
}
336336
}
337337
writable.writeUTF8(METRICS);
338338
writable.startMap(metricsSize);
339-
for (Map.Entry<String, Object> entry : metadata.getTags().entrySet()) {
339+
for (Map.Entry<String, Object> entry : tags.entrySet()) {
340340
if (entry.getValue() instanceof Number) {
341341
writable.writeString(entry.getKey(), null);
342342
writable.writeObject(entry.getValue(), null);
@@ -356,7 +356,7 @@ public void accept(Metadata metadata) {
356356
writable.writeUTF8(HTTP_STATUS);
357357
writable.writeUTF8(metadata.getHttpStatusCode());
358358
}
359-
for (Map.Entry<String, Object> entry : metadata.getTags().entrySet()) {
359+
for (Map.Entry<String, Object> entry : tags.entrySet()) {
360360
Object value = entry.getValue();
361361
if (!(value instanceof Number)) {
362362
writable.writeString(entry.getKey(), null);

dd-trace-core/src/test/groovy/datadog/trace/civisibility/writer/ddintake/CiTestCycleMapperV1PayloadTest.groovy

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,27 @@ class CiTestCycleMapperV1PayloadTest extends DDSpecification {
149149
assert !spanContent.containsKey("parent_id")
150150
}
151151

152+
def "verify result is not affected by successive mapping calls"(){
153+
setup:
154+
def span = generateRandomSpan(InternalSpanTypes.TEST, [
155+
(Tags.TEST_SESSION_ID): DDTraceId.from(123),
156+
(Tags.TEST_MODULE_ID) : 456,
157+
(Tags.TEST_SUITE_ID) : 789,
158+
])
159+
160+
when:
161+
whenASpanIsWritten(span)
162+
Map<String, Object> deserializedSpan = whenASpanIsWritten(span)
163+
164+
then:
165+
verifyTopLevelTags(deserializedSpan, DDTraceId.from(123), 456, 789)
166+
167+
def spanContent = (Map<String, Object>) deserializedSpan.get("content")
168+
assert spanContent.containsKey("trace_id")
169+
assert spanContent.containsKey("span_id")
170+
assert spanContent.containsKey("parent_id")
171+
}
172+
152173
private static void verifyTopLevelTags(Map<String, Object> deserializedSpan, DDTraceId testSessionId, Long testModuleId, Long testSuiteId) {
153174
Map<String, Object> deserializedSpanContent = (Map<String, Object>) deserializedSpan.get("content")
154175
Map<String, Object> deserializedMetrics = (Map<String, Object>) deserializedSpanContent.get("metrics")

0 commit comments

Comments
 (0)