File tree Expand file tree Collapse file tree 19 files changed +334
-8
lines changed
instrumentation/couchbase
couchbase-3.1.6/javaagent
main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_1_6
test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_1_6
main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_1
test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_1
main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_2
test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_2
main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_4
test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_4
tracing-opentelemetry-shaded Expand file tree Collapse file tree 19 files changed +334
-8
lines changed Original file line number Diff line number Diff line change @@ -427,6 +427,9 @@ targets:
427427 - type : gradle
428428 path : ./
429429 target : ' :instrumentation:couchbase:couchbase-3.2:javaagent'
430+ - type : gradle
431+ path : ./
432+ target : ' :instrumentation:couchbase:couchbase-3.4:javaagent'
430433 - type : gradle
431434 path : ./
432435 target : ' :instrumentation:dropwizard:dropwizard-metrics-4.0:javaagent'
Original file line number Diff line number Diff line change @@ -26,6 +26,12 @@ dependencies {
2626
2727 testImplementation(project(" :instrumentation:couchbase:couchbase-common:testing" ))
2828
29+ // TODO testInstrumentation(project(":instrumentation:couchbase:couchbase-2.6:javaagent"))
30+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.1:javaagent" ))
31+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.1.6:javaagent" ))
32+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.2:javaagent" ))
33+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.4:javaagent" ))
34+
2935 latestDepTestLibrary(" org.springframework.data:spring-data-couchbase:2.+" ) // see couchbase-2.6 module
3036 latestDepTestLibrary(" com.couchbase.client:java-client:2.5.+" ) // see couchbase-2.6 module
3137}
Original file line number Diff line number Diff line change @@ -23,12 +23,17 @@ dependencies {
2323
2424 library(" com.couchbase.client:java-client:2.6.0" )
2525
26- testInstrumentation(project(" :instrumentation:couchbase:couchbase-2.0:javaagent" ))
2726 testImplementation(project(" :instrumentation:couchbase:couchbase-common:testing" ))
2827
2928 testLibrary(" org.springframework.data:spring-data-couchbase:3.1.0.RELEASE" )
3029 testLibrary(" com.couchbase.client:encryption:1.0.0" )
3130
31+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-2.0:javaagent" ))
32+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.1:javaagent" ))
33+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.1.6:javaagent" ))
34+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.2:javaagent" ))
35+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.4:javaagent" ))
36+
3237 latestDepTestLibrary(" org.springframework.data:spring-data-couchbase:3.1.+" ) // see couchbase-3.1 module
3338 latestDepTestLibrary(" com.couchbase.client:java-client:2.+" ) // see couchbase-3.1 module
3439}
Original file line number Diff line number Diff line change @@ -33,6 +33,11 @@ dependencies {
3333
3434 library(" com.couchbase.client:java-client:3.1.6" )
3535
36+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-2.0:javaagent" ))
37+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-2.6:javaagent" ))
38+ // TODO testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1:javaagent"))
39+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.2:javaagent" ))
40+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.4:javaagent" ))
3641 testImplementation(" org.testcontainers:testcontainers-couchbase" )
3742
3843 latestDepTestLibrary(" com.couchbase.client:java-client:3.1.+" ) // see couchbase-3.2 module
Original file line number Diff line number Diff line change 66package io .opentelemetry .javaagent .instrumentation .couchbase .v3_1_6 ;
77
88import static io .opentelemetry .javaagent .extension .matcher .AgentElementMatchers .hasClassesNamed ;
9+ import static net .bytebuddy .matcher .ElementMatchers .not ;
910
1011import com .google .auto .service .AutoService ;
1112import io .opentelemetry .javaagent .extension .instrumentation .InstrumentationModule ;
@@ -27,7 +28,9 @@ public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
2728 // New class introduced in 3.1, the minimum version we support.
2829 // NB: Couchbase does not provide any API guarantees on their core IO artifact so reconsider
2930 // instrumenting it instead of each individual JVM artifact if this becomes unmaintainable.
30- return hasClassesNamed ("com.couchbase.client.core.cnc.TracingIdentifiers" );
31+ return hasClassesNamed ("com.couchbase.client.core.cnc.TracingIdentifiers" )
32+ // added in 3.2
33+ .and (not (hasClassesNamed ("com.couchbase.client.core.cnc.RequestSpan$StatusCode" )));
3134 }
3235
3336 @ Override
Original file line number Diff line number Diff line change 55
66package io .opentelemetry .javaagent .instrumentation .couchbase .v3_1_6 ;
77
8+ import static io .opentelemetry .api .trace .SpanKind .INTERNAL ;
9+
810import com .couchbase .client .core .env .TimeoutConfig ;
911import com .couchbase .client .core .error .DocumentNotFoundException ;
1012import com .couchbase .client .java .Bucket ;
1416import com .couchbase .client .java .env .ClusterEnvironment ;
1517import io .opentelemetry .instrumentation .testing .junit .AgentInstrumentationExtension ;
1618import io .opentelemetry .instrumentation .testing .junit .InstrumentationExtension ;
19+ import io .opentelemetry .sdk .trace .data .StatusData ;
1720import java .time .Duration ;
1821import org .junit .jupiter .api .AfterAll ;
1922import org .junit .jupiter .api .BeforeAll ;
@@ -86,6 +89,12 @@ void testEmitsSpans() {
8689 testing .waitAndAssertTracesWithoutScopeVersionVerification (
8790 trace ->
8891 trace .hasSpansSatisfyingExactly (
89- span -> span .hasName ("get" ), span -> span .hasName ("dispatch_to_server" )));
92+ span -> {
93+ span .hasKind (INTERNAL ) // later version of couchbase gives correct behavior
94+ .hasName ("get" )
95+ .hasStatus (
96+ StatusData .unset ()); // later version of couchbase gives correct behavior
97+ },
98+ span -> span .hasName ("dispatch_to_server" )));
9099 }
91100}
Original file line number Diff line number Diff line change @@ -34,6 +34,11 @@ dependencies {
3434 // 3.1.4 (instead of 3.1.0) needed for test stability and for compatibility with server versions that run on M1 processors
3535 library(" com.couchbase.client:java-client:3.1.4" )
3636
37+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-2.0:javaagent" ))
38+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-2.6:javaagent" ))
39+ // TODO testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1.6:javaagent"))
40+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.2:javaagent" ))
41+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.4:javaagent" ))
3742 testImplementation(" org.testcontainers:testcontainers-couchbase" )
3843
3944 latestDepTestLibrary(" com.couchbase.client:java-client:3.1.5" ) // see couchbase-3.1.6 module
Original file line number Diff line number Diff line change 66package io .opentelemetry .javaagent .instrumentation .couchbase .v3_1 ;
77
88import static io .opentelemetry .javaagent .extension .matcher .AgentElementMatchers .hasClassesNamed ;
9+ import static net .bytebuddy .matcher .ElementMatchers .not ;
910
1011import com .google .auto .service .AutoService ;
1112import io .opentelemetry .javaagent .extension .instrumentation .InstrumentationModule ;
@@ -27,7 +28,9 @@ public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
2728 // New class introduced in 3.1, the minimum version we support.
2829 // NB: Couchbase does not provide any API guarantees on their core IO artifact so reconsider
2930 // instrumenting it instead of each individual JVM artifact if this becomes unmaintainable.
30- return hasClassesNamed ("com.couchbase.client.core.cnc.TracingIdentifiers" );
31+ return hasClassesNamed ("com.couchbase.client.core.cnc.TracingIdentifiers" )
32+ // added in 3.2
33+ .and (not (hasClassesNamed ("com.couchbase.client.core.cnc.RequestSpan$StatusCode" )));
3134 }
3235
3336 @ Override
Original file line number Diff line number Diff line change 55
66package io .opentelemetry .javaagent .instrumentation .couchbase .v3_1 ;
77
8+ import static io .opentelemetry .api .trace .SpanKind .INTERNAL ;
9+
810import com .couchbase .client .core .env .TimeoutConfig ;
911import com .couchbase .client .core .error .DocumentNotFoundException ;
1012import com .couchbase .client .java .Bucket ;
1416import com .couchbase .client .java .env .ClusterEnvironment ;
1517import io .opentelemetry .instrumentation .testing .junit .AgentInstrumentationExtension ;
1618import io .opentelemetry .instrumentation .testing .junit .InstrumentationExtension ;
19+ import io .opentelemetry .sdk .trace .data .StatusData ;
1720import java .time .Duration ;
1821import org .junit .jupiter .api .AfterAll ;
1922import org .junit .jupiter .api .BeforeAll ;
@@ -86,6 +89,12 @@ void testEmitsSpans() {
8689 testing .waitAndAssertTracesWithoutScopeVersionVerification (
8790 trace ->
8891 trace .hasSpansSatisfyingExactly (
89- span -> span .hasName ("get" ), span -> span .hasName ("dispatch_to_server" )));
92+ span -> {
93+ span .hasKind (INTERNAL ) // later version of couchbase gives correct behavior
94+ .hasName ("get" )
95+ .hasStatus (
96+ StatusData .unset ()); // later version of couchbase gives correct behavior
97+ },
98+ span -> span .hasName ("dispatch_to_server" )));
9099 }
91100}
Original file line number Diff line number Diff line change 66 pass {
77 group.set(" com.couchbase.client" )
88 module.set(" java-client" )
9- versions.set(" [3.2.0,)" )
9+ versions.set(" [3.2.0,3.4.0 )" )
1010 // these versions were released as ".bundle" instead of ".jar"
1111 skip(" 2.7.5" , " 2.7.8" )
1212 assertInverse.set(true )
@@ -34,6 +34,14 @@ dependencies {
3434 library(" com.couchbase.client:java-client:3.2.0" )
3535
3636 testImplementation(" org.testcontainers:testcontainers-couchbase" )
37+
38+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-2.0:javaagent" ))
39+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-2.6:javaagent" ))
40+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.1:javaagent" ))
41+ // TODO testInstrumentation(project(":instrumentation:couchbase:couchbase-3.1.6:javaagent"))
42+ testInstrumentation(project(" :instrumentation:couchbase:couchbase-3.4:javaagent" ))
43+
44+ latestDepTestLibrary(" com.couchbase.client:java-client:3.3.+" ) // see couchbase-3.4 module
3745}
3846
3947tasks {
You can’t perform that action at this time.
0 commit comments