Skip to content

Commit 4b03ecb

Browse files
committed
Use local root span to set resource name
1 parent 99d47ca commit 4b03ecb

3 files changed

Lines changed: 19 additions & 6 deletions

File tree

dd-java-agent/instrumentation/rs/jakarta-rs-annotations-3.0/src/main/java/datadog/trace/instrumentation/jakarta3/JakartaRsAnnotationsDecorator.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import datadog.trace.bootstrap.ClassHierarchyIterable;
88
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
99
import datadog.trace.bootstrap.instrumentation.api.InternalSpanTypes;
10+
import datadog.trace.bootstrap.instrumentation.api.ResourceNamePriorities;
1011
import datadog.trace.bootstrap.instrumentation.api.Tags;
1112
import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString;
1213
import datadog.trace.bootstrap.instrumentation.decorator.BaseDecorator;
@@ -68,10 +69,18 @@ public void onJakartaRsSpan(
6869
} else {
6970
span.setResourceName(DECORATE.spanNameForMethod(target, method));
7071

71-
if (parent == parent.getLocalRootSpan()) {
72+
if (parent.getLocalRootSpan().getResourceNamePriority()
73+
< ResourceNamePriorities.HTTP_FRAMEWORK_ROUTE) {
7274
parent.setTag(Tags.COMPONENT, "jakarta-rs");
75+
76+
// current handler is a filter
77+
if (!httpMethodAndRoute.hasLeft()
78+
&& (!httpMethodAndRoute.hasRight() || httpMethodAndRoute.getRight().length() == 0)) {
79+
return;
80+
}
81+
7382
HTTP_RESOURCE_DECORATOR.withRoute(
74-
parent, httpMethodAndRoute.getLeft(), httpMethodAndRoute.getRight());
83+
parent.getLocalRootSpan(), httpMethodAndRoute.getLeft(), httpMethodAndRoute.getRight());
7584
}
7685
}
7786
}

dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.4/src/main/java/datadog/trace/instrumentation/vertx_3_4/server/RouteHandlerWrapper.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ private void setRoute(RoutingContext routingContext) {
6969
return;
7070
}
7171

72+
final AgentSpan routeSpan = parentSpan.getLocalRootSpan();
73+
7274
final String method = routingContext.request().rawMethod();
7375
String mountPoint = routingContext.mountPoint();
7476
String path = routingContext.currentRoute().getPath();
@@ -81,9 +83,9 @@ private void setRoute(RoutingContext routingContext) {
8183
}
8284
path = mountPoint + path;
8385
}
84-
if (method != null && path != null && shouldUpdateRoute(routingContext, parentSpan, path)) {
86+
if (method != null && path != null && shouldUpdateRoute(routingContext, routeSpan, path)) {
8587
routingContext.put(ROUTE_CONTEXT_KEY, path);
86-
HTTP_RESOURCE_DECORATOR.withRoute(parentSpan, method, path, true);
88+
HTTP_RESOURCE_DECORATOR.withRoute(routeSpan, method, path, true);
8789
}
8890
}
8991

dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-4.0/src/main/java/datadog/trace/instrumentation/vertx_4_0/server/RouteHandlerWrapper.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ private void setRoute(RoutingContext routingContext) {
6666
return;
6767
}
6868

69+
final AgentSpan routeSpan = parentSpan.getLocalRootSpan();
70+
6971
final String method = routingContext.request().method().name();
7072
final String mountPoint = routingContext.mountPoint();
7173

@@ -82,9 +84,9 @@ private void setRoute(RoutingContext routingContext) {
8284
: mountPoint;
8385
path = noBackslashhMountPoint + path;
8486
}
85-
if (method != null && path != null && shouldUpdateRoute(routingContext, parentSpan, path)) {
87+
if (method != null && path != null && shouldUpdateRoute(routingContext, routeSpan, path)) {
8688
routingContext.put(ROUTE_CONTEXT_KEY, path);
87-
HTTP_RESOURCE_DECORATOR.withRoute(parentSpan, method, path, true);
89+
HTTP_RESOURCE_DECORATOR.withRoute(routeSpan, method, path, true);
8890
}
8991
}
9092

0 commit comments

Comments
 (0)