Skip to content

Commit 4fbf185

Browse files
committed
minimize changes needed to test code origin on instrumentations
# Conflicts: # dd-java-agent/instrumentation/kafka-clients-3.8/src/test/groovy/KafkaClientTestBase.groovy try to normalize span checks tweaky tweaky
1 parent ffa2073 commit 4fbf185

File tree

11 files changed

+112
-464
lines changed

11 files changed

+112
-464
lines changed

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/codeorigin/DefaultCodeOriginRecorder.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package com.datadog.debugger.codeorigin;
22

33
import static com.datadog.debugger.agent.ConfigurationAcceptor.Source.CODE_ORIGIN;
4-
import static datadog.trace.api.DDTags.DD_CODE_ORIGIN_FRAME;
5-
import static java.lang.String.format;
4+
import static datadog.trace.api.DDTags.DD_CODE_ORIGIN_FRAME0;
65

76
import com.datadog.debugger.agent.ConfigurationUpdater;
87
import com.datadog.debugger.exception.Fingerprinter;
@@ -172,7 +171,7 @@ public CodeOriginSnapshotConsumer(boolean entrySpanProbe) {
172171
@Override
173172
public void accept(Snapshot snapshot) {
174173
AgentSpan span = AgentTracer.get().activeSpan();
175-
String snapshotId = format(DD_CODE_ORIGIN_FRAME, 0, "snapshot_id");
174+
String snapshotId = DD_CODE_ORIGIN_FRAME0 + "snapshot_id";
176175
span.setTag(snapshotId, snapshot.getId());
177176
if (entrySpanProbe) {
178177
span.getLocalRootSpan().setTag(snapshotId, snapshot.getId());

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/probe/CodeOriginProbe.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package com.datadog.debugger.probe;
22

3-
import static datadog.trace.api.DDTags.DD_CODE_ORIGIN_FRAME;
3+
import static datadog.trace.api.DDTags.DD_CODE_ORIGIN_FRAME0;
44
import static datadog.trace.api.DDTags.DD_CODE_ORIGIN_TYPE;
5-
import static java.lang.String.format;
65
import static java.util.Arrays.asList;
76
import static java.util.Collections.singletonList;
87

@@ -66,11 +65,11 @@ public void commit(
6665
for (AgentSpan s : agentSpans) {
6766
if (s.getTag(DD_CODE_ORIGIN_TYPE) == null) {
6867
s.setTag(DD_CODE_ORIGIN_TYPE, entrySpanProbe ? "entry" : "exit");
69-
s.setTag(format(DD_CODE_ORIGIN_FRAME, 0, "file"), location.getFile());
70-
s.setTag(format(DD_CODE_ORIGIN_FRAME, 0, "method"), location.getMethod());
71-
s.setTag(format(DD_CODE_ORIGIN_FRAME, 0, "line"), location.getLines().get(0));
72-
s.setTag(format(DD_CODE_ORIGIN_FRAME, 0, "type"), location.getType());
73-
s.setTag(format(DD_CODE_ORIGIN_FRAME, 0, "signature"), signature);
68+
s.setTag(DD_CODE_ORIGIN_FRAME0 + "file", location.getFile());
69+
s.setTag(DD_CODE_ORIGIN_FRAME0 + "method", location.getMethod());
70+
s.setTag(DD_CODE_ORIGIN_FRAME0 + "line", location.getLines().get(0));
71+
s.setTag(DD_CODE_ORIGIN_FRAME0 + "type", location.getType());
72+
s.setTag(DD_CODE_ORIGIN_FRAME0 + "signature", signature);
7473
}
7574
}
7675
}

dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/origin/CodeOriginTest.java

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.datadog.debugger.origin;
22

3-
import static datadog.trace.api.DDTags.DD_CODE_ORIGIN_FRAME;
3+
import static datadog.trace.api.DDTags.DD_CODE_ORIGIN_FRAME0;
44
import static datadog.trace.api.DDTags.DD_CODE_ORIGIN_PREFIX;
55
import static datadog.trace.api.DDTags.DD_CODE_ORIGIN_TYPE;
66
import static datadog.trace.util.AgentThreadFactory.AgentThread.TASK_SCHEDULER;
@@ -140,7 +140,7 @@ public void doubleEntry() throws IOException, URISyntaxException {
140140
List<? extends MutableSpan> trace = traceInterceptor.getTrace();
141141
MutableSpan span = trace.get(0);
142142
// this should be entry but until we get the ordering resolved, it's this.
143-
assertEquals("entry", span.getTag(format(DD_CODE_ORIGIN_FRAME, 0, "method")));
143+
assertEquals("entry", span.getTag(DD_CODE_ORIGIN_FRAME0 + "method"));
144144
}
145145

146146
@Test
@@ -269,17 +269,17 @@ public void execute(Runnable target) {
269269
}
270270

271271
private static void checkEntrySpanTags(DDSpan span, boolean includeSnapshot) {
272-
assertKeyPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "file"));
273-
assertKeyPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "line"));
274-
assertNotEquals(-1, span.getTag(format(DD_CODE_ORIGIN_FRAME, 0, "line")));
275-
assertKeyPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "method"));
276-
assertKeyPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "signature"));
277-
assertKeyPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "type"));
272+
assertKeyPresent(span, DD_CODE_ORIGIN_FRAME0 + "file");
273+
assertKeyPresent(span, DD_CODE_ORIGIN_FRAME0 + "line");
274+
assertNotEquals(-1, span.getTag(DD_CODE_ORIGIN_FRAME0 + "line"));
275+
assertKeyPresent(span, DD_CODE_ORIGIN_FRAME0 + "method");
276+
assertKeyPresent(span, DD_CODE_ORIGIN_FRAME0 + "signature");
277+
assertKeyPresent(span, DD_CODE_ORIGIN_FRAME0 + "type");
278278

