Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 79 additions & 10 deletions docs/instrumentation-list.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2309,7 +2309,10 @@ libraries:
cassandra:
- name: cassandra-3.0
description: |
Instruments the Cassandra database client, providing database client spans and metrics for Cassandra queries.
This instrumentation enables database client spans and database client metrics for the DataStax Cassandra Driver.
semantic_conventions:
- DATABASE_CLIENT_SPANS
- DATABASE_CLIENT_METRICS
library_link: https://github.com/apache/cassandra-java-driver
source_path: instrumentation/cassandra/cassandra-3.0
scope:
Expand Down Expand Up @@ -2348,6 +2351,24 @@ libraries:
- 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.operation.name
type: STRING
- name: db.system.name
type: STRING
- name: network.peer.address
type: STRING
- name: network.peer.port
type: LONG
- name: server.address
type: STRING
- name: server.port
type: LONG
spans:
- span_kind: CLIENT
attributes:
Expand All @@ -2373,7 +2394,10 @@ libraries:
type: LONG
- name: cassandra-4.0
description: |
Instruments the Cassandra database client, providing database client spans and metrics for Cassandra queries.
This instrumentation enables database client spans and database client metrics for the DataStax Cassandra Driver.
semantic_conventions:
- DATABASE_CLIENT_SPANS
- DATABASE_CLIENT_METRICS
library_link: https://github.com/apache/cassandra-java-driver
source_path: instrumentation/cassandra/cassandra-4.0
scope:
Expand Down Expand Up @@ -2424,6 +2448,24 @@ libraries:
- 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.operation.name
type: STRING
- name: db.system.name
type: STRING
- name: network.peer.address
type: STRING
- name: network.peer.port
type: LONG
- name: server.address
type: STRING
- name: server.port
type: LONG
spans:
- span_kind: CLIENT
attributes:
Expand Down Expand Up @@ -2461,7 +2503,10 @@ libraries:
type: LONG
- name: cassandra-4.4
description: |
Instruments the Cassandra database client, providing database client spans and metrics for Cassandra queries.
This instrumentation enables database client spans and database client metrics for the DataStax Cassandra Driver.
semantic_conventions:
- DATABASE_CLIENT_SPANS
- DATABASE_CLIENT_METRICS
library_link: https://github.com/apache/cassandra-java-driver
source_path: instrumentation/cassandra/cassandra-4.4
scope:
Expand Down Expand Up @@ -2514,6 +2559,24 @@ libraries:
- 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.operation.name
type: STRING
- name: db.system.name
type: STRING
- name: network.peer.address
type: STRING
- name: network.peer.port
type: LONG
- name: server.address
type: STRING
- name: server.port
type: LONG
spans:
- span_kind: CLIENT
attributes:
Expand Down Expand Up @@ -2551,8 +2614,11 @@ libraries:
type: LONG
clickhouse:
- name: clickhouse-client-v1-0.5
description: This instrumentation enables database client spans and metrics for
the V1 ClickHouse client.
description: |
This instrumentation enables database client spans and database client metrics for the ClickHouse Java Client.
semantic_conventions:
- DATABASE_CLIENT_SPANS
- DATABASE_CLIENT_METRICS
library_link: https://github.com/ClickHouse/clickhouse-java
source_path: instrumentation/clickhouse/clickhouse-client-v1-0.5
scope:
Expand Down Expand Up @@ -2619,8 +2685,11 @@ libraries:
- 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.
description: |
This instrumentation enables database client spans and database client metrics for the ClickHouse Java Client.
semantic_conventions:
- DATABASE_CLIENT_SPANS
- DATABASE_CLIENT_METRICS
library_link: https://github.com/ClickHouse/clickhouse-java
source_path: instrumentation/clickhouse/clickhouse-client-v2-0.8
scope:
Expand Down Expand Up @@ -7721,7 +7790,7 @@ libraries:
default: SCOPE_
- name: spring-web-3.1
description: |
This instrumentation provides a library integration that enables capturing HTTP client spans and metrics for Spring's RestTemplate. The agent integration enriches HTTP server spans and metrics with route information.
This instrumentation provides a library integration that enables capturing HTTP client spans and metrics for Spring's RestTemplate.
library_link: https://github.com/spring-projects/spring-framework
source_path: instrumentation/spring/spring-web/spring-web-3.1
scope:
Expand Down Expand Up @@ -7761,8 +7830,8 @@ libraries:
- name: url.full
type: STRING
- name: spring-web-6.0
description: This instrumentation enriches HTTP server spans and metrics with
route information.
description: |
This instrumentation provides a library integration that enables capturing HTTP client spans and metrics for Spring's RestTemplate.
library_link: https://github.com/spring-projects/spring-framework
source_path: instrumentation/spring/spring-web/spring-web-6.0
minimum_java_version: 17
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@
* SPDX-License-Identifier: Apache-2.0
*/

import static io.opentelemetry.instrumentation.testing.junit.db.DbClientMetricsTestUtil.assertDurationMetric;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.semconv.DbAttributes.DB_OPERATION_NAME;
import static io.opentelemetry.semconv.DbAttributes.DB_SYSTEM_NAME;
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_PEER_ADDRESS;
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_PEER_PORT;
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_TYPE;
Expand Down Expand Up @@ -33,6 +36,7 @@
import java.util.stream.Stream;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
Expand Down Expand Up @@ -231,6 +235,25 @@ void asyncTest(Parameter parameter) {
session.close();
}

