diff --git a/docs/instrumentation-list.yaml b/docs/instrumentation-list.yaml index 554f8e3805e9..9a4f2625e262 100644 --- a/docs/instrumentation-list.yaml +++ b/docs/instrumentation-list.yaml @@ -2097,13 +2097,13 @@ libraries: - name: server.port type: LONG clickhouse: - - name: clickhouse-client-0.5 - description: Instruments the V1 ClickHouseClient, providing database client spans - and metrics. + - name: clickhouse-client-v1-0.5 + description: This instrumentation enables database client spans and metrics for + the V1 ClickHouse client. library_link: https://github.com/ClickHouse/clickhouse-java - source_path: instrumentation/clickhouse-client-0.5 + source_path: instrumentation/clickhouse/clickhouse-client-v1-0.5 scope: - name: io.opentelemetry.clickhouse-client-0.5 + name: io.opentelemetry.clickhouse-client-v1-0.5 target_versions: javaagent: - com.clickhouse.client:clickhouse-client:[0.5.0,) @@ -2165,6 +2165,74 @@ libraries: type: STRING - name: server.port type: LONG + - name: clickhouse-client-v2-0.8 + description: This instrumentation enables database client spans and metrics for + the V2 ClickHouse client. + library_link: https://github.com/ClickHouse/clickhouse-java + source_path: instrumentation/clickhouse/clickhouse-client-v2-0.8 + scope: + name: io.opentelemetry.clickhouse-client-v2-0.8 + target_versions: + javaagent: + - com.clickhouse:client-v2:[0.6.4,) + configurations: + - name: otel.instrumentation.common.db-statement-sanitizer.enabled + description: Enables statement sanitization for database queries. + type: boolean + default: true + telemetry: + - when: default + spans: + - span_kind: CLIENT + attributes: + - name: db.name + type: STRING + - name: db.operation + type: STRING + - name: db.statement + type: STRING + - name: db.system + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG + - when: otel.semconv-stability.opt-in=database + metrics: + - name: db.client.operation.duration + description: Duration of database client operations. + type: HISTOGRAM + unit: s + attributes: + - name: db.namespace + type: STRING + - name: db.operation.name + type: STRING + - name: db.system.name + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG + spans: + - span_kind: CLIENT + attributes: + - name: db.namespace + type: STRING + - name: db.operation.name + type: STRING + - name: db.query.text + type: STRING + - name: db.response.status_code + type: STRING + - name: db.system.name + type: STRING + - name: error.type + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG couchbase: - name: couchbase-2.0 description: | @@ -4072,8 +4140,8 @@ libraries: type: STRING javalin: - name: javalin-5.0 - description: This instrumentation enriches existing HTTP server spans with route information, - it does not emit any telemetry on its own. + description: This instrumentation enriches existing HTTP server spans with route + information, it does not emit any telemetry on its own. source_path: instrumentation/javalin-5.0 minimum_java_version: 11 scope: @@ -6550,6 +6618,7 @@ libraries: description: This instrumentation enriches HTTP server spans and metrics with route information. source_path: instrumentation/spring/spring-web/spring-web-6.0 + minimum_java_version: 17 scope: name: io.opentelemetry.spring-web-6.0 target_versions: diff --git a/instrumentation-docs/instrumentations.sh b/instrumentation-docs/instrumentations.sh index d6cfa2d5bb7e..5b259ce7e134 100755 --- a/instrumentation-docs/instrumentations.sh +++ b/instrumentation-docs/instrumentations.sh @@ -22,8 +22,10 @@ readonly INSTRUMENTATIONS=( "apache-dubbo-2.7:javaagent:testDubbo" "c3p0-0.9:javaagent:test" "c3p0-0.9:javaagent:testStableSemconv" - "clickhouse-client-0.5:javaagent:test" - "clickhouse-client-0.5:javaagent:testStableSemconv" + "clickhouse:clickhouse-client-v1-0.5:javaagent:test" + "clickhouse:clickhouse-client-v1-0.5:javaagent:testStableSemconv" + "clickhouse:clickhouse-client-v2-0.8:javaagent:test" + "clickhouse:clickhouse-client-v2-0.8:javaagent:testStableSemconv" "aws-sdk:aws-sdk-1.11:javaagent:test" "google-http-client-1.19:javaagent:test" "http-url-connection:javaagent:test" diff --git a/instrumentation/clickhouse/clickhouse-client-v1-0.5/metadata.yaml b/instrumentation/clickhouse/clickhouse-client-v1-0.5/metadata.yaml index 9bf8c092fb0c..ba32cb2b0861 100644 --- a/instrumentation/clickhouse/clickhouse-client-v1-0.5/metadata.yaml +++ b/instrumentation/clickhouse/clickhouse-client-v1-0.5/metadata.yaml @@ -1,4 +1,4 @@ -description: Instruments the V1 ClickHouseClient, providing database client spans and metrics. +description: This instrumentation enables database client spans and metrics for the V1 ClickHouse client. library_link: https://github.com/ClickHouse/clickhouse-java configurations: - name: otel.instrumentation.common.db-statement-sanitizer.enabled diff --git a/instrumentation/clickhouse/clickhouse-client-v2-0.8/javaagent/build.gradle.kts b/instrumentation/clickhouse/clickhouse-client-v2-0.8/javaagent/build.gradle.kts index 2e447b080192..474c08da29a9 100644 --- a/instrumentation/clickhouse/clickhouse-client-v2-0.8/javaagent/build.gradle.kts +++ b/instrumentation/clickhouse/clickhouse-client-v2-0.8/javaagent/build.gradle.kts @@ -16,19 +16,18 @@ dependencies { library("com.clickhouse:client-v2:0.8.0") } -val collectMetadata = findProperty("collectMetadata")?.toString() ?: "false" - tasks { - test { + withType().configureEach { usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service) - systemProperty("collectMetadata", collectMetadata) + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") } val testStableSemconv by registering(Test::class) { - jvmArgs("-Dotel.semconv-stability.opt-in=database") + testClassesDirs = sourceSets.test.get().output.classesDirs + classpath = sourceSets.test.get().runtimeClasspath + jvmArgs("-Dotel.semconv-stability.opt-in=database") systemProperty("metadataConfig", "otel.semconv-stability.opt-in=database") - systemProperty("collectMetadata", collectMetadata) } check { diff --git a/instrumentation/clickhouse/clickhouse-client-v2-0.8/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/clickhouse/clientv2/v0_8/ClickHouseClientV2Test.java b/instrumentation/clickhouse/clickhouse-client-v2-0.8/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/clickhouse/clientv2/v0_8/ClickHouseClientV2Test.java index 8b3573ed6494..93b396d3ccb8 100644 --- a/instrumentation/clickhouse/clickhouse-client-v2-0.8/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/clickhouse/clientv2/v0_8/ClickHouseClientV2Test.java +++ b/instrumentation/clickhouse/clickhouse-client-v2-0.8/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/clickhouse/clientv2/v0_8/ClickHouseClientV2Test.java @@ -126,7 +126,7 @@ void testConnectionStringWithoutDatabaseSpecifiedStillGeneratesSpans() throws Ex assertDurationMetric( testing, - "io.opentelemetry.clickhouse-clientv2-0.8", + "io.opentelemetry.clickhouse-client-v2-0.8", DB_SYSTEM_NAME, DB_OPERATION_NAME, DB_NAMESPACE, diff --git a/instrumentation/clickhouse/clickhouse-client-v2-0.8/metadata.yaml b/instrumentation/clickhouse/clickhouse-client-v2-0.8/metadata.yaml new file mode 100644 index 000000000000..7eb21f947bc4 --- /dev/null +++ b/instrumentation/clickhouse/clickhouse-client-v2-0.8/metadata.yaml @@ -0,0 +1,7 @@ +description: This instrumentation enables database client spans and metrics for the V2 ClickHouse client. +library_link: https://github.com/ClickHouse/clickhouse-java +configurations: + - name: otel.instrumentation.common.db-statement-sanitizer.enabled + description: Enables statement sanitization for database queries. + type: boolean + default: true