279279
if (includeSnapshot) {
280-
assertKeyPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "snapshot_id"));
280+
assertKeyPresent(span, DD_CODE_ORIGIN_FRAME0 + "snapshot_id");
281281
} else {
282-
assertKeyNotPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "snapshot_id"));
282+
assertKeyNotPresent(span, DD_CODE_ORIGIN_FRAME0 + "snapshot_id");
283283
}
284284
}
285285

@@ -302,23 +302,23 @@ private static void checkExitSpanTags(DDSpan span, boolean includeSnapshot) {
302302
format("Existing keys for %s: %s", span.getOperationName(), new TreeSet<>(ldKeys(span)));
303303

304304
assertKeyPresent(span, DD_CODE_ORIGIN_TYPE);
305-
assertKeyPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "file"));
306-
assertKeyPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "line"));
307-
assertNotEquals(-1, span.getTag(format(DD_CODE_ORIGIN_FRAME, 0, "line")));
308-
assertKeyPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "method"));
309-
assertKeyPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "type"));
305+
assertKeyPresent(span, DD_CODE_ORIGIN_FRAME0 + "file");
306+
assertKeyPresent(span, DD_CODE_ORIGIN_FRAME0 + "line");
307+
assertNotEquals(-1, span.getTag(DD_CODE_ORIGIN_FRAME0 + "line"));
308+
assertKeyPresent(span, DD_CODE_ORIGIN_FRAME0 + "method");
309+
assertKeyPresent(span, DD_CODE_ORIGIN_FRAME0 + "type");
310310
if (includeSnapshot) {
311-
assertKeyPresent(span, format(DD_CODE_ORIGIN_FRAME, 0, "snapshot_id"));
311+
assertKeyPresent(span, DD_CODE_ORIGIN_FRAME0 + "snapshot_id");
312312
}
313313