@Test
void testMetrics() {
Session session = cluster.connect();

session.execute("DROP KEYSPACE IF EXISTS non_existent");

assertDurationMetric(
testing,
"io.opentelemetry.cassandra-3.0",
DB_SYSTEM_NAME,
DB_OPERATION_NAME,
NETWORK_PEER_ADDRESS,
NETWORK_PEER_PORT,
SERVER_ADDRESS,
SERVER_PORT);

session.close();
}

private static Stream<Arguments> provideSyncParameters() {
return Stream.of(
Arguments.of(
Expand Down
9 changes: 6 additions & 3 deletions instrumentation/cassandra/cassandra-3.0/metadata.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
description: >
Instruments the Cassandra database client, providing database client spans and metrics for
Cassandra queries.
This instrumentation enables database client spans and database client metrics for the DataStax
Cassandra Driver.
semantic_conventions:
- DATABASE_CLIENT_SPANS
- DATABASE_CLIENT_METRICS
library_link: https://github.com/apache/cassandra-java-driver
configurations:
- name: otel.instrumentation.common.db-statement-sanitizer.enabled
description: Enables statement sanitization for database queries.
type: boolean
default: true
default: true
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@

package io.opentelemetry.cassandra.v4.common;

import static io.opentelemetry.instrumentation.testing.junit.db.DbClientMetricsTestUtil.assertDurationMetric;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
import static io.opentelemetry.semconv.DbAttributes.DB_OPERATION_NAME;
import static io.opentelemetry.semconv.DbAttributes.DB_SYSTEM_NAME;
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_PEER_ADDRESS;
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_PEER_PORT;
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_TYPE;
Expand Down Expand Up @@ -41,6 +44,7 @@
import java.util.stream.Stream;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
Expand All @@ -62,6 +66,8 @@ public abstract class AbstractCassandraTest {

protected abstract InstrumentationExtension testing();

protected abstract String getInstrumentationName();

protected CqlSession wrap(CqlSession session) {
return session;
}
Expand All @@ -81,6 +87,25 @@ static void beforeAll() throws UnknownHostException {
cassandraPort = cassandra.getMappedPort(9042);
}

@Test
void testMetrics() {
CqlSession session = getSession(null);

session.execute("DROP KEYSPACE IF EXISTS non_existent");

assertDurationMetric(
testing(),
getInstrumentationName(),
DB_SYSTEM_NAME,
DB_OPERATION_NAME,
NETWORK_PEER_ADDRESS,
NETWORK_PEER_PORT,
SERVER_ADDRESS,
SERVER_PORT);

session.close();
}

@AfterAll
static void afterAll() {
cassandra.stop();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ muzzle {

dependencies {
library("com.datastax.oss:java-driver-core:4.0.0")
latestDepTestLibrary("com.datastax.oss:java-driver-core:4.3.+") // see cassandra-4.4 module
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was needed because testLatestDeps were failing for the new metric assertion, as the 4.4 instrumentation ends up being used instead


compileOnly("com.google.auto.value:auto-value-annotations")
annotationProcessor("com.google.auto.value:auto-value")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@

class CassandraTest extends AbstractCassandraTest {

@Override
protected String getInstrumentationName() {
return "io.opentelemetry.cassandra-4.0";
}

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

Expand Down
9 changes: 6 additions & 3 deletions instrumentation/cassandra/cassandra-4.0/metadata.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
description: >
Instruments the Cassandra database client, providing database client spans and metrics for
Cassandra queries.
This instrumentation enables database client spans and database client metrics for the DataStax
Cassandra Driver.
semantic_conventions:
- DATABASE_CLIENT_SPANS
- DATABASE_CLIENT_METRICS
library_link: https://github.com/apache/cassandra-java-driver
configurations:
- name: otel.instrumentation.common.db-statement-sanitizer.enabled
description: Enables statement sanitization for database queries.
type: boolean
default: true
default: true
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,12 @@
import io.opentelemetry.testing.cassandra.v4_4.AbstractCassandra44Test;
import org.junit.jupiter.api.extension.RegisterExtension;

public class CassandraTest extends AbstractCassandra44Test {
class CassandraTest extends AbstractCassandra44Test {

@Override
protected String getInstrumentationName() {
return "io.opentelemetry.cassandra-4.4";
}

@RegisterExtension
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@

public class CassandraTest extends AbstractCassandra44Test {

@Override
protected String getInstrumentationName() {
return "io.opentelemetry.cassandra-4.4";
}

@RegisterExtension
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();

Expand Down
7 changes: 5 additions & 2 deletions instrumentation/cassandra/cassandra-4.4/metadata.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
description: >
Instruments the Cassandra database client, providing database client spans and metrics for
Cassandra queries.
This instrumentation enables database client spans and database client metrics for the DataStax
Cassandra Driver.
semantic_conventions:
- DATABASE_CLIENT_SPANS
- DATABASE_CLIENT_METRICS
library_link: https://github.com/apache/cassandra-java-driver
configurations:
- name: otel.instrumentation.common.db-statement-sanitizer.enabled
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
description: This instrumentation enables database client spans and metrics for the V1 ClickHouse client.
description: >
This instrumentation enables database client spans and database client metrics for the ClickHouse
Java Client.
semantic_conventions:
- DATABASE_CLIENT_SPANS
- DATABASE_CLIENT_METRICS
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
default: true
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
description: This instrumentation enables database client spans and metrics for the V2 ClickHouse client.
description: >
This instrumentation enables database client spans and database client metrics for the ClickHouse
Java Client.
semantic_conventions:
- DATABASE_CLIENT_SPANS
- DATABASE_CLIENT_METRICS
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
default: true
Loading