Skip to content

Commit 2048146

Browse files
authored
Merge pull request #7685 from DataDog/shatzi/fix-code-origin-tags
Update Code Origin span tags
2 parents 05e8fd6 + 0f8251a commit 2048146

File tree

4 files changed

+7
-48
lines changed

4 files changed

+7
-48
lines changed

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

+3-21
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.datadog.debugger.probe;
22

33
import static com.datadog.debugger.codeorigin.DebuggerConfiguration.isDebuggerEnabled;
4-
import static datadog.trace.api.DDTags.DD_CODE_ORIGIN_SNAPSHOT_ID;
54
import static datadog.trace.api.DDTags.DD_STACK_CODE_ORIGIN_FRAME;
65
import static datadog.trace.api.DDTags.DD_STACK_CODE_ORIGIN_TYPE;
76
import static java.lang.String.format;
@@ -13,7 +12,6 @@
1312
import com.datadog.debugger.instrumentation.InstrumentationResult;
1413
import com.datadog.debugger.sink.Snapshot;
1514
import com.datadog.debugger.util.ClassNameFiltering;
16-
import datadog.trace.api.DDTags;
1715
import datadog.trace.bootstrap.debugger.CapturedContext;
1816
import datadog.trace.bootstrap.debugger.MethodLocation;
1917
import datadog.trace.bootstrap.debugger.ProbeId;
@@ -91,28 +89,9 @@ public void commit(
9189

9290
private void applySpanOriginTags(AgentSpan span, String snapshotId) {
9391
List<StackTraceElement> entries = getUserStackFrames();
94-
recordCodeOrigin(span, entries, snapshotId);
9592
recordStackFrames(span, entries, snapshotId);
9693
}
9794

98-
private void recordCodeOrigin(
99-
AgentSpan span, List<StackTraceElement> entries, String snapshotId) {
100-
if (entrySpanProbe && !entries.isEmpty()) {
101-
StackTraceElement entry = entries.get(0);
102-
List<AgentSpan> list = asList(span, span.getLocalRootSpan());
103-
for (AgentSpan s : list) {
104-
s.setTag(DDTags.DD_CODE_ORIGIN_FILE, toFileName(entry.getClassName()));
105-
s.setTag(DDTags.DD_CODE_ORIGIN_METHOD, entry.getMethodName());
106-
s.setTag(DDTags.DD_CODE_ORIGIN_LINE, entry.getLineNumber());
107-
s.setTag(DDTags.DD_CODE_ORIGIN_TYPE, entry.getClassName());
108-
s.setTag(DDTags.DD_CODE_ORIGIN_METHOD_SIGNATURE, signature);
109-
if (snapshotId != null) {
110-
s.setTag(DD_CODE_ORIGIN_SNAPSHOT_ID, snapshotId);
111-
}
112-
}
113-
}
114-
}
115-
11695
private void recordStackFrames(
11796
AgentSpan span, List<StackTraceElement> entries, String snapshotId) {
11897
List<AgentSpan> agentSpans =
@@ -127,6 +106,9 @@ private void recordStackFrames(
127106
s.setTag(format(DD_STACK_CODE_ORIGIN_FRAME, i, "method"), info.getMethodName());
128107
s.setTag(format(DD_STACK_CODE_ORIGIN_FRAME, i, "line"), info.getLineNumber());
129108
s.setTag(format(DD_STACK_CODE_ORIGIN_FRAME, i, "type"), info.getClassName());
109+
if (i == 0 && signature != null) {
110+
s.setTag(format(DD_STACK_CODE_ORIGIN_FRAME, i, "signature"), signature);
111+
}
130112
if (i == 0 && snapshotId != null) {
131113
s.setTag(format(DD_STACK_CODE_ORIGIN_FRAME, i, "snapshot_id"), snapshotId);
132114
}

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

+1-12
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import com.datadog.debugger.util.TestTraceInterceptor;
3333
import datadog.trace.agent.tooling.TracerInstaller;
3434
import datadog.trace.api.Config;
35-
import datadog.trace.api.DDTags;
3635
import datadog.trace.api.InstrumenterConfig;
3736
import datadog.trace.api.interceptor.MutableSpan;
3837
import datadog.trace.bootstrap.debugger.DebuggerContext;
@@ -191,20 +190,16 @@ private void waitForInstrumentation() {
191190

192191
private static void checkEntrySpanTags(MutableSpan span, boolean includeSnapshot) {
193192
String keys = format("Existing keys for %s: %s", span.getOperationName(), ldKeys(span));
194-
assertKeyPresent(span, DDTags.DD_CODE_ORIGIN_FILE);
195-
assertKeyPresent(span, DDTags.DD_CODE_ORIGIN_LINE);
196-
assertKeyPresent(span, DDTags.DD_CODE_ORIGIN_METHOD);
197-
assertKeyPresent(span, DDTags.DD_CODE_ORIGIN_METHOD_SIGNATURE);
198193

199194
assertEquals(span.getTag(DD_STACK_CODE_ORIGIN_TYPE), "entry", keys);
200195
assertKeyPresent(span, DD_STACK_CODE_ORIGIN_TYPE);
201196
assertKeyPresent(span, format(DD_STACK_CODE_ORIGIN_FRAME, 0, "file"));
202197
assertKeyPresent(span, format(DD_STACK_CODE_ORIGIN_FRAME, 0, "line"));
203198
assertKeyPresent(span, format(DD_STACK_CODE_ORIGIN_FRAME, 0, "method"));
199+
assertKeyPresent(span, format(DD_STACK_CODE_ORIGIN_FRAME, 0, "signature"));
204200
assertKeyPresent(span, format(DD_STACK_CODE_ORIGIN_FRAME, 0, "type"));
205201

206202
if (includeSnapshot) {
207-
assertKeyPresent(span, DDTags.DD_CODE_ORIGIN_SNAPSHOT_ID);
208203
assertKeyPresent(span, format(DD_STACK_CODE_ORIGIN_FRAME, 0, "snapshot_id"));
209204
}
210205
}
@@ -229,12 +224,6 @@ private static void checkExitSpanTags(MutableSpan span, boolean includeSnapshot)
229224
String keys =
230225
format("Existing keys for %s: %s", span.getOperationName(), new TreeSet<>(ldKeys(span)));
231226

232-
assertKeyNotPresent(span, DDTags.DD_CODE_ORIGIN_FILE);
233-
assertKeyNotPresent(span, DDTags.DD_CODE_ORIGIN_LINE);
234-
assertKeyNotPresent(span, DDTags.DD_CODE_ORIGIN_METHOD);
235-
assertKeyNotPresent(span, DDTags.DD_CODE_ORIGIN_METHOD_SIGNATURE);
236-
assertKeyNotPresent(span, DDTags.DD_CODE_ORIGIN_SNAPSHOT_ID);
237-
238227
assertKeyPresent(span, DD_STACK_CODE_ORIGIN_TYPE);
239228
assertKeyPresent(span, format(DD_STACK_CODE_ORIGIN_FRAME, 0, "file"));
240229
assertKeyPresent(span, format(DD_STACK_CODE_ORIGIN_FRAME, 0, "line"));

dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/asserts/TagsAssert.groovy

-4
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,6 @@ class TagsAssert {
6262
assertedTags.add(DDTags.PROFILING_ENABLED)
6363
assertedTags.add(DDTags.PROFILING_CONTEXT_ENGINE)
6464
assertedTags.add(DDTags.BASE_SERVICE)
65-
assertedTags.add(DDTags.DD_CODE_ORIGIN_FILE)
66-
assertedTags.add(DDTags.DD_CODE_ORIGIN_METHOD)
67-
assertedTags.add(DDTags.DD_CODE_ORIGIN_LINE)
68-
assertedTags.add(DDTags.DD_CODE_ORIGIN_METHOD_SIGNATURE)
6965
assertedTags.add(DDTags.DSM_ENABLED)
7066
assertedTags.add(DDTags.DJM_ENABLED)
7167
assertedTags.add(DDTags.PARENT_ID)

dd-trace-api/src/main/java/datadog/trace/api/DDTags.java

+3-11
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,12 @@
33
public class DDTags {
44

55
private static final String DD_LD_PREFIX = "_dd.ld.";
6-
public static final String DD_STACK_CODE_ORIGIN_PREFIX = "_dd.stack.code_origin.";
6+
public static final String DD_STACK_CODE_ORIGIN_PREFIX = DD_LD_PREFIX + "code_origin.";
77

88
public static final String DD_STACK_CODE_ORIGIN_TYPE = DD_STACK_CODE_ORIGIN_PREFIX + "type";
9-
// _dd.stack.code_origin.frame.%d.file|line|method|type|snapshot_id
9+
// _dd.ld.code_origin.frames.%d.file|line|method|type|snapshot_id
1010
public static final String DD_STACK_CODE_ORIGIN_FRAME =
11-
DD_STACK_CODE_ORIGIN_PREFIX + "frame.%d.%s";
12-
13-
public static final String DD_CODE_ORIGIN_FILE = DD_LD_PREFIX + "code_origin.file";
14-
public static final String DD_CODE_ORIGIN_METHOD = DD_LD_PREFIX + "code_origin.method";
15-
public static final String DD_CODE_ORIGIN_METHOD_SIGNATURE =
16-
DD_LD_PREFIX + "code_origin.signature";
17-
public static final String DD_CODE_ORIGIN_LINE = DD_LD_PREFIX + "code_origin.line";
18-
public static final String DD_CODE_ORIGIN_SNAPSHOT_ID = DD_LD_PREFIX + "code_origin.snapshot_id";
19-
public static final String DD_CODE_ORIGIN_TYPE = DD_LD_PREFIX + "code_origin.type";
11+
DD_STACK_CODE_ORIGIN_PREFIX + "frames.%d.%s";
2012

2113
public static final String SPAN_TYPE = "span.type";
2214
public static final String SERVICE_NAME = "service.name";

0 commit comments

Comments
 (0)