Skip to content

Commit 63bc58b

Browse files
committed
Revert "Add optional (experimental) process span on consuming a message. This make the spans correctly connected and hierarchical instead of separeted."
This reverts commit fcfd92b.
1 parent 067e7a3 commit 63bc58b

File tree

5 files changed

+6
-105
lines changed

5 files changed

+6
-105
lines changed

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

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,19 @@
88
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
99
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface;
1010
import static io.opentelemetry.javaagent.instrumentation.jms.JmsReceiveSpanUtil.createReceiveSpan;
11-
import static io.opentelemetry.javaagent.instrumentation.jms.v1_1.JmsSingletons.consumerProcessInstrumenter;
1211
import static io.opentelemetry.javaagent.instrumentation.jms.v1_1.JmsSingletons.consumerReceiveInstrumenter;
1312
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
1413
import static net.bytebuddy.matcher.ElementMatchers.named;
1514
import static net.bytebuddy.matcher.ElementMatchers.returns;
1615
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
1716

1817
import io.opentelemetry.context.Context;
19-
import io.opentelemetry.context.Scope;
2018
import io.opentelemetry.instrumentation.api.internal.Timer;
21-
import io.opentelemetry.instrumentation.api.util.VirtualField;
2219
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
2320
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
2421
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
25-
import io.opentelemetry.javaagent.instrumentation.jms.JmsConfig;
26-
import io.opentelemetry.javaagent.instrumentation.jms.MessageState;
2722
import io.opentelemetry.javaagent.instrumentation.jms.MessageWithDestination;
2823
import javax.jms.Message;
29-
import javax.jms.MessageConsumer;
3024
import net.bytebuddy.asm.Advice;
3125
import net.bytebuddy.description.type.TypeDescription;
3226
import net.bytebuddy.matcher.ElementMatcher;
@@ -63,25 +57,12 @@ public void transform(TypeTransformer transformer) {
6357
public static class ConsumerAdvice {
6458

6559
@Advice.OnMethodEnter
66-
public static Timer onEnter(@Advice.This MessageConsumer consumer) {
67-
68-
if (JmsConfig.EXPERIMENTAL_CONSUMER_PROCESS_TELEMETRY_ENABLED) {
69-
VirtualField<MessageConsumer, MessageState> storage =
70-
VirtualField.find(MessageConsumer.class, MessageState.class);
71-
MessageState messageState = storage.get(consumer);
72-
if (messageState != null) {
73-
messageState.processScope.close();
74-
consumerProcessInstrumenter().end(messageState.context, messageState.message, null, null);
75-
storage.set(consumer, null);
76-
}
77-
}
78-
60+
public static Timer onEnter() {
7961
return Timer.start();
8062
}
8163

8264
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
8365
public static void stopSpan(
84-
@Advice.This MessageConsumer consumer,
8566
@Advice.Enter Timer timer,
8667
@Advice.Return Message message,
8768
@Advice.Thrown Throwable throwable) {
@@ -94,17 +75,7 @@ public static void stopSpan(
9475
MessageWithDestination request =
9576
MessageWithDestination.create(JavaxMessageAdapter.create(message), null);
9677

97-
Context receiveContext =
98-
createReceiveSpan(consumerReceiveInstrumenter(), request, timer, throwable);
99-
if (JmsConfig.EXPERIMENTAL_CONSUMER_PROCESS_TELEMETRY_ENABLED && receiveContext != null) {
100-
if (consumerProcessInstrumenter().shouldStart(receiveContext, request)) {
101-
Context processContext = consumerProcessInstrumenter().start(receiveContext, request);
102-
Scope processScope = processContext.makeCurrent();
103-
VirtualField<MessageConsumer, MessageState> storage =
104-
VirtualField.find(MessageConsumer.class, MessageState.class);
105-
storage.set(consumer, new MessageState(processContext, processScope, request));
106-
}
107-
}
78+
createReceiveSpan(consumerReceiveInstrumenter(), request, timer, throwable);
10879
}
10980
}
11081
}

instrumentation/jms/jms-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/v3_0/JmsMessageConsumerInstrumentation.java

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,19 @@
88
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
99
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface;
1010
import static io.opentelemetry.javaagent.instrumentation.jms.JmsReceiveSpanUtil.createReceiveSpan;
11-
import static io.opentelemetry.javaagent.instrumentation.jms.v3_0.JmsSingletons.consumerProcessInstrumenter;
1211
import static io.opentelemetry.javaagent.instrumentation.jms.v3_0.JmsSingletons.consumerReceiveInstrumenter;
1312
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
1413
import static net.bytebuddy.matcher.ElementMatchers.named;
1514
import static net.bytebuddy.matcher.ElementMatchers.returns;
1615
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
1716

1817
import io.opentelemetry.context.Context;
19-
import io.opentelemetry.context.Scope;
2018
import io.opentelemetry.instrumentation.api.internal.Timer;
21-
import io.opentelemetry.instrumentation.api.util.VirtualField;
2219
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
2320
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
2421
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
25-
import io.opentelemetry.javaagent.instrumentation.jms.JmsConfig;
26-
import io.opentelemetry.javaagent.instrumentation.jms.MessageState;
2722
import io.opentelemetry.javaagent.instrumentation.jms.MessageWithDestination;
2823
import jakarta.jms.Message;
29-
import jakarta.jms.MessageConsumer;
3024
import net.bytebuddy.asm.Advice;
3125
import net.bytebuddy.description.type.TypeDescription;
3226
import net.bytebuddy.matcher.ElementMatcher;
@@ -63,24 +57,12 @@ public void transform(TypeTransformer transformer) {
6357
public static class ConsumerAdvice {
6458

6559
@Advice.OnMethodEnter
66-
public static Timer onEnter(@Advice.This MessageConsumer consumer) {
67-
if (JmsConfig.EXPERIMENTAL_CONSUMER_PROCESS_TELEMETRY_ENABLED) {
68-
VirtualField<MessageConsumer, MessageState> storage =
69-
VirtualField.find(MessageConsumer.class, MessageState.class);
70-
MessageState messageState = storage.get(consumer);
71-
if (messageState != null) {
72-
messageState.processScope.close();
73-
consumerProcessInstrumenter().end(messageState.context, messageState.message, null, null);
74-
storage.set(consumer, null);
75-
}
76-
}
77-
60+
public static Timer onEnter() {
7861
return Timer.start();
7962
}
8063

8164
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
8265
public static void stopSpan(
83-
@Advice.This MessageConsumer consumer,
8466
@Advice.Enter Timer timer,
8567
@Advice.Return Message message,
8668
@Advice.Thrown Throwable throwable) {
@@ -93,17 +75,7 @@ public static void stopSpan(
9375
MessageWithDestination request =
9476
MessageWithDestination.create(JakartaMessageAdapter.create(message), null);
9577

96-
Context receiveContext =
97-
createReceiveSpan(consumerReceiveInstrumenter(), request, timer, throwable);
98-
if (JmsConfig.EXPERIMENTAL_CONSUMER_PROCESS_TELEMETRY_ENABLED && receiveContext != null) {
99-
if (consumerProcessInstrumenter().shouldStart(receiveContext, request)) {
100-
Context processContext = consumerProcessInstrumenter().start(receiveContext, request);
101-
Scope processScope = processContext.makeCurrent();
102-
VirtualField<MessageConsumer, MessageState> storage =
103-
VirtualField.find(MessageConsumer.class, MessageState.class);
104-
storage.set(consumer, new MessageState(processContext, processScope, request));
105-
}
106-
}
78+
createReceiveSpan(consumerReceiveInstrumenter(), request, timer, throwable);
10779
}
10880
}
10981
}

instrumentation/jms/jms-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsConfig.java

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

instrumentation/jms/jms-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsReceiveSpanUtil.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ public final class JmsReceiveSpanUtil {
2121
private static final boolean receiveInstrumentationEnabled =
2222
ExperimentalConfig.get().messagingReceiveInstrumentationEnabled();
2323

24-
public static Context createReceiveSpan(
24+
public static void createReceiveSpan(
2525
Instrumenter<MessageWithDestination, Void> receiveInstrumenter,
2626
MessageWithDestination request,
2727
Timer timer,
2828
Throwable throwable) {
2929
Context parentContext = Context.current();
3030
// if receive instrumentation is not enabled we'll use the producer as parent
31-
// according to the stable conventions the production should only be linked not as parent
31+
// according to the stable convertions the production should only be linked not as parent
3232
if (!receiveInstrumentationEnabled && !emitStableMessagingSemconv()) {
3333
parentContext =
3434
propagators
@@ -47,9 +47,7 @@ public static Context createReceiveSpan(
4747
timer.startTime(),
4848
timer.now());
4949
JmsReceiveContextHolder.set(receiveContext);
50-
return receiveContext;
5150
}
52-
return null;
5351
}
5452

5553
private JmsReceiveSpanUtil() {}

instrumentation/jms/jms-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/MessageState.java

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

0 commit comments

Comments
 (0)