Skip to content

Commit fec879b

Browse files
committed
reviews
1 parent 9b0d45f commit fec879b

File tree

21 files changed

+121
-95
lines changed

21 files changed

+121
-95
lines changed

docs/supported-libraries.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ These are the supported libraries and frameworks:
105105
| [Micrometer](https://micrometer.io/) | 1.5+ (disabled by default) | [opentelemetry-micrometer-1.5](../instrumentation/micrometer/micrometer-1.5/library) | none |
106106
| [MongoDB Driver](https://mongodb.github.io/mongo-java-driver/) | 3.1+ | [opentelemetry-mongo-3.1](../instrumentation/mongo/mongo-3.1/library) | [Database Client Spans], [Database Client Metrics] [6] |
107107
| [MyBatis](https://mybatis.org/mybatis-3/) | 3.2+ | N/A | none |
108-
| [NATS](https://github.com/nats-io/nats.java) | 2.17.2+ | [nats-2.17](../instrumentation/nats/nats-2.17/library) | [Messaging Spans] |
108+
| [NATS Client](https://github.com/nats-io/nats.java) | 2.17.2+ | [nats-2.17](../instrumentation/nats/nats-2.17/library) | [Messaging Spans] |
109109
| [Netty HTTP codec [5]](https://github.com/netty/netty) | 3.8+ | [opentelemetry-netty-4.1](../instrumentation/netty/netty-4.1/library) | [HTTP Client Spans], [HTTP Client Metrics], [HTTP Server Spans], [HTTP Server Metrics] |
110110
| [OpenAI Java SDK](https://github.com/openai/openai-java) | 1.1+ | [openai-java-1.1](../instrumentation/openai/openai-java-1.1/library) | [GenAI Client Spans], [GenAI Client Metrics] |
111111
| [OpenSearch Rest Client](https://github.com/opensearch-project/opensearch-java) | 1.0+ | | [Database Client Spans], [Database Client Metrics] [6] |

instrumentation/nats/nats-2.17/javaagent/README.md

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

instrumentation/nats/nats-2.17/javaagent/build.gradle.kts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,14 @@ tasks {
3232
testClassesDirs = sourceSets.test.get().output.classesDirs
3333
classpath = sourceSets.test.get().runtimeClasspath
3434
filter {
35-
includeTestsMatching("NatsInstrumentationExperimentalTest")
35+
includeTestsMatching("NatsExperimentalTest")
3636
}
37-
jvmArgs("-Dotel.instrumentation.messaging.experimental.receive-telemetry.enabled=true")
3837
jvmArgs("-Dotel.instrumentation.messaging.experimental.capture-headers=captured-header")
3938
}
4039

4140
test {
4241
filter {
43-
excludeTestsMatching("NatsInstrumentationExperimentalTest")
42+
excludeTestsMatching("NatsExperimentalTest")
4443
}
4544
}
4645

instrumentation/nats/nats-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/nats/v2_17/ConnectionRequestInstrumentation.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -126,21 +126,14 @@ public static Message onEnter(
126126
@Advice.This Connection connection,
127127
@Advice.Argument(0) String subject,
128128
@Advice.Argument(1) byte[] body,
129-
@Advice.Argument(2) Duration timeout,
130-
@Advice.Local("message") Message message)
129+
@Advice.Argument(2) Duration timeout)
131130
throws InterruptedException {
132131
// call the instrumented request method
133-
message = connection.request(subject, null, body, timeout);
134-
return message;
132+
return connection.request(subject, null, body, timeout);
135133
}
136134

137135
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
138-
public static Message onExit(
139-
@Advice.Return(readOnly = false) Message returned,
140-
@Advice.Local("message") Message message) {
141-
returned = message;
142-
return returned;
143-
}
136+
public static void onExit(@Advice.Enter Message message) {}
144137
}
145138

146139
@SuppressWarnings("unused")
@@ -300,6 +293,7 @@ public static CompletableFuture<Message> onEnter(
300293
@Advice.This Connection connection,
301294
@Advice.Argument(0) Message message,
302295
@Advice.Local("future") CompletableFuture<Message> future) {
296+
// execute original method body to handle null message
303297
if (message == null) {
304298
return null;
305299
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
package io.opentelemetry.javaagent.instrumentation.nats.v2_17;
77

8-
import io.opentelemetry.instrumentation.nats.v2_17.AbstractNatsInstrumentationRequestTest;
8+
import io.opentelemetry.instrumentation.nats.v2_17.AbstractNatsDispatcherTest;
99
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
1010
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1111
import org.junit.jupiter.api.extension.RegisterExtension;
1212

13-
class NatsInstrumentationRequestTest extends AbstractNatsInstrumentationRequestTest {
13+
class NatsDispatcherTest extends AbstractNatsDispatcherTest {
1414

1515
@RegisterExtension
1616
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
package io.opentelemetry.javaagent.instrumentation.nats.v2_17;
77

8-
import io.opentelemetry.instrumentation.nats.v2_17.AbstractNatsInstrumentationPublishTest;
8+
import io.opentelemetry.instrumentation.nats.v2_17.AbstractNatsExperimentalTest;
99
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
1010
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1111
import org.junit.jupiter.api.extension.RegisterExtension;
1212

13-
class NatsInstrumentationPublishTest extends AbstractNatsInstrumentationPublishTest {
13+
class NatsExperimentalTest extends AbstractNatsExperimentalTest {
1414

1515
@RegisterExtension
1616
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
package io.opentelemetry.javaagent.instrumentation.nats.v2_17;
77

8-
import io.opentelemetry.instrumentation.nats.v2_17.AbstractNatsInstrumentationDispatcherTest;
8+
import io.opentelemetry.instrumentation.nats.v2_17.AbstractNatsPublishTest;
99
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
1010
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1111
import org.junit.jupiter.api.extension.RegisterExtension;
1212

13-
class NatsInstrumentationDispatcherTest extends AbstractNatsInstrumentationDispatcherTest {
13+
class NatsPublishTest extends AbstractNatsPublishTest {
1414

1515
@RegisterExtension
1616
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
package io.opentelemetry.javaagent.instrumentation.nats.v2_17;
77

8-
import io.opentelemetry.instrumentation.nats.v2_17.AbstractNatsInstrumentationExperimentalTest;
8+
import io.opentelemetry.instrumentation.nats.v2_17.AbstractNatsRequestTest;
99
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
1010
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1111
import org.junit.jupiter.api.extension.RegisterExtension;
1212

13-
class NatsInstrumentationExperimentalTest extends AbstractNatsInstrumentationExperimentalTest {
13+
class NatsRequestTest extends AbstractNatsRequestTest {
1414

1515
@RegisterExtension
1616
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();

instrumentation/nats/nats-2.17/library/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Library Instrumentation for NATS version 2.17
22

3-
Provides OpenTelemetry instrumentation for [NATS 2.17](https://github.com/nats-io/nats.java).
3+
Provides OpenTelemetry instrumentation for [NATS Client](https://github.com/nats-io/nats.java).
44

55
## Quickstart
66

instrumentation/nats/nats-2.17/library/src/main/java/io/opentelemetry/instrumentation/nats/v2_17/NatsTelemetry.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,23 @@
1414
import io.opentelemetry.instrumentation.nats.v2_17.internal.NatsRequest;
1515
import java.io.IOException;
1616

17+
/** Entrypoint for instrumenting NATS clients. */
1718
public final class NatsTelemetry {
1819

20+
/** Returns a new {@link NatsTelemetry} configured with the given {@link OpenTelemetry}. */
1921
public static NatsTelemetry create(OpenTelemetry openTelemetry) {
2022
return new NatsTelemetryBuilder(openTelemetry).build();
2123
}
2224

25+
/** Returns a new {@link NatsTelemetryBuilder} configured with the given {@link OpenTelemetry}. */
2326
public static NatsTelemetryBuilder builder(OpenTelemetry openTelemetry) {
2427
return new NatsTelemetryBuilder(openTelemetry);
2528
}
2629

2730
private final Instrumenter<NatsRequest, NatsRequest> producerInstrumenter;
2831
private final Instrumenter<NatsRequest, Void> consumerProcessInstrumenter;
2932

30-
public NatsTelemetry(
33+
NatsTelemetry(
3134
Instrumenter<NatsRequest, NatsRequest> producerInstrumenter,
3235
Instrumenter<NatsRequest, Void> consumerProcessInstrumenter) {
3336
this.producerInstrumenter = producerInstrumenter;
@@ -37,18 +40,21 @@ public NatsTelemetry(
3740
/**
3841
* Returns a {@link Connection} with telemetry instrumentation.
3942
*
40-
* <p>This does *not* monitor the main inbox of the default dispatcher. {@link
41-
* #configure(Options.Builder)} {@link #newConnection(Options.Builder, ConnectionFactory)} {@link
42-
* #newConnection(Options, ConnectionFactory)}
43+
* <p>This method should be used together with {@link #configure(Options.Builder)}. Consider using
44+
* {@link #newConnection(Options.Builder, ConnectionFactory)} or {@link #newConnection(Options,
45+
* ConnectionFactory)} instead.
4346
*/
4447
public Connection wrap(Connection connection) {
4548
return OpenTelemetryConnection.wrap(
4649
connection, producerInstrumenter, consumerProcessInstrumenter);
4750
}
4851

4952
/**
50-
* Returns a {@link Options.Builder} with the main inbox from the default dispatcher monitored
51-
* with telemetry instrumentation.
53+
* Returns a {@link Options.Builder} configured with telemetry instrumentation.
54+
*
55+
* <p>This method should be used together with {@link #wrap(Connection)}. Consider using {@link
56+
* #newConnection(Options.Builder, ConnectionFactory)} or {@link #newConnection(Options,
57+
* ConnectionFactory)} instead.
5258
*/
5359
public Options.Builder configure(Options.Builder options) {
5460
DispatcherFactory factory = options.build().getDispatcherFactory();

0 commit comments

Comments
 (0)