diff --git a/docs/instrumentation-list.yaml b/docs/instrumentation-list.yaml index bc696e94f632..2f1866ad6f0f 100644 --- a/docs/instrumentation-list.yaml +++ b/docs/instrumentation-list.yaml @@ -2759,6 +2759,9 @@ libraries: - name: couchbase-2.0 description: | This instrumentation enables database client spans and database client metrics for Couchbase 2.0 operations. It automatically traces key-value operations (get, upsert, replace, remove), view queries, N1QL queries, and cluster management operations. + semantic_conventions: + - DATABASE_CLIENT_SPANS + - DATABASE_CLIENT_METRICS library_link: https://github.com/couchbase/couchbase-java-client source_path: instrumentation/couchbase/couchbase-2.0 scope: @@ -2766,6 +2769,11 @@ libraries: target_versions: javaagent: - com.couchbase.client:java-client:[2,3) + configurations: + - name: otel.instrumentation.common.db-statement-sanitizer.enabled + description: Enables statement sanitization for database queries. + type: boolean + default: true telemetry: - when: default spans: @@ -2804,6 +2812,9 @@ libraries: - name: couchbase-2.6 description: | This instrumentation enables database client spans and database client metrics for Couchbase 2.6 operations. It automatically traces key-value operations (get, upsert, replace, remove), view queries, N1QL queries, and cluster management operations. + semantic_conventions: + - DATABASE_CLIENT_SPANS + - DATABASE_CLIENT_METRICS library_link: https://github.com/couchbase/couchbase-java-client source_path: instrumentation/couchbase/couchbase-2.6 scope: @@ -2817,6 +2828,10 @@ libraries: Enables experimental span attributes `couchbase.operation_id` and `couchbase.local.address`. Different operation types receive different experimental attributes. type: boolean default: false + - name: otel.instrumentation.common.db-statement-sanitizer.enabled + description: Enables statement sanitization for database queries. + type: boolean + default: true telemetry: - when: default spans: @@ -2893,33 +2908,201 @@ libraries: - name: couchbase-3.1 description: | Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. + semantic_conventions: + - DATABASE_CLIENT_SPANS library_link: https://github.com/couchbase/couchbase-java-client + features: + - AUTO_INSTRUMENTATION_SHIM source_path: instrumentation/couchbase/couchbase-3.1 scope: name: io.opentelemetry.couchbase-3.1 target_versions: javaagent: - com.couchbase.client:java-client:[3.1,3.1.6) + telemetry: + - when: default + spans: + - span_kind: INTERNAL + attributes: + - name: db.couchbase.collection + type: STRING + - name: db.couchbase.local_id + type: STRING + - name: db.couchbase.operation_id + type: LONG + - name: db.couchbase.scope + type: STRING + - name: db.couchbase.server_duration + type: LONG + - name: db.couchbase.service + type: STRING + - name: db.name + type: STRING + - name: db.operation + type: STRING + - name: db.system + type: STRING + - name: net.host.name + type: STRING + - name: net.host.port + type: LONG + - name: net.peer.name + type: STRING + - name: net.peer.port + type: LONG + - name: net.transport + type: STRING - name: couchbase-3.1.6 description: | Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. + semantic_conventions: + - DATABASE_CLIENT_SPANS library_link: https://github.com/couchbase/couchbase-java-client + features: + - AUTO_INSTRUMENTATION_SHIM source_path: instrumentation/couchbase/couchbase-3.1.6 scope: name: io.opentelemetry.couchbase-3.1.6 target_versions: javaagent: - com.couchbase.client:java-client:[3.1.6,3.2.0) + telemetry: + - when: default + spans: + - span_kind: INTERNAL + attributes: + - name: db.couchbase.collection + type: STRING + - name: db.couchbase.local_id + type: STRING + - name: db.couchbase.operation_id + type: LONG + - name: db.couchbase.retries + type: LONG + - name: db.couchbase.scope + type: STRING + - name: db.couchbase.server_duration + type: LONG + - name: db.couchbase.service + type: STRING + - name: db.name + type: STRING + - name: db.operation + type: STRING + - name: db.system + type: STRING + - name: net.host.name + type: STRING + - name: net.host.port + type: LONG + - name: net.peer.name + type: STRING + - name: net.peer.port + type: LONG + - name: net.transport + type: STRING - name: couchbase-3.2 description: | Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. + semantic_conventions: + - DATABASE_CLIENT_SPANS library_link: https://github.com/couchbase/couchbase-java-client + features: + - AUTO_INSTRUMENTATION_SHIM source_path: instrumentation/couchbase/couchbase-3.2 scope: name: io.opentelemetry.couchbase-3.2 target_versions: javaagent: - - com.couchbase.client:java-client:[3.2.0,) + - com.couchbase.client:java-client:[3.2.0,3.4.0) + telemetry: + - when: default + spans: + - span_kind: INTERNAL + attributes: + - name: db.couchbase.collection + type: STRING + - name: db.couchbase.document_id + type: STRING + - name: db.couchbase.local_id + type: STRING + - name: db.couchbase.operation_id + type: LONG + - name: db.couchbase.retries + type: LONG + - name: db.couchbase.scope + type: STRING + - name: db.couchbase.server_duration + type: LONG + - name: db.couchbase.service + type: STRING + - name: db.name + type: STRING + - name: db.operation + type: STRING + - name: db.system + type: STRING + - name: net.host.name + type: STRING + - name: net.host.port + type: LONG + - name: net.peer.name + type: STRING + - name: net.peer.port + type: LONG + - name: net.transport + type: STRING + - name: couchbase-3.4 + description: | + Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. + semantic_conventions: + - DATABASE_CLIENT_SPANS + library_link: https://github.com/couchbase/couchbase-java-client + features: + - AUTO_INSTRUMENTATION_SHIM + source_path: instrumentation/couchbase/couchbase-3.4 + scope: + name: io.opentelemetry.couchbase-3.4 + target_versions: + javaagent: + - com.couchbase.client:java-client:[3.4.0,) + telemetry: + - when: default + spans: + - span_kind: CLIENT + attributes: + - name: db.couchbase.collection + type: STRING + - name: db.couchbase.document_id + type: STRING + - name: db.couchbase.local_id + type: STRING + - name: db.couchbase.operation_id + type: LONG + - name: db.couchbase.retries + type: LONG + - name: db.couchbase.scope + type: STRING + - name: db.couchbase.server_duration + type: LONG + - name: db.couchbase.service + type: STRING + - name: db.name + type: STRING + - name: db.operation + type: STRING + - name: db.system + type: STRING + - name: net.host.name + type: STRING + - name: net.host.port + type: LONG + - name: net.peer.name + type: STRING + - name: net.peer.port + type: LONG + - name: net.transport + type: STRING dropwizard: - name: dropwizard-metrics-4.0 description: | diff --git a/instrumentation-docs/instrumentations.sh b/instrumentation-docs/instrumentations.sh index 4f71040da339..2f581a7878d8 100755 --- a/instrumentation-docs/instrumentations.sh +++ b/instrumentation-docs/instrumentations.sh @@ -52,6 +52,10 @@ readonly INSTRUMENTATIONS=( "couchbase:couchbase-2.6:javaagent:test" "couchbase:couchbase-2.6:javaagent:testExperimental" "couchbase:couchbase-2.6:javaagent:testStableSemconv" + "couchbase:couchbase-3.1:javaagent:test" + "couchbase:couchbase-3.1.6:javaagent:test" + "couchbase:couchbase-3.2:javaagent:test" + "couchbase:couchbase-3.4:javaagent:test" "dropwizard:dropwizard-views-0.7:javaagent:test" "elasticsearch:elasticsearch-api-client-7.16:javaagent:test" "elasticsearch:elasticsearch-api-client-7.16:javaagent:testStableSemconv" diff --git a/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/parsers/TelemetryParser.java b/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/parsers/TelemetryParser.java index 164f9f16f995..95b2ff71e79c 100644 --- a/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/parsers/TelemetryParser.java +++ b/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/parsers/TelemetryParser.java @@ -5,31 +5,56 @@ package io.opentelemetry.instrumentation.docs.parsers; +import static java.util.Collections.emptySet; +import static java.util.Collections.singleton; +import static java.util.Map.entry; + import java.util.Map; import java.util.Set; class TelemetryParser { // Key is the scope of the module being analyzed, value is a set of additional allowed scopes. - private static final Map> scopeAllowList = - Map.of( - // armeria-grpc uses grpc-1.6 instrumenter. - "io.opentelemetry.armeria-grpc-1.14", Set.of("io.opentelemetry.grpc-1.6"), - // couchbase-2.6 extends couchbase-2.0 instrumentation with more attributes. - "io.opentelemetry.couchbase-2.6", Set.of("io.opentelemetry.couchbase-2.0"), - // elasticsearch-rest-7.0 extends elasticsearch-api-client-7.16 with more attributes. - "io.opentelemetry.elasticsearch-api-client-7.16", - Set.of("io.opentelemetry.elasticsearch-rest-7.0"), - // jaxrs instrumentations add attributes to the jaxrs-2.0-annotations scope. - "io.opentelemetry.jaxrs-2.0-cxf-3.2", Set.of("io.opentelemetry.jaxrs-2.0-annotations"), - "io.opentelemetry.jaxrs-2.0-jersey-2.0", Set.of("io.opentelemetry.jaxrs-2.0-annotations"), - "io.opentelemetry.jaxrs-2.0-resteasy-3.0", - Set.of("io.opentelemetry.jaxrs-2.0-annotations"), - "io.opentelemetry.jaxrs-2.0-resteasy-3.1", - Set.of("io.opentelemetry.jaxrs-2.0-annotations"), - "io.opentelemetry.jaxrs-3.0-jersey-3.0", Set.of("io.opentelemetry.jaxrs-3.0-annotations"), - "io.opentelemetry.jaxrs-3.0-resteasy-6.0", - Set.of("io.opentelemetry.jaxrs-3.0-annotations")); + private static final Map> scopeAllowList; + + static { + scopeAllowList = + Map.ofEntries( + // armeria-grpc uses grpc-1.6 instrumenter. + entry("io.opentelemetry.armeria-grpc-1.14", singleton("io.opentelemetry.grpc-1.6")), + // couchbase-2.6 extends couchbase-2.0 instrumentation with more attributes. + entry("io.opentelemetry.couchbase-2.6", singleton("io.opentelemetry.couchbase-2.0")), + // elasticsearch-rest-7.0 extends elasticsearch-api-client-7.16 with more attributes. + entry( + "io.opentelemetry.elasticsearch-api-client-7.16", + singleton("io.opentelemetry.elasticsearch-rest-7.0")), + // jaxrs instrumentations add attributes to the jaxrs-2.0-annotations scope. + entry( + "io.opentelemetry.jaxrs-2.0-cxf-3.2", + singleton("io.opentelemetry.jaxrs-2.0-annotations")), + entry( + "io.opentelemetry.jaxrs-2.0-jersey-2.0", + singleton("io.opentelemetry.jaxrs-2.0-annotations")), + entry( + "io.opentelemetry.jaxrs-2.0-resteasy-3.0", + singleton("io.opentelemetry.jaxrs-2.0-annotations")), + entry( + "io.opentelemetry.jaxrs-2.0-resteasy-3.1", + singleton("io.opentelemetry.jaxrs-2.0-annotations")), + entry( + "io.opentelemetry.jaxrs-3.0-jersey-3.0", + singleton("io.opentelemetry.jaxrs-3.0-annotations")), + entry( + "io.opentelemetry.jaxrs-3.0-resteasy-6.0", + singleton("io.opentelemetry.jaxrs-3.0-annotations")), + // couchbase-3.x instrumentations are auto-instrumentation shims + entry( + "io.opentelemetry.couchbase-3.1", + singleton("io.opentelemetry.javaagent.couchbase-3.1")), + entry("io.opentelemetry.couchbase-3.1.6", singleton("com.couchbase.client.jvm")), + entry("io.opentelemetry.couchbase-3.2", singleton("com.couchbase.client.jvm")), + entry("io.opentelemetry.couchbase-3.4", singleton("com.couchbase.client.jvm"))); + } /** * Checks if the given telemetry scope is valid for the specified module scope. @@ -45,7 +70,7 @@ class TelemetryParser { */ static boolean scopeIsValid(String telemetryScope, String moduleScope) { return telemetryScope.equals(moduleScope) - || scopeAllowList.getOrDefault(moduleScope, Set.of()).contains(telemetryScope); + || scopeAllowList.getOrDefault(moduleScope, emptySet()).contains(telemetryScope); } private TelemetryParser() {} diff --git a/instrumentation/couchbase/couchbase-2.0/metadata.yaml b/instrumentation/couchbase/couchbase-2.0/metadata.yaml index eb4b19f0695b..3b5026c6cb18 100644 --- a/instrumentation/couchbase/couchbase-2.0/metadata.yaml +++ b/instrumentation/couchbase/couchbase-2.0/metadata.yaml @@ -2,4 +2,12 @@ description: > This instrumentation enables database client spans and database client metrics for Couchbase 2.0 operations. It automatically traces key-value operations (get, upsert, replace, remove), view queries, N1QL queries, and cluster management operations. +semantic_conventions: + - DATABASE_CLIENT_SPANS + - DATABASE_CLIENT_METRICS library_link: https://github.com/couchbase/couchbase-java-client +configurations: + - name: otel.instrumentation.common.db-statement-sanitizer.enabled + description: Enables statement sanitization for database queries. + type: boolean + default: true diff --git a/instrumentation/couchbase/couchbase-2.6/metadata.yaml b/instrumentation/couchbase/couchbase-2.6/metadata.yaml index 0776918ae8ba..8ec94a49c70f 100644 --- a/instrumentation/couchbase/couchbase-2.6/metadata.yaml +++ b/instrumentation/couchbase/couchbase-2.6/metadata.yaml @@ -2,6 +2,9 @@ description: > This instrumentation enables database client spans and database client metrics for Couchbase 2.6 operations. It automatically traces key-value operations (get, upsert, replace, remove), view queries, N1QL queries, and cluster management operations. +semantic_conventions: + - DATABASE_CLIENT_SPANS + - DATABASE_CLIENT_METRICS library_link: https://github.com/couchbase/couchbase-java-client configurations: - name: otel.instrumentation.couchbase.experimental-span-attributes @@ -10,3 +13,7 @@ configurations: Different operation types receive different experimental attributes. type: boolean default: false + - name: otel.instrumentation.common.db-statement-sanitizer.enabled + description: Enables statement sanitization for database queries. + type: boolean + default: true diff --git a/instrumentation/couchbase/couchbase-3.1.6/javaagent/build.gradle.kts b/instrumentation/couchbase/couchbase-3.1.6/javaagent/build.gradle.kts index 9f547d808573..9e71ed0c48bb 100644 --- a/instrumentation/couchbase/couchbase-3.1.6/javaagent/build.gradle.kts +++ b/instrumentation/couchbase/couchbase-3.1.6/javaagent/build.gradle.kts @@ -46,16 +46,6 @@ dependencies { tasks { withType().configureEach { usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service) - } - - val testStableSemconv by registering(Test::class) { - testClassesDirs = sourceSets.test.get().output.classesDirs - classpath = sourceSets.test.get().runtimeClasspath - - jvmArgs("-Dotel.semconv-stability.opt-in=database") - } - - check { - dependsOn(testStableSemconv) + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") } } diff --git a/instrumentation/couchbase/couchbase-3.1.6/metadata.yaml b/instrumentation/couchbase/couchbase-3.1.6/metadata.yaml index ecbda30e26eb..9a2ef927cf37 100644 --- a/instrumentation/couchbase/couchbase-3.1.6/metadata.yaml +++ b/instrumentation/couchbase/couchbase-3.1.6/metadata.yaml @@ -1,4 +1,8 @@ description: > Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. +semantic_conventions: + - DATABASE_CLIENT_SPANS library_link: https://github.com/couchbase/couchbase-java-client +features: + - AUTO_INSTRUMENTATION_SHIM diff --git a/instrumentation/couchbase/couchbase-3.1/javaagent/build.gradle.kts b/instrumentation/couchbase/couchbase-3.1/javaagent/build.gradle.kts index ffdb8f5b46fc..5c1124446dc4 100644 --- a/instrumentation/couchbase/couchbase-3.1/javaagent/build.gradle.kts +++ b/instrumentation/couchbase/couchbase-3.1/javaagent/build.gradle.kts @@ -47,15 +47,6 @@ dependencies { tasks { withType().configureEach { usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service) - } - - val testStableSemconv by registering(Test::class) { - testClassesDirs = sourceSets.test.get().output.classesDirs - classpath = sourceSets.test.get().runtimeClasspath - jvmArgs("-Dotel.semconv-stability.opt-in=database") - } - - check { - dependsOn(testStableSemconv) + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") } } diff --git a/instrumentation/couchbase/couchbase-3.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_1/CouchbaseClient31Test.java b/instrumentation/couchbase/couchbase-3.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_1/CouchbaseClient31Test.java index 9e4184ba7274..3c68a4c0084f 100644 --- a/instrumentation/couchbase/couchbase-3.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_1/CouchbaseClient31Test.java +++ b/instrumentation/couchbase/couchbase-3.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_1/CouchbaseClient31Test.java @@ -45,7 +45,7 @@ class CouchbaseClient31Test { @BeforeAll static void setup() { couchbase = - new CouchbaseContainer("couchbase/server:6.5.1") + new CouchbaseContainer("couchbase/server:7.6.0") .withExposedPorts(8091) .withEnabledServices(CouchbaseService.KV) .withBucket(new BucketDefinition("test")) diff --git a/instrumentation/couchbase/couchbase-3.1/metadata.yaml b/instrumentation/couchbase/couchbase-3.1/metadata.yaml index ecbda30e26eb..9a2ef927cf37 100644 --- a/instrumentation/couchbase/couchbase-3.1/metadata.yaml +++ b/instrumentation/couchbase/couchbase-3.1/metadata.yaml @@ -1,4 +1,8 @@ description: > Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. +semantic_conventions: + - DATABASE_CLIENT_SPANS library_link: https://github.com/couchbase/couchbase-java-client +features: + - AUTO_INSTRUMENTATION_SHIM diff --git a/instrumentation/couchbase/couchbase-3.2/javaagent/build.gradle.kts b/instrumentation/couchbase/couchbase-3.2/javaagent/build.gradle.kts index db9c9b18b888..33dd301074f1 100644 --- a/instrumentation/couchbase/couchbase-3.2/javaagent/build.gradle.kts +++ b/instrumentation/couchbase/couchbase-3.2/javaagent/build.gradle.kts @@ -48,16 +48,6 @@ tasks { withType().configureEach { systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean) usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service) - } - - val testStableSemconv by registering(Test::class) { - testClassesDirs = sourceSets.test.get().output.classesDirs - classpath = sourceSets.test.get().runtimeClasspath - - jvmArgs("-Dotel.semconv-stability.opt-in=database") - } - - check { - dependsOn(testStableSemconv) + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") } } diff --git a/instrumentation/couchbase/couchbase-3.2/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_2/CouchbaseClient32Test.java b/instrumentation/couchbase/couchbase-3.2/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_2/CouchbaseClient32Test.java index 75fcb46c6f28..0341e4526215 100644 --- a/instrumentation/couchbase/couchbase-3.2/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_2/CouchbaseClient32Test.java +++ b/instrumentation/couchbase/couchbase-3.2/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_2/CouchbaseClient32Test.java @@ -41,7 +41,7 @@ class CouchbaseClient32Test { @BeforeAll static void setup() { couchbase = - new CouchbaseContainer("couchbase/server:6.5.1") + new CouchbaseContainer("couchbase/server:7.6.0") .withExposedPorts(8091) .withEnabledServices(CouchbaseService.KV) .withBucket(new BucketDefinition("test")) diff --git a/instrumentation/couchbase/couchbase-3.2/metadata.yaml b/instrumentation/couchbase/couchbase-3.2/metadata.yaml index ecbda30e26eb..9a2ef927cf37 100644 --- a/instrumentation/couchbase/couchbase-3.2/metadata.yaml +++ b/instrumentation/couchbase/couchbase-3.2/metadata.yaml @@ -1,4 +1,8 @@ description: > Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. +semantic_conventions: + - DATABASE_CLIENT_SPANS library_link: https://github.com/couchbase/couchbase-java-client +features: + - AUTO_INSTRUMENTATION_SHIM diff --git a/instrumentation/couchbase/couchbase-3.4/javaagent/build.gradle.kts b/instrumentation/couchbase/couchbase-3.4/javaagent/build.gradle.kts index ce7bb6e7196f..4d5351753600 100644 --- a/instrumentation/couchbase/couchbase-3.4/javaagent/build.gradle.kts +++ b/instrumentation/couchbase/couchbase-3.4/javaagent/build.gradle.kts @@ -46,16 +46,6 @@ tasks { withType().configureEach { systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean) usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service) - } - - val testStableSemconv by registering(Test::class) { - testClassesDirs = sourceSets.test.get().output.classesDirs - classpath = sourceSets.test.get().runtimeClasspath - - jvmArgs("-Dotel.semconv-stability.opt-in=database") - } - - check { - dependsOn(testStableSemconv) + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") } } diff --git a/instrumentation/couchbase/couchbase-3.4/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_4/CouchbaseClient34Test.java b/instrumentation/couchbase/couchbase-3.4/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_4/CouchbaseClient34Test.java index ca113e9e9aac..9978c4d3d4df 100644 --- a/instrumentation/couchbase/couchbase-3.4/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_4/CouchbaseClient34Test.java +++ b/instrumentation/couchbase/couchbase-3.4/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/couchbase/v3_4/CouchbaseClient34Test.java @@ -41,7 +41,7 @@ class CouchbaseClient34Test { @BeforeAll static void setup() { couchbase = - new CouchbaseContainer("couchbase/server:6.5.1") + new CouchbaseContainer("couchbase/server:7.6.0") .withExposedPorts(8091) .withEnabledServices(CouchbaseService.KV) .withBucket(new BucketDefinition("test")) diff --git a/instrumentation/couchbase/couchbase-3.4/metadata.yaml b/instrumentation/couchbase/couchbase-3.4/metadata.yaml index ecbda30e26eb..d93e0178e83a 100644 --- a/instrumentation/couchbase/couchbase-3.4/metadata.yaml +++ b/instrumentation/couchbase/couchbase-3.4/metadata.yaml @@ -2,3 +2,7 @@ description: > Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. library_link: https://github.com/couchbase/couchbase-java-client +semantic_conventions: + - DATABASE_CLIENT_SPANS +features: + - AUTO_INSTRUMENTATION_SHIM