fix(deps): update dependency io.opentelemetry.semconv:opentelemetry-semconv to v1.30.0-rc.1 (#13116)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
This commit is contained in:
renovate[bot] 2025-01-30 14:18:43 -08:00 committed by GitHub
parent e65366b860
commit b1eb1fd3d9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
155 changed files with 774 additions and 412 deletions

View File

@ -18,11 +18,10 @@ dependencies {
// Get the semconv version from :dependencyManagement
val semconvConstraint = project.project(project(":dependencyManagement").path).configurations["api"].allDependencyConstraints
.find { it.group.equals("io.opentelemetry.semconv")
&& it.name.equals("opentelemetry-semconv") }
&& it.name.equals("opentelemetry-semconv-incubating") }
?: throw Exception("semconv constraint not found")
val semconvVersion = semconvConstraint.version ?: throw Exception("missing version")
otelBom.addExtra(semconvConstraint.group, semconvConstraint.name, semconvVersion)
otelBom.addExtra(semconvConstraint.group, "opentelemetry-semconv-incubating", semconvVersion)
val semconvAlphaVersion = semconvConstraint.version ?: throw Exception("missing version")
otelBom.addExtra(semconvConstraint.group, "opentelemetry-semconv-incubating", semconvAlphaVersion)
}
otelBom.projectFilter.set { it.findProperty("otel.stable") != "true" }

View File

