Skip to content

Commit b5bbc62

Browse files
authored
Always create a JMS consumer span (#10604)
1 parent 7a4f121 commit b5bbc62

File tree

37 files changed

+1562
-820
lines changed

37 files changed

+1562
-820
lines changed

instrumentation/jms/jms-1.1/javaagent/build.gradle.kts

+27-5
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,40 @@ testing {
3636
implementation("org.hornetq:hornetq-jms-client:2.4.7.Final")
3737
implementation("org.hornetq:hornetq-jms-server:2.4.7.Final")
3838
}
39+
40+
targets {
41+
all {
42+
testTask.configure {
43+
jvmArgs("-Dotel.instrumentation.messaging.experimental.receive-telemetry.enabled=true")
44+
}
45+
}
46+
}
3947
}
4048
}
4149
}
4250

43-
tasks.withType<Test>().configureEach {
44-
usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service)
45-
jvmArgs("-Dotel.instrumentation.messaging.experimental.receive-telemetry.enabled=true")
46-
}
47-
4851
tasks {
52+
withType<Test>().configureEach {
53+
usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service)
54+
}
55+
56+
val testReceiveSpansDisabled by registering(Test::class) {
57+
filter {
58+
includeTestsMatching("Jms1SuppressReceiveSpansTest")
59+
}
60+
include("**/Jms1SuppressReceiveSpansTest.*")
61+
}
62+
63+
test {
64+
filter {
65+
excludeTestsMatching("Jms1SuppressReceiveSpansTest")
66+
}
67+
jvmArgs("-Dotel.instrumentation.messaging.experimental.receive-telemetry.enabled=true")
68+
}
69+
4970
check {
5071
dependsOn(testing.suites)
72+
dependsOn(testReceiveSpansDisabled)
5173
}
5274
}
5375

instrumentation/jms/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/v1_1/JmsMessageConsumerInstrumentation.java

+2-11
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77

88
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
99
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface;
10+
import static io.opentelemetry.javaagent.instrumentation.jms.JmsReceiveSpanUtil.createReceiveSpan;
1011
import static io.opentelemetry.javaagent.instrumentation.jms.v1_1.JmsSingletons.consumerReceiveInstrumenter;
1112
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
1213
import static net.bytebuddy.matcher.ElementMatchers.named;
1314
import static net.bytebuddy.matcher.ElementMatchers.returns;
1415
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
1516

1617
import io.opentelemetry.context.Context;
17-
import io.opentelemetry.instrumentation.api.internal.InstrumenterUtil;
1818
import io.opentelemetry.instrumentation.api.internal.Timer;
1919
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
2020
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
@@ -75,16 +75,7 @@ public static void stopSpan(
7575
MessageWithDestination request =
7676
MessageWithDestination.create(JavaxMessageAdapter.create(message), null);
7777

78-
if (consumerReceiveInstrumenter().shouldStart(parentContext, request)) {
79-
InstrumenterUtil.startAndEnd(
80-
consumerReceiveInstrumenter(),
81-
parentContext,
82-
request,
83-
null,
84-
throwable,
85-
timer.startTime(),
86-
timer.now());
87-
}
78+
createReceiveSpan(consumerReceiveInstrumenter(), request, timer, throwable);
8879
}
8980
}
9081
}

instrumentation/jms/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/v1_1/JmsSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public final class JmsSingletons {
2727

2828
PRODUCER_INSTRUMENTER = factory.createProducerInstrumenter();
2929
CONSUMER_RECEIVE_INSTRUMENTER = factory.createConsumerReceiveInstrumenter();
30-
CONSUMER_PROCESS_INSTRUMENTER = factory.createConsumerProcessInstrumenter();
30+
CONSUMER_PROCESS_INSTRUMENTER = factory.createConsumerProcessInstrumenter(false);
3131
}
3232

3333
public static Instrumenter<MessageWithDestination, Void> producerInstrumenter() {

0 commit comments

Comments
 (0)