314314
MutableSpan rootSpan = span.getLocalRootSpan();
315315
assertEquals(rootSpan.getTag(DD_CODE_ORIGIN_TYPE), "entry", keys);
316-
Object file = rootSpan.getTag(format(DD_CODE_ORIGIN_FRAME, 0, "file"));
316+
Object file = rootSpan.getTag(DD_CODE_ORIGIN_FRAME0 + "file");
317317
assertNotNull(file, rootSpan.getTags().toString());
318-
assertNotNull(rootSpan.getTag(format(DD_CODE_ORIGIN_FRAME, 0, "line")));
319-
assertNotEquals(-1, rootSpan.getTag(format(DD_CODE_ORIGIN_FRAME, 0, "line")));
320-
assertNotNull(rootSpan.getTag(format(DD_CODE_ORIGIN_FRAME, 0, "method")));
321-
assertNotNull(rootSpan.getTag(format(DD_CODE_ORIGIN_FRAME, 0, "type")));
318+
assertNotNull(rootSpan.getTag(DD_CODE_ORIGIN_FRAME0 + "line"));
319+
assertNotEquals(-1, rootSpan.getTag(DD_CODE_ORIGIN_FRAME0 + "line"));
320+
assertNotNull(rootSpan.getTag(DD_CODE_ORIGIN_FRAME0 + "method"));
321+
assertNotNull(rootSpan.getTag(DD_CODE_ORIGIN_FRAME0 + "type"));
322322
}
323323

324324
private static Set<String> ldKeys(MutableSpan span) {

dd-java-agent/instrumentation/grpc-1.5/src/test/groovy/GrpcCodeOriginTest.groovy

Lines changed: 0 additions & 199 deletions
This file was deleted.

dd-java-agent/instrumentation/grpc-1.5/src/test/groovy/GrpcTest.groovy

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import datadog.trace.core.DDSpan
2+
3+
import static datadog.trace.agent.test.asserts.TagsAssert.codeOriginTags
14
import static datadog.trace.api.config.TraceInstrumentationConfig.GRPC_SERVER_ERROR_STATUSES
25

36
import com.google.common.util.concurrent.MoreExecutors
@@ -150,6 +153,8 @@ abstract class GrpcTest extends VersionedNamingTestBase {
150153

151154
then:
152155
response.message == "Hello $name"
156+
def traces = (Arrays.asList(TEST_WRITER.toArray()) as List<List<DDSpan>>)
157+
codeOriginTags(traces[0])
153158
assertTraces(2) {
154159
trace(hasClientMessageSpans() ? 3 : 2) {
155160
basicSpan(it, "parent")
@@ -680,6 +685,12 @@ class GrpcDataStreamsEnabledV0Test extends GrpcDataStreamsEnabledForkedTest {
680685

681686
class GrpcDataStreamsEnabledV1ForkedTest extends GrpcDataStreamsEnabledForkedTest {
682687

688+
@Override
689+
protected void configurePreAgent() {
690+
super.configurePreAgent()
691+
codeOriginSetup()
692+
}
693+
683694
@Override
684695
int version() {
685696
return 1

dd-java-agent/instrumentation/kafka-clients-3.8/src/test/groovy/KafkaClientTestBase.groovy

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ import org.testcontainers.utility.DockerImageName
3030

3131
import java.util.concurrent.ExecutionException
3232
import java.util.concurrent.Future
33+
34+
import static datadog.trace.agent.test.asserts.TagsAssert.codeOriginTags
35+
import static datadog.trace.agent.test.utils.TraceUtils.basicSpan
36+
3337
import java.util.concurrent.LinkedBlockingQueue
3438
import java.util.concurrent.TimeUnit
3539

@@ -222,8 +226,9 @@ abstract class KafkaClientTestBase extends VersionedNamingTestBase {
222226
int nTraces = isDataStreamsEnabled() ? 3 : 2
223227
int produceTraceIdx = nTraces - 1
224228
TEST_WRITER.waitForTraces(nTraces)
225-
def traces = (Arrays.asList(TEST_WRITER.toArray()) as List<List<DDSpan>>)
226-
Collections.sort(traces, new SortKafkaTraces())
229+
def traces = new ArrayList<>(TEST_WRITER)
230+
traces.sort(new SortKafkaTraces())
231+
codeOriginTags(traces[0])
227232
assertTraces(nTraces, new SortKafkaTraces()) {
228233
if (hasQueueSpan()) {
229234
trace(2) {
@@ -1063,6 +1068,12 @@ class KafkaClientV0ForkedTest extends KafkaClientForkedTest {
10631068
}
10641069
10651070
class KafkaClientV1ForkedTest extends KafkaClientForkedTest {
1071+
@Override
1072+
void configurePreAgent() {
1073+
super.configurePreAgent()
1074+
codeOriginSetup()
1075+
}
1076+
10661077
@Override
10671078
int version() {
10681079
1

0 commit comments

Comments
 (0)