@ -12,6 +12,14 @@ javaPlatform {
dependencies {
api(platform("io.opentelemetry:opentelemetry-bom"))
// Get the semconv version from :dependencyManagement
val semconvConstraint = project.project(project(":dependencyManagement").path).configurations["api"].allDependencyConstraints
.find { it.group.equals("io.opentelemetry.semconv")
&& it.name.equals("opentelemetry-semconv") }
?: throw Exception("semconv constraint not found")
val semconvVersion = semconvConstraint.version ?: throw Exception("missing version")
otelBom.addExtra(semconvConstraint.group, semconvConstraint.name, semconvVersion)
}
otelBom.projectFilter.set { it.findProperty("otel.stable") == "true" }

View File

@ -46,11 +46,12 @@ val asmVersion = "9.7.1"
val jmhVersion = "1.37"
val mockitoVersion = "4.11.0"
val slf4jVersion = "2.0.16"
val semConvVersion = "1.29.0-alpha"
val semConvVersion = "1.30.0-rc.1"
val semConvAlphaVersion = semConvVersion.replaceFirst("(-rc.*)?$".toRegex(), "-alpha$1")
val CORE_DEPENDENCIES = listOf(
"io.opentelemetry.semconv:opentelemetry-semconv:${semConvVersion}",
"io.opentelemetry.semconv:opentelemetry-semconv-incubating:${semConvVersion}",
"io.opentelemetry.semconv:opentelemetry-semconv-incubating:${semConvAlphaVersion}",
"com.google.auto.service:auto-service:${autoServiceVersion}",
"com.google.auto.service:auto-service-annotations:${autoServiceVersion}",
"com.google.auto.value:auto-value:${autoValueVersion}",

View File

@ -19,6 +19,7 @@ import io.opentelemetry.sdk.trace.data.StatusData;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
@SuppressWarnings("deprecation") // CodeIncubatingAttributes.CODE_FUNCTION is deprecated
public abstract class AbstractWithSpanTest<T extends U, U> {
@RegisterExtension

View File

@ -24,6 +24,8 @@ abstract class DbClientCommonAttributesExtractor<
private static final AttributeKey<String> DB_NAME = AttributeKey.stringKey("db.name");
static final AttributeKey<String> DB_NAMESPACE = AttributeKey.stringKey("db.namespace");
static final AttributeKey<String> DB_SYSTEM = AttributeKey.stringKey("db.system");
public static final AttributeKey<String> DB_SYSTEM_NAME =
AttributeKey.stringKey("db.system.name");
private static final AttributeKey<String> DB_USER = AttributeKey.stringKey("db.user");
private static final AttributeKey<String> DB_CONNECTION_STRING =
AttributeKey.stringKey("db.connection_string");
@ -37,11 +39,15 @@ abstract class DbClientCommonAttributesExtractor<
@SuppressWarnings("deprecation") // until old db semconv are dropped
@Override
public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
internalSet(attributes, DB_SYSTEM, getter.getDbSystem(request));
if (SemconvStability.emitStableDatabaseSemconv()) {
internalSet(
attributes,
DB_SYSTEM_NAME,
SemconvStability.stableDbSystemName(getter.getDbSystem(request)));
internalSet(attributes, DB_NAMESPACE, getter.getDbNamespace(request));
}
if (SemconvStability.emitOldDatabaseSemconv()) {
internalSet(attributes, DB_SYSTEM, getter.getDbSystem(request));
internalSet(attributes, DB_USER, getter.getUser(request));
internalSet(attributes, DB_NAME, getter.getDbNamespace(request));
internalSet(attributes, DB_CONNECTION_STRING, getter.getConnectionString(request));

View File

@ -28,7 +28,7 @@ final class DbClientMetricsAdvice {
((ExtendedDoubleHistogramBuilder) builder)
.setAttributesAdvice(
asList(
DbClientCommonAttributesExtractor.DB_SYSTEM,
DbClientCommonAttributesExtractor.DB_SYSTEM_NAME,
SqlClientAttributesExtractor.DB_COLLECTION_NAME,
DbClientCommonAttributesExtractor.DB_NAMESPACE,
DbClientAttributesExtractor.DB_OPERATION_NAME,

View File

@ -37,6 +37,7 @@ class CodeAttributesExtractorTest {
}
}
@SuppressWarnings("deprecation") // using deprecated semconv
@Test
void shouldExtractAllAttributes() {
// given

View File

@ -84,6 +84,7 @@ class DbClientAttributesExtractorTest {
assertThat(startAttributes.build())
.containsOnly(
entry(DbIncubatingAttributes.DB_SYSTEM, "myDb"),
entry(DbIncubatingAttributes.DB_SYSTEM_NAME, "myDb"),
entry(DbIncubatingAttributes.DB_USER, "username"),
entry(DbIncubatingAttributes.DB_NAME, "potatoes"),
entry(DbIncubatingAttributes.DB_CONNECTION_STRING, "mydb:///potatoes"),
@ -104,7 +105,7 @@ class DbClientAttributesExtractorTest {
} else if (SemconvStability.emitStableDatabaseSemconv()) {
assertThat(startAttributes.build())
.containsOnly(
entry(DbIncubatingAttributes.DB_SYSTEM, "myDb"),
entry(DbIncubatingAttributes.DB_SYSTEM_NAME, "myDb"),
entry(DbIncubatingAttributes.DB_NAMESPACE, "potatoes"),
entry(DbIncubatingAttributes.DB_QUERY_TEXT, "SELECT * FROM potato"),
entry(DbIncubatingAttributes.DB_OPERATION_NAME, "SELECT"));

View File

@ -42,7 +42,7 @@ class DbClientMetricsTest {
Attributes operationAttributes =
Attributes.builder()
.put(DbClientCommonAttributesExtractor.DB_SYSTEM, "myDb")
.put(DbClientCommonAttributesExtractor.DB_SYSTEM_NAME, "myDb")
.put(SqlClientAttributesExtractor.DB_COLLECTION_NAME, "table")
.put(DbClientCommonAttributesExtractor.DB_NAMESPACE, "potatoes")
.put(DbClientAttributesExtractor.DB_OPERATION_NAME, "SELECT")
@ -89,7 +89,7 @@ class DbClientMetricsTest {
.hasSum(0.15 /* seconds */)
.hasAttributesSatisfying(
equalTo(
DbClientCommonAttributesExtractor.DB_SYSTEM,
DbClientCommonAttributesExtractor.DB_SYSTEM_NAME,
"myDb"),
equalTo(
DbClientCommonAttributesExtractor.DB_NAMESPACE,

View File

@ -108,6 +108,7 @@ class SqlClientAttributesExtractorTest {
assertThat(startAttributes.build())
.containsOnly(
entry(DbIncubatingAttributes.DB_SYSTEM, "myDb"),
entry(DbIncubatingAttributes.DB_SYSTEM_NAME, "myDb"),
entry(DbIncubatingAttributes.DB_USER, "username"),
entry(DbIncubatingAttributes.DB_NAME, "potatoes"),
entry(DbIncubatingAttributes.DB_CONNECTION_STRING, "mydb:///potatoes"),
@ -131,7 +132,7 @@ class SqlClientAttributesExtractorTest {
} else if (SemconvStability.emitStableDatabaseSemconv()) {
assertThat(startAttributes.build())
.containsOnly(
entry(DbIncubatingAttributes.DB_SYSTEM, "myDb"),
entry(DbIncubatingAttributes.DB_SYSTEM_NAME, "myDb"),
entry(DbIncubatingAttributes.DB_NAMESPACE, "potatoes"),
entry(DbIncubatingAttributes.DB_QUERY_TEXT, "SELECT * FROM potato WHERE id=?"),
entry(DbIncubatingAttributes.DB_OPERATION_NAME, "SELECT"),

View File

@ -7,7 +7,9 @@ package io.opentelemetry.instrumentation.api.internal;
import static java.util.Arrays.asList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
/**
@ -50,5 +52,30 @@ public final class SemconvStability {
return emitStableDatabaseSemconv;
}
private static final Map<String, String> dbSystemNameMap = new HashMap<>();
static {
dbSystemNameMap.put("adabas", "softwareag.adabas");
dbSystemNameMap.put("intersystems_cache", "intersystems.cache");
dbSystemNameMap.put("cosmosdb", "azure.cosmosdb");
dbSystemNameMap.put("db2", "ibm.db2");
dbSystemNameMap.put("dynamodb", "aws.dynamodb");
dbSystemNameMap.put("h2", "h2database");
dbSystemNameMap.put("hanadb", "sap.hana");
dbSystemNameMap.put("informix", "ibm.informix");
dbSystemNameMap.put("ingres", "actian.ingres");
dbSystemNameMap.put("maxdb", "sap.maxdb");
dbSystemNameMap.put("mssql", "microsoft.sql_server");
dbSystemNameMap.put("netezza", "ibm.netezza");
dbSystemNameMap.put("oracle", "oracle.db");
dbSystemNameMap.put("redshift", "aws.redshift");
dbSystemNameMap.put("spanner", "gcp.spanner");
}
public static String stableDbSystemName(String oldDbSystem) {
String dbSystemName = dbSystemNameMap.get(oldDbSystem);
return dbSystemName != null ? dbSystemName : oldDbSystem;
}
private SemconvStability() {}
}

View File

@ -12,6 +12,7 @@ import io.opentelemetry.api.common.AttributesBuilder;
import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil;
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
import java.util.Collections;
import java.util.List;
import javax.annotation.Nullable;
@ -20,16 +21,24 @@ public class DynamoDbAttributesExtractor implements AttributesExtractor<Request<
// copied from DbIncubatingAttributes
private static final AttributeKey<String> DB_SYSTEM = AttributeKey.stringKey("db.system");
private static final AttributeKey<String> DB_SYSTEM_NAME =
AttributeKey.stringKey("db.system.name");
// copied from AwsIncubatingAttributes
private static final AttributeKey<List<String>> AWS_DYNAMODB_TABLE_NAMES =
AttributeKey.stringArrayKey("aws.dynamodb.table_names");
// copied from DbIncubatingAttributes.DbSystemIncubatingValues
private static final String DYNAMODB = "dynamodb";
// copied from DbIncubatingAttributes.DbSystemNameIncubatingValues
private static final String AWS_DYNAMODB = "aws.dynamodb";
@Override
public void onStart(AttributesBuilder attributes, Context parentContext, Request<?> request) {
AttributesExtractorUtil.internalSet(attributes, DB_SYSTEM, DYNAMODB);
if (SemconvStability.emitStableDatabaseSemconv()) {
AttributesExtractorUtil.internalSet(attributes, DB_SYSTEM_NAME, AWS_DYNAMODB);
} else {
AttributesExtractorUtil.internalSet(attributes, DB_SYSTEM, DYNAMODB);
}
String tableName = RequestAccess.getTableName(request.getOriginalRequest());
AttributesExtractorUtil.internalSet(
attributes, AWS_DYNAMODB_TABLE_NAMES, Collections.singletonList(tableName));

View File

@ -7,18 +7,22 @@ package io.opentelemetry.instrumentation.awssdk.v1_11;
import static io.opentelemetry.api.common.AttributeKey.stringKey;
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.ServerAttributes.SERVER_ADDRESS;
import static io.opentelemetry.semconv.ServerAttributes.SERVER_PORT;
import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_DYNAMODB_TABLE_NAMES;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SYSTEM;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DbSystemIncubatingValues.DYNAMODB;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SYSTEM_NAME;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DbSystemNameIncubatingValues.AWS_DYNAMODB;
import static java.util.Collections.singletonList;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import io.opentelemetry.testing.internal.armeria.common.HttpResponse;
import io.opentelemetry.testing.internal.armeria.common.HttpStatus;
import io.opentelemetry.testing.internal.armeria.common.MediaType;
@ -35,6 +39,7 @@ public abstract class AbstractDynamoDbClientTest extends AbstractBaseAwsClientTe
return false;
}
@SuppressWarnings("deprecation") // using deprecated semconv
@Test
public void sendRequestWithMockedResponse() throws Exception {
AmazonDynamoDBClientBuilder clientBuilder = AmazonDynamoDBClientBuilder.standard();
@ -49,7 +54,11 @@ public abstract class AbstractDynamoDbClientTest extends AbstractBaseAwsClientTe
List<AttributeAssertion> additionalAttributes =
Arrays.asList(
equalTo(stringKey("aws.table.name"), "sometable"),
equalTo(DB_SYSTEM, DYNAMODB),
equalTo(
maybeStable(DB_SYSTEM),
SemconvStability.emitStableDatabaseSemconv()
? AWS_DYNAMODB
: DbIncubatingAttributes.DbSystemIncubatingValues.DYNAMODB),
equalTo(AWS_DYNAMODB_TABLE_NAMES, singletonList("sometable")));
Object response = client.createTable(new CreateTableRequest("sometable", null));
@ -57,6 +66,6 @@ public abstract class AbstractDynamoDbClientTest extends AbstractBaseAwsClientTe
response, client, "DynamoDBv2", "CreateTable", "POST", additionalAttributes);
assertDurationMetric(
testing(), "io.opentelemetry.aws-sdk-1.11", DB_SYSTEM, SERVER_ADDRESS, SERVER_PORT);
testing(), "io.opentelemetry.aws-sdk-1.11", DB_SYSTEM_NAME, SERVER_ADDRESS, SERVER_PORT);
}
}

View File

@ -54,8 +54,12 @@ public final class TracingExecutionInterceptor implements ExecutionInterceptor {
private static final AttributeKey<String> DB_OPERATION_NAME =
AttributeKey.stringKey("db.operation.name");
private static final AttributeKey<String> DB_SYSTEM = AttributeKey.stringKey("db.system");
private static final AttributeKey<String> DB_SYSTEM_NAME =
AttributeKey.stringKey("db.system.name");
// copied from DbIncubatingAttributes.DbSystemIncubatingValues
private static final String DB_SYSTEM_DYNAMODB = "dynamodb";
// copied from DbIncubatingAttributes.DbSystemNameIncubatingValues
private static final String DB_SYSTEM_AWS_DYNAMODB = "aws.dynamodb";
// copied from AwsIncubatingAttributes
private static final AttributeKey<String> AWS_REQUEST_ID =
AttributeKey.stringKey("aws.request_id");
@ -348,7 +352,12 @@ public final class TracingExecutionInterceptor implements ExecutionInterceptor {
fieldMapper.mapToAttributes(sdkRequest, awsSdkRequest, span);
if (awsSdkRequest.type() == DYNAMODB) {
span.setAttribute(DB_SYSTEM, DB_SYSTEM_DYNAMODB);
if (SemconvStability.emitStableDatabaseSemconv()) {
span.setAttribute(DB_SYSTEM_NAME, DB_SYSTEM_AWS_DYNAMODB);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
span.setAttribute(DB_SYSTEM, DB_SYSTEM_DYNAMODB);
}
String operation = attributes.getAttribute(SdkExecutionAttribute.OPERATION_NAME);
if (operation != null) {
if (SemconvStability.emitStableDatabaseSemconv()) {

View File

@ -7,6 +7,7 @@ package io.opentelemetry.instrumentation.awssdk.v2_2;
import static io.opentelemetry.api.common.AttributeKey.stringKey;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.semconv.HttpAttributes.HTTP_REQUEST_METHOD;
import static io.opentelemetry.semconv.HttpAttributes.HTTP_RESPONSE_STATUS_CODE;
@ -170,7 +171,7 @@ public abstract class AbstractAws2ClientCoreTest {
equalTo(stringKey("aws.agent"), "java-aws-sdk"),
equalTo(AWS_REQUEST_ID, "UNKNOWN"),
equalTo(stringKey("aws.table.name"), "sometable"),
equalTo(DB_SYSTEM, "dynamodb"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("dynamodb")),
equalTo(maybeStable(DB_OPERATION), "CreateTable"),
equalTo(
stringKey("aws.dynamodb.global_secondary_indexes"),
@ -196,7 +197,7 @@ public abstract class AbstractAws2ClientCoreTest {
equalTo(stringKey("aws.agent"), "java-aws-sdk"),
equalTo(AWS_REQUEST_ID, "UNKNOWN"),
equalTo(stringKey("aws.table.name"), "sometable"),
equalTo(DB_SYSTEM, "dynamodb"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("dynamodb")),
equalTo(maybeStable(DB_OPERATION), "Query"),
equalTo(stringKey("aws.dynamodb.limit"), "10"),
equalTo(stringKey("aws.dynamodb.select"), "ALL_ATTRIBUTES"));
@ -219,7 +220,7 @@ public abstract class AbstractAws2ClientCoreTest {
equalTo(stringKey("aws.agent"), "java-aws-sdk"),
equalTo(AWS_REQUEST_ID, "UNKNOWN"),
equalTo(stringKey("aws.table.name"), "sometable"),
equalTo(DB_SYSTEM, "dynamodb"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("dynamodb")),
equalTo(maybeStable(DB_OPERATION), operation));
}

View File

@ -7,6 +7,7 @@ package io.opentelemetry.instrumentation.awssdk.v2_2;
import static io.opentelemetry.api.common.AttributeKey.stringKey;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.semconv.HttpAttributes.HTTP_REQUEST_METHOD;
@ -184,7 +185,7 @@ public abstract class AbstractAws2ClientRecordHttpErrorTest {
equalTo(stringKey("aws.agent"), "java-aws-sdk"),
equalTo(AWS_REQUEST_ID, requestId),
equalTo(stringKey("aws.table.name"), "sometable"),
equalTo(DB_SYSTEM, "dynamodb"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("dynamodb")),
equalTo(maybeStable(DB_OPERATION), operation));
if (isRecordIndividualHttpErrorEnabled()) {
span.hasEventsSatisfyingExactly(

View File

@ -124,7 +124,12 @@ class DbSpanDecorator extends BaseSpanDecorator {
CamelDirection camelDirection) {
super.pre(attributes, exchange, endpoint, camelDirection);
attributes.put(DbIncubatingAttributes.DB_SYSTEM, system);
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(DbIncubatingAttributes.DB_SYSTEM_NAME, system);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(DbIncubatingAttributes.DB_SYSTEM, system);
}
String statement = getStatement(exchange, endpoint);
if (statement != null) {
if (SemconvStability.emitStableDatabaseSemconv()) {

View File

@ -15,8 +15,8 @@ public class DecoratorRegistry {
private static final SpanDecorator DEFAULT = new BaseSpanDecorator();
private static final Map<String, SpanDecorator> DECORATORS = loadDecorators();
@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
private static Map<String, SpanDecorator> loadDecorators() {
Map<String, SpanDecorator> result = new HashMap<>();
result.put("ahc", new HttpSpanDecorator());
result.put("ampq", new MessagingSpanDecorator("ampq"));

View File

@ -124,6 +124,6 @@ class CassandraTest extends AbstractHttpServerUsingTest<ConfigurableApplicationC
equalTo(
maybeStable(DB_STATEMENT),
"select * from test.users where id=? ALLOW FILTERING"),
equalTo(DB_SYSTEM, "cassandra"))));
equalTo(maybeStable(DB_SYSTEM), "cassandra"))));
}
}

View File

@ -14,6 +14,7 @@ import javax.annotation.Nullable;
final class CassandraSqlAttributesGetter implements SqlClientAttributesGetter<CassandraRequest> {
@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
public String getDbSystem(CassandraRequest request) {
return DbIncubatingAttributes.DbSystemIncubatingValues.CASSANDRA;

View File

@ -107,7 +107,7 @@ class CassandraClientTest {
equalTo(SERVER_PORT, cassandraPort),
equalTo(NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(maybeStable(DB_SYSTEM), "cassandra"),
equalTo(maybeStable(DB_STATEMENT), "USE " + parameter.keyspace))),
trace ->
trace.hasSpansSatisfyingExactly(
@ -121,7 +121,7 @@ class CassandraClientTest {
equalTo(SERVER_PORT, cassandraPort),
equalTo(NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(maybeStable(DB_SYSTEM), "cassandra"),
equalTo(maybeStable(DB_NAME), parameter.keyspace),
equalTo(maybeStable(DB_STATEMENT), parameter.expectedStatement),
equalTo(maybeStable(DB_OPERATION), parameter.operation),
@ -140,7 +140,7 @@ class CassandraClientTest {
equalTo(SERVER_PORT, cassandraPort),
equalTo(NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(maybeStable(DB_SYSTEM), "cassandra"),
equalTo(maybeStable(DB_STATEMENT), parameter.expectedStatement),
equalTo(maybeStable(DB_OPERATION), parameter.operation),
equalTo(maybeStable(DB_CASSANDRA_TABLE), parameter.table))));
@ -179,7 +179,7 @@ class CassandraClientTest {
equalTo(SERVER_PORT, cassandraPort),
equalTo(NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(maybeStable(DB_SYSTEM), "cassandra"),
equalTo(maybeStable(DB_STATEMENT), "USE " + parameter.keyspace))),
trace ->
trace.hasSpansSatisfyingExactly(
@ -194,7 +194,7 @@ class CassandraClientTest {
equalTo(SERVER_PORT, cassandraPort),
equalTo(NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(maybeStable(DB_SYSTEM), "cassandra"),
equalTo(maybeStable(DB_NAME), parameter.keyspace),
equalTo(maybeStable(DB_STATEMENT), parameter.expectedStatement),
equalTo(maybeStable(DB_OPERATION), parameter.operation),
@ -218,7 +218,7 @@ class CassandraClientTest {
equalTo(SERVER_PORT, cassandraPort),
equalTo(NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(maybeStable(DB_SYSTEM), "cassandra"),
equalTo(maybeStable(DB_STATEMENT), parameter.expectedStatement),
equalTo(maybeStable(DB_OPERATION), parameter.operation),
equalTo(maybeStable(DB_CASSANDRA_TABLE), parameter.table)),

View File

@ -112,20 +112,20 @@ public abstract class AbstractCassandraTest {
equalTo(SERVER_PORT, cassandraPort),
equalTo(NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(maybeStable(DB_SYSTEM), "cassandra"),
equalTo(maybeStable(DB_NAME), parameter.keyspace),
equalTo(maybeStable(DB_STATEMENT), parameter.expectedStatement),
equalTo(maybeStable(DB_OPERATION), parameter.operation),
equalTo(DB_CASSANDRA_CONSISTENCY_LEVEL, "LOCAL_ONE"),
equalTo(DB_CASSANDRA_COORDINATOR_DC, "datacenter1"),
equalTo(maybeStable(DB_CASSANDRA_CONSISTENCY_LEVEL), "LOCAL_ONE"),
equalTo(maybeStable(DB_CASSANDRA_COORDINATOR_DC), "datacenter1"),
satisfies(
DB_CASSANDRA_COORDINATOR_ID,
maybeStable(DB_CASSANDRA_COORDINATOR_ID),
val -> val.isInstanceOf(String.class)),
satisfies(
DB_CASSANDRA_IDEMPOTENCE,
maybeStable(DB_CASSANDRA_IDEMPOTENCE),
val -> val.isInstanceOf(Boolean.class)),
equalTo(DB_CASSANDRA_PAGE_SIZE, 5000),
equalTo(DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT, 0),
equalTo(maybeStable(DB_CASSANDRA_PAGE_SIZE), 5000),
equalTo(maybeStable(DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT), 0),
equalTo(maybeStable(DB_CASSANDRA_TABLE), parameter.table))));
session.close();
@ -166,20 +166,20 @@ public abstract class AbstractCassandraTest {
equalTo(SERVER_PORT, cassandraPort),
equalTo(NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(maybeStable(DB_SYSTEM), "cassandra"),
equalTo(maybeStable(DB_NAME), parameter.keyspace),
equalTo(maybeStable(DB_STATEMENT), parameter.expectedStatement),
equalTo(maybeStable(DB_OPERATION), parameter.operation),
equalTo(DB_CASSANDRA_CONSISTENCY_LEVEL, "LOCAL_ONE"),
equalTo(DB_CASSANDRA_COORDINATOR_DC, "datacenter1"),
equalTo(maybeStable(DB_CASSANDRA_CONSISTENCY_LEVEL), "LOCAL_ONE"),
equalTo(maybeStable(DB_CASSANDRA_COORDINATOR_DC), "datacenter1"),
satisfies(
DB_CASSANDRA_COORDINATOR_ID,
maybeStable(DB_CASSANDRA_COORDINATOR_ID),
val -> val.isInstanceOf(String.class)),
satisfies(
DB_CASSANDRA_IDEMPOTENCE,
maybeStable(DB_CASSANDRA_IDEMPOTENCE),
val -> val.isInstanceOf(Boolean.class)),
equalTo(DB_CASSANDRA_PAGE_SIZE, 5000),
equalTo(DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT, 0),
equalTo(maybeStable(DB_CASSANDRA_PAGE_SIZE), 5000),
equalTo(maybeStable(DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT), 0),
equalTo(maybeStable(DB_CASSANDRA_TABLE), parameter.table)),
span ->
span.hasName("child")

View File

@ -13,7 +13,9 @@ import com.datastax.oss.driver.api.core.metadata.Node;
import io.opentelemetry.api.common.AttributesBuilder;
import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
import io.opentelemetry.semconv.ServerAttributes;
import io.opentelemetry.semconv.incubating.CassandraIncubatingAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
@ -26,6 +28,7 @@ final class CassandraAttributesExtractor
public void onStart(
AttributesBuilder attributes, Context parentContext, CassandraRequest request) {}
@SuppressWarnings("deprecation") // using deprecated semconv
@Override
public void onEnd(
AttributesBuilder attributes,
@ -46,17 +49,38 @@ final class CassandraAttributesExtractor
attributes.put(ServerAttributes.SERVER_PORT, ((InetSocketAddress) address).getPort());
}
if (coordinator.getDatacenter() != null) {
attributes.put(
DbIncubatingAttributes.DB_CASSANDRA_COORDINATOR_DC, coordinator.getDatacenter());
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(
CassandraIncubatingAttributes.CASSANDRA_COORDINATOR_DC, coordinator.getDatacenter());
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(
DbIncubatingAttributes.DB_CASSANDRA_COORDINATOR_DC, coordinator.getDatacenter());
}
}
if (coordinator.getHostId() != null) {
attributes.put(
DbIncubatingAttributes.DB_CASSANDRA_COORDINATOR_ID, coordinator.getHostId().toString());
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(
CassandraIncubatingAttributes.CASSANDRA_COORDINATOR_ID,
coordinator.getHostId().toString());
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(
DbIncubatingAttributes.DB_CASSANDRA_COORDINATOR_ID,
coordinator.getHostId().toString());
}
}
}
attributes.put(
DbIncubatingAttributes.DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT,
executionInfo.getSpeculativeExecutionCount());
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(
CassandraIncubatingAttributes.CASSANDRA_SPECULATIVE_EXECUTION_COUNT,
executionInfo.getSpeculativeExecutionCount());
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(
DbIncubatingAttributes.DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT,
executionInfo.getSpeculativeExecutionCount());
}
Statement<?> statement = executionInfo.getStatement();
String consistencyLevel;
@ -67,14 +91,29 @@ final class CassandraAttributesExtractor
} else {
consistencyLevel = config.getString(DefaultDriverOption.REQUEST_CONSISTENCY);
}
attributes.put(DbIncubatingAttributes.DB_CASSANDRA_CONSISTENCY_LEVEL, consistencyLevel);
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(CassandraIncubatingAttributes.CASSANDRA_CONSISTENCY_LEVEL, consistencyLevel);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(DbIncubatingAttributes.DB_CASSANDRA_CONSISTENCY_LEVEL, consistencyLevel);
}
if (statement.getPageSize() > 0) {
attributes.put(DbIncubatingAttributes.DB_CASSANDRA_PAGE_SIZE, statement.getPageSize());
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(CassandraIncubatingAttributes.CASSANDRA_PAGE_SIZE, statement.getPageSize());
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(DbIncubatingAttributes.DB_CASSANDRA_PAGE_SIZE, statement.getPageSize());
}
} else {
int pageSize = config.getInt(DefaultDriverOption.REQUEST_PAGE_SIZE);
if (pageSize > 0) {
attributes.put(DbIncubatingAttributes.DB_CASSANDRA_PAGE_SIZE, pageSize);
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(CassandraIncubatingAttributes.CASSANDRA_PAGE_SIZE, pageSize);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(DbIncubatingAttributes.DB_CASSANDRA_PAGE_SIZE, pageSize);
}
}
}
@ -82,6 +121,11 @@ final class CassandraAttributesExtractor
if (idempotent == null) {
idempotent = config.getBoolean(DefaultDriverOption.REQUEST_DEFAULT_IDEMPOTENCE);
}
attributes.put(DbIncubatingAttributes.DB_CASSANDRA_IDEMPOTENCE, idempotent);
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(CassandraIncubatingAttributes.CASSANDRA_QUERY_IDEMPOTENT, idempotent);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(DbIncubatingAttributes.DB_CASSANDRA_IDEMPOTENCE, idempotent);
}
}
}

View File

@ -15,6 +15,7 @@ import javax.annotation.Nullable;
final class CassandraSqlAttributesGetter implements SqlClientAttributesGetter<CassandraRequest> {
@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
public String getDbSystem(CassandraRequest request) {
return DbIncubatingAttributes.DbSystemIncubatingValues.CASSANDRA;

View File

@ -17,6 +17,7 @@ import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.common.AttributesBuilder;
import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
import io.opentelemetry.semconv.ServerAttributes;
import java.lang.reflect.Field;
import java.net.InetSocketAddress;
@ -44,6 +45,20 @@ final class CassandraAttributesExtractor
private static final AttributeKey<Long> DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT =
AttributeKey.longKey("db.cassandra.speculative_execution_count");
// copied from CassandraIncubatingAttributes
private static final AttributeKey<String> CASSANDRA_CONSISTENCY_LEVEL =
AttributeKey.stringKey("cassandra.consistency.level");
private static final AttributeKey<String> CASSANDRA_COORDINATOR_DC =
AttributeKey.stringKey("cassandra.coordinator.dc");
private static final AttributeKey<String> CASSANDRA_COORDINATOR_ID =
AttributeKey.stringKey("cassandra.coordinator.id");
private static final AttributeKey<Long> CASSANDRA_PAGE_SIZE =
AttributeKey.longKey("cassandra.page.size");
private static final AttributeKey<Boolean> CASSANDRA_QUERY_IDEMPOTENT =
AttributeKey.booleanKey("cassandra.query.idempotent");
private static final AttributeKey<Long> CASSANDRA_SPECULATIVE_EXECUTION_COUNT =
AttributeKey.longKey("cassandra.speculative_execution.count");
private static final Field proxyAddressField = getProxyAddressField();
@Override
@ -66,14 +81,30 @@ final class CassandraAttributesExtractor
updateServerAddressAndPort(attributes, coordinator);
if (coordinator.getDatacenter() != null) {
attributes.put(DB_CASSANDRA_COORDINATOR_DC, coordinator.getDatacenter());
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(CASSANDRA_COORDINATOR_DC, coordinator.getDatacenter());
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(DB_CASSANDRA_COORDINATOR_DC, coordinator.getDatacenter());
}
}
if (coordinator.getHostId() != null) {
attributes.put(DB_CASSANDRA_COORDINATOR_ID, coordinator.getHostId().toString());
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(CASSANDRA_COORDINATOR_ID, coordinator.getHostId().toString());
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(DB_CASSANDRA_COORDINATOR_ID, coordinator.getHostId().toString());
}
}
}
attributes.put(
DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT, executionInfo.getSpeculativeExecutionCount());
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(
CASSANDRA_SPECULATIVE_EXECUTION_COUNT, executionInfo.getSpeculativeExecutionCount());
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(
DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT, executionInfo.getSpeculativeExecutionCount());
}
Statement<?> statement = (Statement<?>) executionInfo.getRequest();
String consistencyLevel;
@ -84,14 +115,29 @@ final class CassandraAttributesExtractor
} else {
consistencyLevel = config.getString(DefaultDriverOption.REQUEST_CONSISTENCY);
}
attributes.put(DB_CASSANDRA_CONSISTENCY_LEVEL, consistencyLevel);
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(CASSANDRA_CONSISTENCY_LEVEL, consistencyLevel);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(DB_CASSANDRA_CONSISTENCY_LEVEL, consistencyLevel);
}
if (statement.getPageSize() > 0) {
attributes.put(DB_CASSANDRA_PAGE_SIZE, statement.getPageSize());
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(CASSANDRA_PAGE_SIZE, statement.getPageSize());
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(DB_CASSANDRA_PAGE_SIZE, statement.getPageSize());
}
} else {
int pageSize = config.getInt(DefaultDriverOption.REQUEST_PAGE_SIZE);
if (pageSize > 0) {
attributes.put(DB_CASSANDRA_PAGE_SIZE, pageSize);
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(CASSANDRA_PAGE_SIZE, pageSize);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(DB_CASSANDRA_PAGE_SIZE, pageSize);
}
}
}
@ -99,7 +145,12 @@ final class CassandraAttributesExtractor
if (idempotent == null) {
idempotent = config.getBoolean(DefaultDriverOption.REQUEST_DEFAULT_IDEMPOTENCE);
}
attributes.put(DB_CASSANDRA_IDEMPOTENCE, idempotent);
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(CASSANDRA_QUERY_IDEMPOTENT, idempotent);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(DB_CASSANDRA_IDEMPOTENCE, idempotent);
}
}
private static void updateServerAddressAndPort(AttributesBuilder attributes, Node coordinator) {

View File

@ -72,20 +72,20 @@ public abstract class AbstractCassandra44Test extends AbstractCassandraTest {
equalTo(SERVER_PORT, cassandraPort),
equalTo(NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(maybeStable(DB_SYSTEM), "cassandra"),
equalTo(maybeStable(DB_NAME), parameter.keyspace),
equalTo(maybeStable(DB_STATEMENT), parameter.expectedStatement),
equalTo(maybeStable(DB_OPERATION), parameter.operation),
equalTo(DB_CASSANDRA_CONSISTENCY_LEVEL, "LOCAL_ONE"),
equalTo(DB_CASSANDRA_COORDINATOR_DC, "datacenter1"),
equalTo(maybeStable(DB_CASSANDRA_CONSISTENCY_LEVEL), "LOCAL_ONE"),
equalTo(maybeStable(DB_CASSANDRA_COORDINATOR_DC), "datacenter1"),
satisfies(
DB_CASSANDRA_COORDINATOR_ID,
maybeStable(DB_CASSANDRA_COORDINATOR_ID),
val -> val.isInstanceOf(String.class)),
satisfies(
DB_CASSANDRA_IDEMPOTENCE,
maybeStable(DB_CASSANDRA_IDEMPOTENCE),
val -> val.isInstanceOf(Boolean.class)),
equalTo(DB_CASSANDRA_PAGE_SIZE, 5000),
equalTo(DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT, 0),
equalTo(maybeStable(DB_CASSANDRA_PAGE_SIZE), 5000),
equalTo(maybeStable(DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT), 0),
equalTo(maybeStable(DB_CASSANDRA_TABLE), parameter.table)),
span ->
span.hasName("child")

View File

@ -29,7 +29,7 @@ final class ClickHouseAttributesGetter implements DbClientAttributesGetter<Click
return request.getSqlStatementInfo().getOperation();
}
@Nullable
@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
public String getDbSystem(ClickHouseDbRequest request) {
return DbIncubatingAttributes.DbSystemIncubatingValues.CLICKHOUSE;

View File

@ -377,7 +377,7 @@ class ClickHouseClientTest {
@SuppressWarnings("deprecation") // using deprecated semconv
private static List<AttributeAssertion> attributeAssertions(String statement, String operation) {
return asList(
equalTo(DB_SYSTEM, DbIncubatingAttributes.DbSystemIncubatingValues.CLICKHOUSE),
equalTo(maybeStable(DB_SYSTEM), DbIncubatingAttributes.DbSystemIncubatingValues.CLICKHOUSE),
equalTo(maybeStable(DB_NAME), dbName),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),

View File

@ -11,6 +11,7 @@ import javax.annotation.Nullable;
final class CouchbaseAttributesGetter implements DbClientAttributesGetter<CouchbaseRequestInfo> {
@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
public String getDbSystem(CouchbaseRequestInfo couchbaseRequest) {
return DbIncubatingAttributes.DbSystemIncubatingValues.COUCHBASE;

View File

@ -116,7 +116,7 @@ public abstract class AbstractCouchbaseAsyncClientTest extends AbstractCouchbase
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.COUCHBASE),
equalTo(maybeStable(DB_OPERATION), "Cluster.openBucket")),
span ->
@ -157,7 +157,7 @@ public abstract class AbstractCouchbaseAsyncClientTest extends AbstractCouchbase
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.COUCHBASE),
equalTo(maybeStable(DB_OPERATION), "Cluster.openBucket")),
span ->
@ -205,7 +205,7 @@ public abstract class AbstractCouchbaseAsyncClientTest extends AbstractCouchbase
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.COUCHBASE),
equalTo(maybeStable(DB_OPERATION), "Cluster.openBucket")),
span ->
@ -250,7 +250,7 @@ public abstract class AbstractCouchbaseAsyncClientTest extends AbstractCouchbase
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.COUCHBASE),
equalTo(maybeStable(DB_OPERATION), "Cluster.openBucket")),
span ->

View File

@ -110,7 +110,7 @@ public abstract class AbstractCouchbaseClientTest extends AbstractCouchbaseTest
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.COUCHBASE),
equalTo(maybeStable(DB_OPERATION), "Cluster.openBucket"))),
trace ->
@ -146,7 +146,7 @@ public abstract class AbstractCouchbaseClientTest extends AbstractCouchbaseTest
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.COUCHBASE),
equalTo(maybeStable(DB_OPERATION), "Cluster.openBucket"))),
trace ->

View File

@ -125,7 +125,8 @@ public abstract class AbstractCouchbaseTest {
span.hasName(spanName).hasKind(SpanKind.CLIENT);
List<AttributeAssertion> assertions = new ArrayList<>();
assertions.add(equalTo(DB_SYSTEM, DbIncubatingAttributes.DbSystemIncubatingValues.COUCHBASE));
assertions.add(
equalTo(maybeStable(DB_SYSTEM), DbIncubatingAttributes.DbSystemIncubatingValues.COUCHBASE));
if (operation != null) {
assertions.add(equalTo(maybeStable(DB_OPERATION), operation));
}

View File

@ -94,7 +94,7 @@ class ElasticsearchClientTest {
.hasKind(SpanKind.CLIENT)
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "elasticsearch"),
equalTo(maybeStable(DB_SYSTEM), "elasticsearch"),
equalTo(maybeStable(DB_OPERATION), "info"),
equalTo(HTTP_REQUEST_METHOD, "GET"),
equalTo(URL_FULL, httpHost.toURI() + "/"),
@ -130,7 +130,7 @@ class ElasticsearchClientTest {
.hasKind(SpanKind.CLIENT)
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "elasticsearch"),
equalTo(maybeStable(DB_SYSTEM), "elasticsearch"),
equalTo(maybeStable(DB_OPERATION), "index"),
equalTo(SERVER_ADDRESS, httpHost.getHostName()),
equalTo(SERVER_PORT, httpHost.getPort()),
@ -188,7 +188,7 @@ class ElasticsearchClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "elasticsearch"),
equalTo(maybeStable(DB_SYSTEM), "elasticsearch"),
equalTo(maybeStable(DB_OPERATION), "info"),
equalTo(SERVER_ADDRESS, httpHost.getHostName()),
equalTo(SERVER_PORT, httpHost.getPort()),

View File

@ -5,6 +5,7 @@
package io.opentelemetry.javaagent.instrumentation.elasticsearch.rest.v5_0;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.semconv.HttpAttributes.HTTP_REQUEST_METHOD;
import static io.opentelemetry.semconv.HttpAttributes.HTTP_RESPONSE_STATUS_CODE;
@ -32,6 +33,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.testcontainers.elasticsearch.ElasticsearchContainer;
@SuppressWarnings("deprecation") // using deprecated semconv
class ElasticsearchRest5Test {
@RegisterExtension
@ -98,7 +100,7 @@ class ElasticsearchRest5Test {
.hasKind(SpanKind.CLIENT)
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "elasticsearch"),
equalTo(maybeStable(DB_SYSTEM), "elasticsearch"),
equalTo(HTTP_REQUEST_METHOD, "GET"),
equalTo(SERVER_ADDRESS, httpHost.getHostName()),
equalTo(SERVER_PORT, httpHost.getPort()),
@ -174,7 +176,7 @@ class ElasticsearchRest5Test {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "elasticsearch"),
equalTo(maybeStable(DB_SYSTEM), "elasticsearch"),
equalTo(HTTP_REQUEST_METHOD, "GET"),
equalTo(SERVER_ADDRESS, httpHost.getHostName()),
equalTo(SERVER_PORT, httpHost.getPort()),

View File

@ -5,6 +5,7 @@
package io.opentelemetry.javaagent.instrumentation.elasticsearch.rest.v6_4;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.semconv.HttpAttributes.HTTP_REQUEST_METHOD;
import static io.opentelemetry.semconv.HttpAttributes.HTTP_RESPONSE_STATUS_CODE;
@ -89,7 +90,7 @@ class ElasticsearchRest6Test {
.hasKind(SpanKind.CLIENT)
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "elasticsearch"),
equalTo(maybeStable(DB_SYSTEM), "elasticsearch"),
equalTo(HTTP_REQUEST_METHOD, "GET"),
equalTo(SERVER_ADDRESS, httpHost.getHostName()),
equalTo(SERVER_PORT, httpHost.getPort()),
@ -164,7 +165,7 @@ class ElasticsearchRest6Test {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "elasticsearch"),
equalTo(maybeStable(DB_SYSTEM), "elasticsearch"),
equalTo(HTTP_REQUEST_METHOD, "GET"),
equalTo(SERVER_ADDRESS, httpHost.getHostName()),
equalTo(SERVER_PORT, httpHost.getPort()),

View File

@ -6,6 +6,7 @@
package io.opentelemetry.javaagent.instrumentation.elasticsearch.rest.v7_0;
import static io.opentelemetry.instrumentation.testing.GlobalTraceUtil.runWithSpan;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.semconv.HttpAttributes.HTTP_REQUEST_METHOD;
import static io.opentelemetry.semconv.HttpAttributes.HTTP_RESPONSE_STATUS_CODE;
@ -34,6 +35,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
import org.testcontainers.elasticsearch.ElasticsearchContainer;
import org.testcontainers.shaded.com.fasterxml.jackson.databind.ObjectMapper;
@SuppressWarnings("deprecation") // using deprecated semconv
class ElasticsearchRest7Test {
@RegisterExtension
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
@ -87,7 +89,7 @@ class ElasticsearchRest7Test {
.hasKind(SpanKind.CLIENT)
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "elasticsearch"),
equalTo(maybeStable(DB_SYSTEM), "elasticsearch"),
equalTo(HTTP_REQUEST_METHOD, "GET"),
equalTo(SERVER_ADDRESS, httpHost.getHostName()),
equalTo(SERVER_PORT, httpHost.getPort()),
@ -157,7 +159,7 @@ class ElasticsearchRest7Test {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "elasticsearch"),
equalTo(maybeStable(DB_SYSTEM), "elasticsearch"),
equalTo(HTTP_REQUEST_METHOD, "GET"),
equalTo(SERVER_ADDRESS, httpHost.getHostName()),
equalTo(SERVER_PORT, httpHost.getPort()),

View File

@ -6,6 +6,7 @@
package io.opentelemetry.instrumentation.elasticsearch.rest.v7_0;
import static io.opentelemetry.instrumentation.testing.GlobalTraceUtil.runWithSpan;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.semconv.HttpAttributes.HTTP_REQUEST_METHOD;
import static io.opentelemetry.semconv.ServerAttributes.SERVER_ADDRESS;
@ -32,6 +33,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
import org.testcontainers.elasticsearch.ElasticsearchContainer;
import org.testcontainers.shaded.com.fasterxml.jackson.databind.ObjectMapper;
@SuppressWarnings("deprecation") // using deprecated semconv
class ElasticsearchRest7Test {
@RegisterExtension
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
@ -86,7 +88,7 @@ class ElasticsearchRest7Test {
.hasKind(SpanKind.CLIENT)
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "elasticsearch"),
equalTo(maybeStable(DB_SYSTEM), "elasticsearch"),
equalTo(HTTP_REQUEST_METHOD, "GET"),
equalTo(SERVER_ADDRESS, httpHost.getHostName()),
equalTo(SERVER_PORT, httpHost.getPort()),
@ -145,7 +147,7 @@ class ElasticsearchRest7Test {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "elasticsearch"),
equalTo(maybeStable(DB_SYSTEM), "elasticsearch"),
equalTo(HTTP_REQUEST_METHOD, "GET"),
equalTo(SERVER_ADDRESS, httpHost.getHostName()),
equalTo(SERVER_PORT, httpHost.getPort()),

View File

@ -90,7 +90,7 @@ class Elasticsearch53SpringRepositoryTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "SearchAction"),
equalTo(stringKey("elasticsearch.action"), "SearchAction"),
@ -124,7 +124,7 @@ class Elasticsearch53SpringRepositoryTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "IndexAction"),
equalTo(stringKey("elasticsearch.action"), "IndexAction"),
@ -142,7 +142,7 @@ class Elasticsearch53SpringRepositoryTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "RefreshAction"),
equalTo(stringKey("elasticsearch.action"), "RefreshAction"),
@ -173,7 +173,7 @@ class Elasticsearch53SpringRepositoryTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "GetAction"),
equalTo(stringKey("elasticsearch.action"), "GetAction"),
@ -207,7 +207,7 @@ class Elasticsearch53SpringRepositoryTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "IndexAction"),
equalTo(stringKey("elasticsearch.action"), "IndexAction"),
@ -225,7 +225,7 @@ class Elasticsearch53SpringRepositoryTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "RefreshAction"),
equalTo(stringKey("elasticsearch.action"), "RefreshAction"),
@ -251,7 +251,7 @@ class Elasticsearch53SpringRepositoryTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "GetAction"),
equalTo(stringKey("elasticsearch.action"), "GetAction"),
@ -283,7 +283,7 @@ class Elasticsearch53SpringRepositoryTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "DeleteAction"),
equalTo(stringKey("elasticsearch.action"), "DeleteAction"),
@ -300,7 +300,7 @@ class Elasticsearch53SpringRepositoryTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "RefreshAction"),
equalTo(stringKey("elasticsearch.action"), "RefreshAction"),
@ -326,7 +326,7 @@ class Elasticsearch53SpringRepositoryTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "SearchAction"),
equalTo(stringKey("elasticsearch.action"), "SearchAction"),

View File

@ -174,7 +174,7 @@ class Elasticsearch53SpringTemplateTest {
.hasException(expectedException)
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "RefreshAction"),
equalTo(stringKey("elasticsearch.action"), "RefreshAction"),
@ -229,7 +229,7 @@ class Elasticsearch53SpringTemplateTest {
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "CreateIndexAction"),
equalTo(stringKey("elasticsearch.action"), "CreateIndexAction"),
@ -243,7 +243,7 @@ class Elasticsearch53SpringTemplateTest {
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "ClusterHealthAction"),
equalTo(stringKey("elasticsearch.action"), "ClusterHealthAction"),
@ -256,7 +256,7 @@ class Elasticsearch53SpringTemplateTest {
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "SearchAction"),
equalTo(stringKey("elasticsearch.action"), "SearchAction"),
@ -271,7 +271,7 @@ class Elasticsearch53SpringTemplateTest {
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "IndexAction"),
equalTo(stringKey("elasticsearch.action"), "IndexAction"),
@ -291,7 +291,7 @@ class Elasticsearch53SpringTemplateTest {
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "RefreshAction"),
equalTo(stringKey("elasticsearch.action"), "RefreshAction"),
@ -308,7 +308,7 @@ class Elasticsearch53SpringTemplateTest {
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "SearchAction"),
equalTo(stringKey("elasticsearch.action"), "SearchAction"),
@ -392,7 +392,7 @@ class Elasticsearch53SpringTemplateTest {
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "SearchAction"),
equalTo(stringKey("elasticsearch.action"), "SearchAction"),

View File

@ -12,6 +12,7 @@ import javax.annotation.Nullable;
final class ElasticsearchTransportAttributesGetter
implements DbClientAttributesGetter<ElasticTransportRequest> {
@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
public String getDbSystem(ElasticTransportRequest request) {
return DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH;

View File

@ -71,7 +71,7 @@ public abstract class AbstractElasticsearchNodeClientTest extends AbstractElasti
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "ClusterHealthAction"),
equalTo(ELASTICSEARCH_ACTION, "ClusterHealthAction"),
@ -120,7 +120,7 @@ public abstract class AbstractElasticsearchNodeClientTest extends AbstractElasti
.hasException(expectedException)
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "GetAction"),
equalTo(ELASTICSEARCH_ACTION, "GetAction"),
@ -182,7 +182,7 @@ public abstract class AbstractElasticsearchNodeClientTest extends AbstractElasti
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "CreateIndexAction"),
equalTo(ELASTICSEARCH_ACTION, "CreateIndexAction"),
@ -196,7 +196,7 @@ public abstract class AbstractElasticsearchNodeClientTest extends AbstractElasti
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "ClusterHealthAction"),
equalTo(ELASTICSEARCH_ACTION, "ClusterHealthAction"),
@ -209,7 +209,7 @@ public abstract class AbstractElasticsearchNodeClientTest extends AbstractElasti
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "GetAction"),
equalTo(ELASTICSEARCH_ACTION, "GetAction"),
@ -227,7 +227,7 @@ public abstract class AbstractElasticsearchNodeClientTest extends AbstractElasti
.hasAttributesSatisfyingExactly(
addIndexActionAttributes(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "IndexAction"),
equalTo(ELASTICSEARCH_ACTION, "IndexAction"),
@ -246,7 +246,7 @@ public abstract class AbstractElasticsearchNodeClientTest extends AbstractElasti
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "GetAction"),
equalTo(ELASTICSEARCH_ACTION, "GetAction"),

View File

@ -86,7 +86,7 @@ public abstract class AbstractElasticsearchTransportClientTest
equalTo(NETWORK_PEER_ADDRESS, getAddress()),
equalTo(NETWORK_PEER_PORT, getPort()),
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "ClusterHealthAction"),
equalTo(ELASTICSEARCH_ACTION, "ClusterHealthAction"),
@ -142,7 +142,7 @@ public abstract class AbstractElasticsearchTransportClientTest
RemoteTransportException.class.getName())))
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "GetAction"),
equalTo(ELASTICSEARCH_ACTION, "GetAction"),
@ -203,7 +203,7 @@ public abstract class AbstractElasticsearchTransportClientTest
equalTo(NETWORK_PEER_ADDRESS, getAddress()),
equalTo(NETWORK_PEER_PORT, getPort()),
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "CreateIndexAction"),
equalTo(ELASTICSEARCH_ACTION, "CreateIndexAction"),
@ -217,7 +217,7 @@ public abstract class AbstractElasticsearchTransportClientTest
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), getPutMappingActionName()),
equalTo(ELASTICSEARCH_ACTION, getPutMappingActionName()),
@ -233,7 +233,7 @@ public abstract class AbstractElasticsearchTransportClientTest
equalTo(NETWORK_PEER_ADDRESS, getAddress()),
equalTo(NETWORK_PEER_PORT, getPort()),
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "IndexAction"),
equalTo(ELASTICSEARCH_ACTION, "IndexAction"),
@ -256,7 +256,7 @@ public abstract class AbstractElasticsearchTransportClientTest
equalTo(NETWORK_PEER_ADDRESS, getAddress()),
equalTo(NETWORK_PEER_PORT, getPort()),
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "GetAction"),
equalTo(ELASTICSEARCH_ACTION, "GetAction"),
@ -276,7 +276,7 @@ public abstract class AbstractElasticsearchTransportClientTest
equalTo(NETWORK_PEER_ADDRESS, getAddress()),
equalTo(NETWORK_PEER_PORT, getPort()),
equalTo(
DB_SYSTEM,
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
equalTo(maybeStable(DB_OPERATION), "GetAction"),
equalTo(ELASTICSEARCH_ACTION, "GetAction"),

View File

@ -26,6 +26,7 @@ class ConfiguredTraceAnnotationsTest {
assertThat(testing.spans()).isEmpty();
}
@SuppressWarnings("deprecation") // using deprecated semconv
@Test
void testMethodWithAnnotationShouldBeTraced() {
assertThat(new AnnotationTracedCallable().call()).isEqualTo("Hello!");

View File

@ -18,6 +18,7 @@ import java.util.concurrent.Callable;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
@SuppressWarnings("deprecation") // using deprecated semconv
class TraceAnnotationsTest {
@RegisterExtension

View File

@ -22,6 +22,7 @@ class TraceProvidersTest {
@RegisterExtension
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
@SuppressWarnings("deprecation") // using deprecated semconv
@ParameterizedTest
@EnumSource(TraceProvider.class)
void testShouldSupportProvider(TraceProvider provider) {

View File

@ -20,6 +20,7 @@ class TracedMethodsExclusionTest {
@RegisterExtension
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
@SuppressWarnings("deprecation") // using deprecated semconv
@Test
void testCallingTheseMethodsShouldBeTraced() {
// Baseline and assumption validation

View File

@ -16,6 +16,7 @@ final class GeodeDbAttributesGetter implements DbClientAttributesGetter<GeodeReq
private static final SqlStatementSanitizer sanitizer =
SqlStatementSanitizer.create(AgentCommonConfig.get().isStatementSanitizationEnabled());
@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
public String getDbSystem(GeodeRequest request) {
return DbIncubatingAttributes.DbSystemIncubatingValues.GEODE;

View File

@ -137,21 +137,21 @@ class PutGetTest {
span.hasName("clear test-region")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "geode"),
equalTo(maybeStable(DB_SYSTEM), "geode"),
equalTo(maybeStable(DB_NAME), "test-region"),
equalTo(maybeStable(DB_OPERATION), "clear")),
span ->
span.hasName("put test-region")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "geode"),
equalTo(maybeStable(DB_SYSTEM), "geode"),
equalTo(maybeStable(DB_NAME), "test-region"),
equalTo(maybeStable(DB_OPERATION), "put")),
span ->
span.hasName(verb.concat(" test-region"))
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "geode"),
equalTo(maybeStable(DB_SYSTEM), "geode"),
equalTo(maybeStable(DB_NAME), "test-region"),
equalTo(maybeStable(DB_OPERATION), verb),
equalTo(maybeStable(DB_STATEMENT), query))));

View File

@ -161,6 +161,7 @@ public class GrailsTest extends AbstractHttpServerTest<ConfigurableApplicationCo
return span;
}
@SuppressWarnings("deprecation") // using deprecated semconv
@Override
public SpanDataAssert assertResponseSpan(
SpanDataAssert span, String method, ServerEndpoint endpoint) {
@ -180,6 +181,7 @@ public class GrailsTest extends AbstractHttpServerTest<ConfigurableApplicationCo
return span;
}
@SuppressWarnings("deprecation") // using deprecated semconv
@Override
public List<Consumer<SpanDataAssert>> errorPageSpanAssertions(
String method, ServerEndpoint endpoint) {

View File

@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.hibernate.v3_3;
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_CONNECTION_STRING;
@ -69,7 +70,7 @@ abstract class AbstractHibernateTest {
return span.hasKind(SpanKind.CLIENT)
.hasParent(parent)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : "h2:mem:"),
@ -84,7 +85,7 @@ abstract class AbstractHibernateTest {
.hasKind(SpanKind.CLIENT)
.hasParent(parent)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : "h2:mem:"),

View File

@ -10,6 +10,7 @@ import static io.opentelemetry.api.trace.SpanKind.CLIENT;
import static io.opentelemetry.api.trace.SpanKind.INTERNAL;
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_CONNECTION_STRING;
@ -74,7 +75,7 @@ class CriteriaTest extends AbstractHibernateTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(

View File

@ -10,6 +10,7 @@ import static io.opentelemetry.api.trace.SpanKind.CLIENT;
import static io.opentelemetry.api.trace.SpanKind.INTERNAL;
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_CONNECTION_STRING;
@ -113,7 +114,7 @@ class EntityManagerTest extends AbstractHibernateTest {
span.hasKind(CLIENT)
.hasParent(trace.getSpan(2))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -144,7 +145,7 @@ class EntityManagerTest extends AbstractHibernateTest {
span.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -230,7 +231,7 @@ class EntityManagerTest extends AbstractHibernateTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -256,7 +257,7 @@ class EntityManagerTest extends AbstractHibernateTest {
span.hasKind(CLIENT)
.hasParent(trace.getSpan(3))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -305,7 +306,7 @@ class EntityManagerTest extends AbstractHibernateTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(

View File

@ -10,6 +10,7 @@ import static io.opentelemetry.api.trace.SpanKind.CLIENT;
import static io.opentelemetry.api.trace.SpanKind.INTERNAL;
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_CONNECTION_STRING;
@ -69,7 +70,7 @@ class QueryTest extends AbstractHibernateTest {
span.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -127,7 +128,7 @@ class QueryTest extends AbstractHibernateTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -201,7 +202,7 @@ class QueryTest extends AbstractHibernateTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(

View File

@ -10,6 +10,7 @@ import static io.opentelemetry.api.trace.SpanKind.CLIENT;
import static io.opentelemetry.api.trace.SpanKind.INTERNAL;
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_CONNECTION_STRING;
@ -72,7 +73,7 @@ class SessionTest extends AbstractHibernateTest {
span.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -183,7 +184,7 @@ class SessionTest extends AbstractHibernateTest {
span.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -330,7 +331,7 @@ class SessionTest extends AbstractHibernateTest {
span.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -356,7 +357,7 @@ class SessionTest extends AbstractHibernateTest {
span.hasKind(CLIENT)
.hasParent(trace.getSpan(3))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -490,7 +491,7 @@ class SessionTest extends AbstractHibernateTest {
span.hasKind(CLIENT)
.hasParent(trace.getSpan(2))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -669,7 +670,7 @@ class SessionTest extends AbstractHibernateTest {
span.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -770,7 +771,7 @@ class SessionTest extends AbstractHibernateTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(2))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -816,7 +817,7 @@ class SessionTest extends AbstractHibernateTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(6))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -832,7 +833,7 @@ class SessionTest extends AbstractHibernateTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(6))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(

View File

@ -74,7 +74,7 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -131,7 +131,7 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -176,7 +176,7 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -202,7 +202,7 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(3))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -251,7 +251,7 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -281,7 +281,7 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(3))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -321,7 +321,7 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -361,7 +361,7 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -395,7 +395,7 @@ class SpringJpaTest {
span.hasName("DELETE test.Customer")
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -428,7 +428,7 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -470,7 +470,7 @@ class SpringJpaTest {
span.hasName("DELETE test.Customer")
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(

View File

@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.hibernate.v6_0;
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_CONNECTION_STRING;
@ -84,7 +85,7 @@ public class CriteriaTest extends AbstractHibernateTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(

View File

@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.hibernate.v6_0;
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_CONNECTION_STRING;
@ -151,7 +152,7 @@ public class EntityManagerTest extends AbstractHibernateTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -330,7 +331,7 @@ public class EntityManagerTest extends AbstractHibernateTest {
return span.hasKind(SpanKind.CLIENT)
.hasParent(parent)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : "h2:mem:"),
@ -346,7 +347,7 @@ public class EntityManagerTest extends AbstractHibernateTest {
.hasKind(SpanKind.CLIENT)
.hasParent(parent)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : "h2:mem:"),

View File

@ -109,7 +109,7 @@ public class ProcedureCallTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(

View File

@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.hibernate.v6_0;
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_CONNECTION_STRING;
@ -251,7 +252,7 @@ public class SessionTest extends AbstractHibernateTest {
span.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -817,7 +818,7 @@ public class SessionTest extends AbstractHibernateTest {
return span.hasKind(SpanKind.CLIENT)
.hasParent(parent)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : "h2:mem:"),
@ -833,7 +834,7 @@ public class SessionTest extends AbstractHibernateTest {
.hasKind(SpanKind.CLIENT)
.hasParent(parent)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "h2"),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName("h2")),
equalTo(maybeStable(DB_NAME), "db1"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : "h2:mem:"),

View File

@ -19,13 +19,13 @@ import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SQL_
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_STATEMENT;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SYSTEM;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_USER;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DbSystemIncubatingValues.HSQLDB;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@ -81,7 +81,9 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, HSQLDB),
equalTo(
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.HSQLDB),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -133,7 +135,9 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, HSQLDB),
equalTo(
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.HSQLDB),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(maybeStable(DB_STATEMENT), "call next value for Customer_SEQ"),
@ -157,7 +161,9 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(3))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, HSQLDB),
equalTo(
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.HSQLDB),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -196,7 +202,9 @@ class SpringJpaTest {
span.hasName("SELECT test.Customer")
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, HSQLDB),
equalTo(
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.HSQLDB),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -224,7 +232,9 @@ class SpringJpaTest {
span.hasName("UPDATE test.Customer")
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, HSQLDB),
equalTo(
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.HSQLDB),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -267,7 +277,9 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, HSQLDB),
equalTo(
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.HSQLDB),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -308,7 +320,9 @@ class SpringJpaTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, HSQLDB),
equalTo(
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.HSQLDB),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(
@ -349,7 +363,9 @@ class SpringJpaTest {
span.hasName("DELETE test.Customer")
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, HSQLDB),
equalTo(
maybeStable(DB_SYSTEM),
DbIncubatingAttributes.DbSystemIncubatingValues.HSQLDB),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(

View File

@ -121,7 +121,7 @@ class ProcedureCallTest {
.hasKind(CLIENT)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), "test"),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "sa"),
equalTo(maybeStable(DB_STATEMENT), "{call TEST_PROC()}"),

View File

@ -323,7 +323,7 @@ class InfluxDbClientTest {
List<AttributeAssertion> result = new ArrayList<>();
result.addAll(
asList(
equalTo(DB_SYSTEM, "influxdb"),
equalTo(maybeStable(DB_SYSTEM), "influxdb"),
equalTo(maybeStable(DB_NAME), databaseName),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),

View File

@ -152,7 +152,7 @@ class InfluxDbClient24Test {
List<AttributeAssertion> result = new ArrayList<>();
result.addAll(
asList(
equalTo(DB_SYSTEM, "influxdb"),
equalTo(maybeStable(DB_SYSTEM), "influxdb"),
equalTo(maybeStable(DB_NAME), databaseName),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),

View File

@ -104,6 +104,7 @@ class JaxRsAnnotations1InstrumentationTest {
Arguments.of("/child/call", new JavaInterfaces.DefaultChildClassOnInterface()));
}
@SuppressWarnings("deprecation") // using deprecated semconv
@ParameterizedTest
@MethodSource("provideArguments")
void createSpanForAnnotatedMethod(String path, Jax action) {

View File

@ -93,6 +93,7 @@ class JerseyTest extends AbstractHttpServerUsingTest<Server> {
Arguments.of("test3/nested", "/test3/nested", "Test3", "nested", "Test3 nested!"));
}
@SuppressWarnings("deprecation") // using deprecated semconv
@ParameterizedTest
@MethodSource("provideArguments")
void request(

View File

@ -104,6 +104,7 @@ class JaxRs2AnnotationsInstrumentationTest {
Arguments.of("/child/call", new JavaInterfaces.DefaultChildClassOnInterface()));
}
@SuppressWarnings("deprecation") // using deprecated semconv
@ParameterizedTest
@MethodSource("provideArguments")
void createSpanForAnnotatedMethod(String path, Jax action) {

View File

@ -104,6 +104,7 @@ class JaxRs3AnnotationsInstrumentationTest {
Arguments.of("/child/call", new JavaInterfaces.DefaultChildClassOnInterface()));
}
@SuppressWarnings("deprecation") // using deprecated semconv
@ParameterizedTest
@MethodSource("provideArguments")
void createSpanForAnnotatedMethod(String path, Jax action) {

View File

@ -25,6 +25,7 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
@SuppressWarnings("deprecation") // using deprecated semconv
public abstract class AbstractJaxRsFilterTest<SERVER> extends AbstractHttpServerUsingTest<SERVER> {
protected static class TestResponse {

View File

@ -33,6 +33,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.EnumSource;
@SuppressWarnings("deprecation") // using deprecated semconv
public abstract class AbstractJaxRsHttpServerTest<SERVER> extends AbstractHttpServerTest<SERVER> {
protected abstract void awaitBarrier(int amount, TimeUnit timeUnit) throws Exception;

View File

@ -118,6 +118,7 @@ public abstract class AbstractArquillianJaxWsTest {
return span.hasName(service + "/" + methodName).hasKind(SpanKind.INTERNAL);
}
@SuppressWarnings("deprecation") // using deprecated semconv
private static SpanDataAssert assertAnnotationHandlerSpan(
SpanDataAssert span, String service, String methodName) {
return span.hasName(service + "Impl." + methodName)

View File

@ -40,6 +40,7 @@ import org.springframework.util.ClassUtils;
import org.springframework.ws.client.core.WebServiceTemplate;
import org.springframework.ws.soap.client.SoapFaultClientException;
@SuppressWarnings("deprecation") // using deprecated semconv
public class AbstractJaxWs2Test extends AbstractHttpServerUsingTest<Server> {
@RegisterExtension
public static final InstrumentationExtension testing =

View File

@ -18,6 +18,7 @@ class JaxWsAnnotationsTest {
@RegisterExtension
static InstrumentationExtension testing = AgentInstrumentationExtension.create();
@SuppressWarnings("deprecation") // using deprecated semconv
@Test
void webServiceProviderSpan() {
new SoapProvider().invoke(null);

View File

@ -16,6 +16,7 @@ import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
@SuppressWarnings("deprecation") // using deprecated semconv
class JwsAnnotationsTest {
@RegisterExtension
static InstrumentationExtension testing = AgentInstrumentationExtension.create();

View File

@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.jdbc.test;
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
import static io.opentelemetry.instrumentation.testing.junit.db.DbClientMetricsTestUtil.assertDurationMetric;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.semconv.ServerAttributes.SERVER_ADDRESS;
@ -21,6 +22,7 @@ import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_OPER
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SQL_TABLE;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_STATEMENT;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SYSTEM;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SYSTEM_NAME;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_USER;
import static java.util.Arrays.asList;
@ -371,7 +373,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : username),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : url),
@ -383,13 +385,13 @@ class JdbcInstrumentationTest {
assertDurationMetric(
testing,
"io.opentelemetry.jdbc",
DB_SYSTEM,
DB_SYSTEM_NAME,
DB_COLLECTION_NAME,
DB_NAMESPACE,
DB_OPERATION_NAME);
} else {
assertDurationMetric(
testing, "io.opentelemetry.jdbc", DB_SYSTEM, DB_OPERATION_NAME, DB_NAMESPACE);
testing, "io.opentelemetry.jdbc", DB_SYSTEM_NAME, DB_OPERATION_NAME, DB_NAMESPACE);
}
}
@ -503,7 +505,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : username),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : url),
@ -540,7 +542,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : username),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : url),
@ -577,7 +579,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : username),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : url),
@ -713,7 +715,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : username),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : url),
@ -815,7 +817,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : username),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : url),
@ -922,7 +924,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : username),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : url),
@ -992,7 +994,7 @@ class JdbcInstrumentationTest {
CodeIncubatingAttributes.CODE_NAMESPACE,
datasource.getClass().getName()),
equalTo(CodeIncubatingAttributes.CODE_FUNCTION, "getConnection"),
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : user),
equalTo(maybeStable(DB_NAME), "jdbcunittest"),
equalTo(
@ -1009,7 +1011,7 @@ class JdbcInstrumentationTest {
CodeIncubatingAttributes.CODE_NAMESPACE,
datasource.getClass().getName()),
equalTo(CodeIncubatingAttributes.CODE_FUNCTION, "getConnection"),
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : user),
equalTo(maybeStable(DB_NAME), "jdbcunittest"),
equalTo(
@ -1047,7 +1049,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "other_sql"),
equalTo(maybeStable(DB_SYSTEM), "other_sql"),
equalTo(maybeStable(DB_STATEMENT), "testing ?"),
equalTo(
DB_CONNECTION_STRING,
@ -1130,7 +1132,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "other_sql"),
equalTo(maybeStable(DB_SYSTEM), "other_sql"),
equalTo(maybeStable(DB_NAME), databaseName),
equalTo(
DB_CONNECTION_STRING,
@ -1180,7 +1182,7 @@ class JdbcInstrumentationTest {
span.hasName("SELECT INFORMATION_SCHEMA.SYSTEM_USERS")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "hsqldb"),
equalTo(maybeStable(DB_SYSTEM), "hsqldb"),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : "SA"),
equalTo(
@ -1254,7 +1256,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "other_sql"),
equalTo(maybeStable(DB_SYSTEM), "other_sql"),
equalTo(
DB_CONNECTION_STRING,
emitStableDatabaseSemconv() ? null : "testdb://localhost"),
@ -1360,7 +1362,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : username),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : url),
@ -1417,7 +1419,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : username),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : url),
@ -1463,7 +1465,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : username),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : url),
@ -1511,7 +1513,7 @@ class JdbcInstrumentationTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, system),
equalTo(maybeStable(DB_SYSTEM), maybeStableDbSystemName(system)),
equalTo(maybeStable(DB_NAME), dbNameLower),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : username),
equalTo(DB_CONNECTION_STRING, emitStableDatabaseSemconv() ? null : url),

View File

@ -7,7 +7,10 @@ package io.opentelemetry.javaagent.instrumentation.scalaexecutors
import io.opentelemetry.api.trace.{SpanKind, Tracer}
import io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv
import io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable
import io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.{
maybeStable,
maybeStableDbSystemName
}
import io.opentelemetry.instrumentation.testing.junit.{
AgentInstrumentationExtension,
InstrumentationExtension
@ -81,7 +84,10 @@ class SlickTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, DbSystemIncubatingValues.H2),
equalTo(
maybeStable(DB_SYSTEM),
maybeStableDbSystemName(DbSystemIncubatingValues.H2)
),
equalTo(maybeStable(DB_NAME), Db),
equalTo(
DB_USER,

View File

@ -23,6 +23,8 @@ enum DataSourceDbAttributesExtractor implements AttributesExtractor<DataSource,
private static final AttributeKey<String> DB_NAME = AttributeKey.stringKey("db.name");
private static final AttributeKey<String> DB_NAMESPACE = AttributeKey.stringKey("db.namespace");
private static final AttributeKey<String> DB_SYSTEM = AttributeKey.stringKey("db.system");
private static final AttributeKey<String> DB_SYSTEM_NAME =
AttributeKey.stringKey("db.system.name");
private static final AttributeKey<String> DB_USER = AttributeKey.stringKey("db.user");
private static final AttributeKey<String> DB_CONNECTION_STRING =
AttributeKey.stringKey("db.connection_string");
@ -43,13 +45,15 @@ enum DataSourceDbAttributesExtractor implements AttributesExtractor<DataSource,
}
if (SemconvStability.emitStableDatabaseSemconv()) {
internalSet(attributes, DB_NAMESPACE, getName(dbInfo));
internalSet(
attributes, DB_SYSTEM_NAME, SemconvStability.stableDbSystemName(dbInfo.getSystem()));
}
if (SemconvStability.emitOldDatabaseSemconv()) {
internalSet(attributes, DB_USER, dbInfo.getUser());
internalSet(attributes, DB_NAME, getName(dbInfo));
internalSet(attributes, DB_CONNECTION_STRING, dbInfo.getShortUrl());
internalSet(attributes, DB_SYSTEM, dbInfo.getSystem());
}
internalSet(attributes, DB_SYSTEM, dbInfo.getSystem());
}
private static String getName(DbInfo dbInfo) {

View File

@ -17,7 +17,7 @@ import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_OPER
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_OPERATION_NAME;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SQL_TABLE;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_STATEMENT;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SYSTEM;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SYSTEM_NAME;
import static org.assertj.core.api.Assertions.assertThat;
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
@ -61,7 +61,7 @@ class JdbcTelemetryTest {
"io.opentelemetry.jdbc",
DB_NAMESPACE,
DB_OPERATION_NAME,
DB_SYSTEM,
DB_SYSTEM_NAME,
SERVER_ADDRESS,
SERVER_PORT);
}

View File

@ -37,7 +37,7 @@ class OpenTelemetryDataSourceTest {
@RegisterExtension
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
@SuppressWarnings("deprecation") // TODO DB_CONNECTION_STRING deprecation
@SuppressWarnings("deprecation") // using deprecated semconv
@ParameterizedTest
@ArgumentsSource(GetConnectionMethods.class)
void shouldEmitGetConnectionSpans(GetConnectionFunction getConnection) throws SQLException {
@ -59,7 +59,7 @@ class OpenTelemetryDataSourceTest {
CodeIncubatingAttributes.CODE_NAMESPACE,
TestDataSource.class.getName()),
equalTo(CodeIncubatingAttributes.CODE_FUNCTION, "getConnection"),
equalTo(DB_SYSTEM, "postgresql"),
equalTo(maybeStable(DB_SYSTEM), "postgresql"),
equalTo(maybeStable(DB_NAME), "dbname"),
equalTo(
DB_CONNECTION_STRING,

View File

@ -8,6 +8,7 @@ package io.opentelemetry.instrumentation.jdbc.internal;
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
import static io.opentelemetry.instrumentation.jdbc.internal.JdbcInstrumenterFactory.createStatementInstrumenter;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStableDbSystemName;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.semconv.ServerAttributes.SERVER_ADDRESS;
import static io.opentelemetry.semconv.ServerAttributes.SERVER_PORT;
@ -196,7 +197,9 @@ class OpenTelemetryConnectionTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, dbInfo.getSystem()),
equalTo(
maybeStable(DB_SYSTEM),
maybeStableDbSystemName(dbInfo.getSystem())),
equalTo(maybeStable(DB_NAME), dbInfo.getName()),
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : dbInfo.getUser()),
equalTo(

View File

@ -18,7 +18,7 @@ final class JedisDbAttributesGetter implements DbClientAttributesGetter<JedisReq
@Override
public String getDbSystem(JedisRequest request) {
return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS;
return DbIncubatingAttributes.DbSystemNameIncubatingValues.REDIS;
}
@Deprecated

View File

@ -69,7 +69,7 @@ public abstract class AbstractJedisTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET foo ?"),
equalTo(maybeStable(DB_OPERATION), "SET"),
equalTo(SERVER_ADDRESS, host),
@ -90,7 +90,7 @@ public abstract class AbstractJedisTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET foo ?"),
equalTo(maybeStable(DB_OPERATION), "SET"),
equalTo(SERVER_ADDRESS, host),
@ -101,7 +101,7 @@ public abstract class AbstractJedisTest {
span.hasName("GET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET foo"),
equalTo(maybeStable(DB_OPERATION), "GET"),
equalTo(SERVER_ADDRESS, host),
@ -122,7 +122,7 @@ public abstract class AbstractJedisTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET foo ?"),
equalTo(maybeStable(DB_OPERATION), "SET"),
equalTo(SERVER_ADDRESS, host),
@ -133,7 +133,7 @@ public abstract class AbstractJedisTest {
span.hasName("RANDOMKEY")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "RANDOMKEY"),
equalTo(maybeStable(DB_OPERATION), "RANDOMKEY"),
equalTo(SERVER_ADDRESS, host),

View File

@ -11,6 +11,7 @@ import javax.annotation.Nullable;
final class JedisDbAttributesGetter implements DbClientAttributesGetter<JedisRequest> {
@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
public String getDbSystem(JedisRequest request) {
return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS;

View File

@ -18,6 +18,7 @@ import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_OPER
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_OPERATION_NAME;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_STATEMENT;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SYSTEM;
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SYSTEM_NAME;
import static org.assertj.core.api.Assertions.assertThat;
import io.opentelemetry.api.trace.SpanKind;
@ -82,7 +83,7 @@ class Jedis30ClientTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET foo ?"),
equalTo(maybeStable(DB_OPERATION), "SET"),
equalTo(SERVER_ADDRESS, host),
@ -95,7 +96,7 @@ class Jedis30ClientTest {
testing,
"io.opentelemetry.jedis-3.0",
DB_OPERATION_NAME,
DB_SYSTEM,
DB_SYSTEM_NAME,
SERVER_ADDRESS,
SERVER_PORT,
NETWORK_PEER_ADDRESS,
@ -116,7 +117,7 @@ class Jedis30ClientTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET foo ?"),
equalTo(maybeStable(DB_OPERATION), "SET"),
equalTo(SERVER_ADDRESS, host),
@ -130,7 +131,7 @@ class Jedis30ClientTest {
span.hasName("GET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET foo"),
equalTo(maybeStable(DB_OPERATION), "GET"),
equalTo(SERVER_ADDRESS, host),
@ -154,7 +155,7 @@ class Jedis30ClientTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET foo ?"),
equalTo(maybeStable(DB_OPERATION), "SET"),
equalTo(SERVER_ADDRESS, host),
@ -168,7 +169,7 @@ class Jedis30ClientTest {
span.hasName("RANDOMKEY")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "RANDOMKEY"),
equalTo(maybeStable(DB_OPERATION), "RANDOMKEY"),
equalTo(SERVER_ADDRESS, host),

View File

@ -11,6 +11,7 @@ import javax.annotation.Nullable;
final class JedisDbAttributesGetter implements DbClientAttributesGetter<JedisRequest> {
@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
public String getDbSystem(JedisRequest request) {
return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS;

View File

@ -73,7 +73,7 @@ class Jedis40ClientTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET foo ?"),
equalTo(maybeStable(DB_OPERATION), "SET"),
equalTo(NETWORK_TYPE, "ipv4"),
@ -95,7 +95,7 @@ class Jedis40ClientTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET foo ?"),
equalTo(maybeStable(DB_OPERATION), "SET"),
equalTo(NETWORK_TYPE, "ipv4"),
@ -107,7 +107,7 @@ class Jedis40ClientTest {
span.hasName("GET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET foo"),
equalTo(maybeStable(DB_OPERATION), "GET"),
equalTo(NETWORK_TYPE, "ipv4"),
@ -129,7 +129,7 @@ class Jedis40ClientTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET foo ?"),
equalTo(maybeStable(DB_OPERATION), "SET"),
equalTo(NETWORK_TYPE, "ipv4"),
@ -141,7 +141,7 @@ class Jedis40ClientTest {
span.hasName("RANDOMKEY")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "RANDOMKEY"),
equalTo(maybeStable(DB_OPERATION), "RANDOMKEY"),
equalTo(NETWORK_TYPE, "ipv4"),

View File

@ -84,6 +84,7 @@ class JettyHandlerTest extends AbstractHttpServerTest<Server> {
options.setHasResponseCustomizer(endpoint -> true);
}
@SuppressWarnings("deprecation") // using deprecated semconv
@Override
protected SpanDataAssert assertResponseSpan(
SpanDataAssert span, String method, ServerEndpoint endpoint) {

View File

@ -64,6 +64,7 @@ class Jetty12HandlerTest extends AbstractHttpServerTest<Server> {
options.setHasResponseCustomizer(endpoint -> endpoint != EXCEPTION);
}
@SuppressWarnings("deprecation") // using deprecated semconv
@Override
protected SpanDataAssert assertResponseSpan(
SpanDataAssert span, String method, ServerEndpoint endpoint) {

View File

@ -84,6 +84,7 @@ class JettyHandlerTest extends AbstractHttpServerTest<Server> {
options.setHasResponseCustomizer(endpoint -> endpoint != EXCEPTION);
}
@SuppressWarnings("deprecation") // using deprecated semconv
@Override
protected SpanDataAssert assertResponseSpan(
SpanDataAssert span, String method, ServerEndpoint endpoint) {

View File

@ -18,8 +18,15 @@ final class LettuceConnectAttributesExtractor implements AttributesExtractor<Red
@SuppressWarnings("deprecation") // using deprecated semconv
@Override
public void onStart(AttributesBuilder attributes, Context parentContext, RedisURI redisUri) {
attributes.put(
DbIncubatingAttributes.DB_SYSTEM, DbIncubatingAttributes.DbSystemIncubatingValues.REDIS);
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(
DbIncubatingAttributes.DB_SYSTEM_NAME,
DbIncubatingAttributes.DbSystemNameIncubatingValues.REDIS);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(
DbIncubatingAttributes.DB_SYSTEM, DbIncubatingAttributes.DbSystemIncubatingValues.REDIS);
}
int database = redisUri.getDatabase();
if (database != 0) {

View File

@ -12,6 +12,7 @@ import javax.annotation.Nullable;
final class LettuceDbAttributesGetter implements DbClientAttributesGetter<RedisCommand<?, ?, ?>> {
@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
public String getDbSystem(RedisCommand<?, ?, ?> request) {
return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS;

View File

@ -148,7 +148,7 @@ class LettuceAsyncClientTest {
.hasAttributesSatisfyingExactly(
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"))));
equalTo(maybeStable(DB_SYSTEM), "redis"))));
}
@Test
@ -176,7 +176,7 @@ class LettuceAsyncClientTest {
.hasAttributesSatisfyingExactly(
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, incorrectPort),
equalTo(DB_SYSTEM, "redis"))));
equalTo(maybeStable(DB_SYSTEM), "redis"))));
}
@Test
@ -194,7 +194,7 @@ class LettuceAsyncClientTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "SET"))));
}
@ -224,7 +224,8 @@ class LettuceAsyncClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"), equalTo(maybeStable(DB_OPERATION), "GET")),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "GET")),
span ->
span.hasName("callback")
.hasKind(SpanKind.INTERNAL)
@ -285,7 +286,8 @@ class LettuceAsyncClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"), equalTo(maybeStable(DB_OPERATION), "GET")),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "GET")),
span ->
span.hasName("callback1")
.hasKind(SpanKind.INTERNAL)
@ -325,7 +327,7 @@ class LettuceAsyncClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "RANDOMKEY")),
span ->
span.hasName("callback")
@ -369,7 +371,7 @@ class LettuceAsyncClientTest {
span.hasName("HMSET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "HMSET"))),
trace ->
trace.hasSpansSatisfyingExactly(
@ -377,7 +379,7 @@ class LettuceAsyncClientTest {
span.hasName("HGETALL")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "HGETALL"))));
}
@ -419,7 +421,7 @@ class LettuceAsyncClientTest {
.hasStatus(StatusData.error())
.hasException(new IllegalStateException("TestException"))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "DEL"))));
}
@ -456,7 +458,7 @@ class LettuceAsyncClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "SADD"),
equalTo(booleanKey("lettuce.command.cancelled"), true)),
span ->
@ -493,7 +495,7 @@ class LettuceAsyncClientTest {
span.hasName("DEBUG")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "DEBUG"))));
}
@ -527,7 +529,7 @@ class LettuceAsyncClientTest {
span.hasName("SHUTDOWN")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "SHUTDOWN"))));
}
}

View File

@ -126,7 +126,7 @@ class LettuceSyncClientTest {
.hasAttributesSatisfyingExactly(
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"))));
equalTo(maybeStable(DB_SYSTEM), "redis"))));
}
@Test
@ -149,7 +149,7 @@ class LettuceSyncClientTest {
.hasAttributesSatisfyingExactly(
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, incorrectPort),
equalTo(DB_SYSTEM, "redis"))));
equalTo(maybeStable(DB_SYSTEM), "redis"))));
}
@Test
@ -164,7 +164,7 @@ class LettuceSyncClientTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "SET"))));
}
@ -180,7 +180,7 @@ class LettuceSyncClientTest {
span.hasName("GET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "GET"))));
}
@ -196,7 +196,7 @@ class LettuceSyncClientTest {
span.hasName("GET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "GET"))));
}
@ -212,7 +212,7 @@ class LettuceSyncClientTest {
span.hasName("RANDOMKEY")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "RANDOMKEY"))));
}
@ -228,7 +228,7 @@ class LettuceSyncClientTest {
span.hasName("LPUSH")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "LPUSH"))));
}
@ -244,7 +244,7 @@ class LettuceSyncClientTest {
span.hasName("HMSET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "HMSET"))));
}
@ -260,7 +260,7 @@ class LettuceSyncClientTest {
span.hasName("HGETALL")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "HGETALL"))));
}
@ -292,7 +292,7 @@ class LettuceSyncClientTest {
span.hasName("DEBUG")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "DEBUG"))));
}
@ -326,7 +326,7 @@ class LettuceSyncClientTest {
span.hasName("SHUTDOWN")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_OPERATION), "SHUTDOWN"))));
}
}

View File

@ -18,8 +18,15 @@ final class LettuceConnectAttributesExtractor implements AttributesExtractor<Red
@SuppressWarnings("deprecation") // using deprecated semconv
@Override
public void onStart(AttributesBuilder attributes, Context parentContext, RedisURI redisUri) {
attributes.put(
DbIncubatingAttributes.DB_SYSTEM, DbIncubatingAttributes.DbSystemIncubatingValues.REDIS);
if (SemconvStability.emitStableDatabaseSemconv()) {
attributes.put(
DbIncubatingAttributes.DB_SYSTEM_NAME,
DbIncubatingAttributes.DbSystemNameIncubatingValues.REDIS);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributes.put(
DbIncubatingAttributes.DB_SYSTEM, DbIncubatingAttributes.DbSystemIncubatingValues.REDIS);
}
int database = redisUri.getDatabase();
if (database != 0) {

View File

@ -20,6 +20,7 @@ final class LettuceDbAttributesGetter implements DbClientAttributesGetter<RedisC
private static final RedisCommandSanitizer sanitizer =
RedisCommandSanitizer.create(AgentCommonConfig.get().isStatementSanitizationEnabled());
@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
public String getDbSystem(RedisCommand<?, ?, ?> request) {
return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS;

View File

@ -121,7 +121,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
.hasAttributesSatisfyingExactly(
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"))));
equalTo(maybeStable(DB_SYSTEM), "redis"))));
}
@SuppressWarnings("deprecation") // RedisURI constructor
@ -152,7 +152,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
.hasAttributesSatisfyingExactly(
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, incorrectPort),
equalTo(DB_SYSTEM, "redis"))
equalTo(maybeStable(DB_SYSTEM), "redis"))
.hasEventsSatisfyingExactly(
event ->
event
@ -189,7 +189,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET TESTSETKEY ?"),
equalTo(maybeStable(DB_OPERATION), "SET"))));
}
@ -221,7 +221,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET TESTKEY"),
equalTo(maybeStable(DB_OPERATION), "GET")),
span ->
@ -278,7 +278,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET NON_EXISTENT_KEY"),
equalTo(maybeStable(DB_OPERATION), "GET")),
span ->
@ -321,7 +321,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "RANDOMKEY"),
equalTo(maybeStable(DB_OPERATION), "RANDOMKEY")),
span ->
@ -367,7 +367,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
span.hasName("HMSET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(
maybeStable(DB_STATEMENT),
"HMSET TESTHM firstname ? lastname ? age ?"),
@ -378,7 +378,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
span.hasName("HGETALL")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "HGETALL TESTHM"),
equalTo(maybeStable(DB_OPERATION), "HGETALL"))));
}
@ -421,7 +421,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
.hasStatus(StatusData.error())
.hasException(new IllegalStateException("TestException"))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "DEL key1 key2"),
equalTo(maybeStable(DB_OPERATION), "DEL"))));
}
@ -459,7 +459,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SADD SKEY ? ?"),
equalTo(maybeStable(DB_OPERATION), "SADD"),
equalTo(booleanKey("lettuce.command.cancelled"), true)),
@ -484,7 +484,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
span.hasName("DEBUG")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "DEBUG SEGFAULT"),
equalTo(maybeStable(DB_OPERATION), "DEBUG"))));
}
@ -504,7 +504,7 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
span.hasName("SHUTDOWN")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SHUTDOWN NOSAVE"),
equalTo(maybeStable(DB_OPERATION), "SHUTDOWN"))));
}

View File

@ -95,7 +95,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET TESTSETKEY ?"),
equalTo(maybeStable(DB_OPERATION), "SET")),
span ->
@ -126,7 +126,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
span.hasName("GET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET TESTKEY"),
equalTo(maybeStable(DB_OPERATION), "GET"))));
}
@ -165,7 +165,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
span.hasName("GET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET NON_EXISTENT_KEY"),
equalTo(maybeStable(DB_OPERATION), "GET")),
span ->
@ -195,7 +195,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
span.hasName("RANDOMKEY")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "RANDOMKEY"),
equalTo(maybeStable(DB_OPERATION), "RANDOMKEY"))));
}
@ -211,7 +211,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
span.hasName("COMMAND")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "COMMAND"),
equalTo(maybeStable(DB_OPERATION), "COMMAND"),
satisfies(
@ -230,7 +230,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
span.hasName("COMMAND")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "COMMAND"),
equalTo(maybeStable(DB_OPERATION), "COMMAND"),
satisfies(
@ -264,7 +264,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
span.hasName("DEBUG")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "DEBUG SEGFAULT"),
equalTo(maybeStable(DB_OPERATION), "DEBUG"))));
}
@ -284,7 +284,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
span.hasName("SHUTDOWN")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SHUTDOWN NOSAVE"),
equalTo(maybeStable(DB_OPERATION), "SHUTDOWN"))));
}
@ -304,7 +304,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET a ?"),
equalTo(maybeStable(DB_OPERATION), "SET")),
span ->
@ -312,7 +312,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET a"),
equalTo(maybeStable(DB_OPERATION), "GET"))));
}
@ -332,7 +332,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET a ?"),
equalTo(maybeStable(DB_OPERATION), "SET")),
span ->
@ -340,7 +340,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET a"),
equalTo(maybeStable(DB_OPERATION), "GET"))));
}
@ -365,7 +365,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET a ?"),
equalTo(maybeStable(DB_OPERATION), "SET")),
span ->
@ -373,7 +373,7 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
.hasKind(SpanKind.CLIENT)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET a"),
equalTo(maybeStable(DB_OPERATION), "GET"))));
}

View File

@ -96,7 +96,7 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
.hasAttributesSatisfyingExactly(
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"))));
equalTo(maybeStable(DB_SYSTEM), "redis"))));
}
@Test
@ -118,7 +118,7 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
.hasAttributesSatisfyingExactly(
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, incorrectPort),
equalTo(DB_SYSTEM, "redis"))
equalTo(maybeStable(DB_SYSTEM), "redis"))
.hasEventsSatisfyingExactly(
event ->
event
@ -152,7 +152,7 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET TESTSETKEY ?"),
equalTo(maybeStable(DB_OPERATION), "SET"))));
}
@ -169,7 +169,7 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
span.hasName("GET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET TESTKEY"),
equalTo(maybeStable(DB_OPERATION), "GET"))));
}
@ -186,7 +186,7 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
span.hasName("GET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET NON_EXISTENT_KEY"),
equalTo(maybeStable(DB_OPERATION), "GET"))));
}
@ -203,7 +203,7 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
span.hasName("RANDOMKEY")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "RANDOMKEY"),
equalTo(maybeStable(DB_OPERATION), "RANDOMKEY"))));
}
@ -220,7 +220,7 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
span.hasName("LPUSH")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "LPUSH TESTLIST ?"),
equalTo(maybeStable(DB_OPERATION), "LPUSH"))));
}
@ -237,7 +237,7 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
span.hasName("HMSET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(
maybeStable(DB_STATEMENT),
"HMSET user firstname ? lastname ? age ?"),
@ -256,7 +256,7 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
span.hasName("HGETALL")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "HGETALL TESTHM"),
equalTo(maybeStable(DB_OPERATION), "HGETALL"))));
}
@ -276,7 +276,7 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
span.hasName("DEBUG")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "DEBUG SEGFAULT"),
equalTo(maybeStable(DB_OPERATION), "DEBUG"))));
}
@ -296,7 +296,7 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
span.hasName("SHUTDOWN")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SHUTDOWN NOSAVE"),
equalTo(maybeStable(DB_OPERATION), "SHUTDOWN"))));
}

View File

@ -64,7 +64,7 @@ class LettuceReactiveClientTest extends AbstractLettuceReactiveClientTest {
equalTo(NETWORK_PEER_PORT, port),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET a ?")))
.hasEventsSatisfyingExactly(
event -> event.hasName("redis.encode.start"),
@ -80,7 +80,7 @@ class LettuceReactiveClientTest extends AbstractLettuceReactiveClientTest {
equalTo(NETWORK_PEER_PORT, port),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET a")))
.hasEventsSatisfyingExactly(
event -> event.hasName("redis.encode.start"),

View File

@ -42,6 +42,8 @@ final class OpenTelemetryTracing implements Tracing {
// copied from DbIncubatingAttributes
private static final AttributeKey<String> DB_SYSTEM = AttributeKey.stringKey("db.system");
private static final AttributeKey<String> DB_SYSTEM_NAME =
AttributeKey.stringKey("db.system.name");
private static final AttributeKey<String> DB_STATEMENT = AttributeKey.stringKey("db.statement");
private static final AttributeKey<String> DB_QUERY_TEXT = AttributeKey.stringKey("db.query.text");
private static final AttributeKey<Long> DB_REDIS_DATABASE_INDEX =
@ -171,11 +173,13 @@ final class OpenTelemetryTracing implements Tracing {
// Name will be updated later, we create with an arbitrary one here to store other data before
// the span starts.
SpanBuilder spanBuilder =
tracer
.spanBuilder("redis")
.setSpanKind(SpanKind.CLIENT)
.setParent(context)
.setAttribute(DB_SYSTEM, REDIS);
tracer.spanBuilder("redis").setSpanKind(SpanKind.CLIENT).setParent(context);
if (SemconvStability.emitStableDatabaseSemconv()) {
spanBuilder.setAttribute(DB_SYSTEM_NAME, REDIS);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
spanBuilder.setAttribute(DB_SYSTEM, REDIS);
}
return new OpenTelemetrySpan(context, spanBuilder, sanitizer, metrics);
}
}
@ -196,7 +200,7 @@ final class OpenTelemetryTracing implements Tracing {
@Nullable private Throwable error;
@Nullable private Span span;
private long spanStartNanos;
private final AttributesBuilder attributesBuilder = Attributes.builder().put(DB_SYSTEM, REDIS);
private final AttributesBuilder attributesBuilder;
@Nullable private List<String> argsList;
@Nullable private String argsString;
@ -209,6 +213,13 @@ final class OpenTelemetryTracing implements Tracing {
this.spanBuilder = spanBuilder;
this.sanitizer = sanitizer;
this.metrics = metrics;
this.attributesBuilder = Attributes.builder();
if (SemconvStability.emitStableDatabaseSemconv()) {
attributesBuilder.put(DB_SYSTEM_NAME, REDIS);
}
if (SemconvStability.emitOldDatabaseSemconv()) {
attributesBuilder.put(DB_SYSTEM, REDIS);
}
}
@Override

View File

@ -166,7 +166,7 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
equalTo(NETWORK_PEER_PORT, port),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "SET TESTSETKEY ?")))
.hasEventsSatisfyingExactly(
event -> event.hasName("redis.encode.start"),
@ -212,7 +212,7 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
equalTo(NETWORK_PEER_PORT, port),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "GET TESTKEY")))
.hasEventsSatisfyingExactly(
event -> event.hasName("redis.encode.start"),
@ -291,7 +291,7 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
equalTo(NETWORK_PEER_PORT, port),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(
maybeStable(DB_STATEMENT), "GET NON_EXISTENT_KEY")))
.hasEventsSatisfyingExactly(
@ -358,7 +358,7 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
equalTo(NETWORK_PEER_PORT, port),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "RANDOMKEY")))
.hasEventsSatisfyingExactly(
event -> event.hasName("redis.encode.start"),
@ -418,7 +418,7 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
equalTo(NETWORK_PEER_PORT, port),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(
maybeStable(DB_STATEMENT),
"HMSET TESTHM firstname ? lastname ? age ?")))
@ -437,7 +437,7 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
equalTo(NETWORK_PEER_PORT, port),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port),
equalTo(DB_SYSTEM, "redis"),
equalTo(maybeStable(DB_SYSTEM), "redis"),
equalTo(maybeStable(DB_STATEMENT), "HGETALL TESTHM")))
.hasEventsSatisfyingExactly(
event -> event.hasName("redis.encode.start"),

Some files were not shown because too many files have changed in this diff Show More