Skip to content

Commit 3f5ba13

Browse files
committed
Address Couchbase instrumentation TODOs
1 parent c7eb065 commit 3f5ba13

File tree

11 files changed

+30
-18
lines changed

11 files changed

+30
-18
lines changed

instrumentation/couchbase/couchbase-2.0/javaagent/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ dependencies {
2626

2727
testImplementation(project(":instrumentation:couchbase:couchbase-common:testing"))
2828

29-
// TODO testInstrumentation(project(":instrumentation:couchbase:couchbase-2.6:javaagent"))
29+
testInstrumentation(project(":instrumentation:couchbase:couchbase-2.6:javaagent"))
3030
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1:javaagent"))
3131
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1.6:javaagent"))
3232
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.2:javaagent"))

instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseInstrumentationModule.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0;
77

8+
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
89
import static java.util.Arrays.asList;
910
import static java.util.Collections.singletonList;
1011

@@ -13,6 +14,7 @@
1314
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1415
import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule;
1516
import java.util.List;
17+
import net.bytebuddy.matcher.ElementMatcher;
1618

1719
@AutoService(InstrumentationModule.class)
1820
public class CouchbaseInstrumentationModule extends InstrumentationModule
@@ -46,4 +48,10 @@ public List<String> injectedClassNames() {
4648
public boolean isIndyReady() {
4749
return true;
4850
}
51+
52+
@Override
53+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
54+
// removed in 3.x
55+
return hasClassesNamed("com.couchbase.client.java.CouchbaseAsyncBucket");
56+
}
4957
}

instrumentation/couchbase/couchbase-2.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_6/CouchbaseInstrumentationModule.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55

66
package io.opentelemetry.javaagent.instrumentation.couchbase.v2_6;
77

8+
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
89
import static java.util.Arrays.asList;
910

1011
import com.google.auto.service.AutoService;
1112
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
1213
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1314
import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule;
1415
import java.util.List;
16+
import net.bytebuddy.matcher.ElementMatcher;
1517

1618
@AutoService(InstrumentationModule.class)
1719
public class CouchbaseInstrumentationModule extends InstrumentationModule
@@ -21,6 +23,12 @@ public CouchbaseInstrumentationModule() {
2123
super("couchbase", "couchbase-2.6");
2224
}
2325

26+
@Override
27+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
28+
// introduced in java-client 2.6, removed in 3.x
29+
return hasClassesNamed("com.couchbase.client.java.auth.CertAuthenticator");
30+
}
31+
2432
@Override
2533
public List<TypeInstrumentation> typeInstrumentations() {
2634
return asList(new CouchbaseCoreInstrumentation(), new CouchbaseNetworkInstrumentation());

instrumentation/couchbase/couchbase-3.1.6/javaagent/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ dependencies {
3535

3636
testInstrumentation(project(":instrumentation:couchbase:couchbase-2.0:javaagent"))
3737
testInstrumentation(project(":instrumentation:couchbase:couchbase-2.6:javaagent"))
38-
// TODO testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1:javaagent"))
38+
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1:javaagent"))
3939
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.2:javaagent"))
4040
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.4:javaagent"))
4141
testImplementation("org.testcontainers:testcontainers-couchbase")

instrumentation/couchbase/couchbase-3.1.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_1_6/CouchbaseInstrumentationModule.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,9 @@ public CouchbaseInstrumentationModule() {
2525

2626
@Override
2727
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
28-
// New class introduced in 3.1, the minimum version we support.
29-
// NB: Couchbase does not provide any API guarantees on their core IO artifact so reconsider
30-
// instrumenting it instead of each individual JVM artifact if this becomes unmaintainable.
31-
return hasClassesNamed("com.couchbase.client.core.cnc.TracingIdentifiers")
32-
// added in 3.2
28+
// introduced in java-client 3.1.6 (core-io 2.1.6)
29+
return hasClassesNamed("com.couchbase.client.core.endpoint.EventingEndpoint")
30+
// introduced in java-client 3.2.0 (core-io 2.2.0)
3331
.and(not(hasClassesNamed("com.couchbase.client.core.cnc.RequestSpan$StatusCode")));
3432
}
3533

instrumentation/couchbase/couchbase-3.1/javaagent/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ dependencies {
3636

3737
testInstrumentation(project(":instrumentation:couchbase:couchbase-2.0:javaagent"))
3838
testInstrumentation(project(":instrumentation:couchbase:couchbase-2.6:javaagent"))
39-
// TODO testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1.6:javaagent"))
39+
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1.6:javaagent"))
4040
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.2:javaagent"))
4141
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.4:javaagent"))
4242
testImplementation("org.testcontainers:testcontainers-couchbase")

instrumentation/couchbase/couchbase-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_1/CouchbaseInstrumentationModule.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,10 @@ public CouchbaseInstrumentationModule() {
2525

2626
@Override
2727
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
28-
// New class introduced in 3.1, the minimum version we support.
29-
// NB: Couchbase does not provide any API guarantees on their core IO artifact so reconsider
30-
// instrumenting it instead of each individual JVM artifact if this becomes unmaintainable.
28+
// introduced in java-client 3.1.0 (core-io 2.1.0)
3129
return hasClassesNamed("com.couchbase.client.core.cnc.TracingIdentifiers")
32-
// added in 3.2
33-
.and(not(hasClassesNamed("com.couchbase.client.core.cnc.RequestSpan$StatusCode")));
30+
// introduced in java-client 3.1.6 (core-io 2.1.6)
31+
.and(not(hasClassesNamed("com.couchbase.client.core.endpoint.EventingEndpoint")));
3432
}
3533

3634
@Override

instrumentation/couchbase/couchbase-3.2/javaagent/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ dependencies {
3838
testInstrumentation(project(":instrumentation:couchbase:couchbase-2.0:javaagent"))
3939
testInstrumentation(project(":instrumentation:couchbase:couchbase-2.6:javaagent"))
4040
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1:javaagent"))
41-
// TODO testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1.6:javaagent"))
41+
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1.6:javaagent"))
4242
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.4:javaagent"))
4343

4444
latestDepTestLibrary("com.couchbase.client:java-client:3.3.+") // see couchbase-3.4 module

instrumentation/couchbase/couchbase-3.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_2/CouchbaseInstrumentationModule.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ public CouchbaseInstrumentationModule() {
2525

2626
@Override
2727
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
28-
// New class introduced in 3.2.
29-
// CoreTransactionRequest was introduced in 3.4.0.
28+
// introduced in java-client 3.2.0 (core-io 2.2.0)
3029
return hasClassesNamed("com.couchbase.client.core.cnc.RequestSpan$StatusCode")
30+
// introduced in java-client 3.4.0 (core-io 2.4.0)
3131
.and(
3232
not(
3333
hasClassesNamed(

instrumentation/couchbase/couchbase-3.4/javaagent/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ dependencies {
3838
testInstrumentation(project(":instrumentation:couchbase:couchbase-2.0:javaagent"))
3939
testInstrumentation(project(":instrumentation:couchbase:couchbase-2.6:javaagent"))
4040
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1:javaagent"))
41-
// TODO testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1.6:javaagent"))
41+
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1.6:javaagent"))
4242
testInstrumentation(project(":instrumentation:couchbase:couchbase-3.2:javaagent"))
4343
}
4444

0 commit comments

Comments
 (0)