Skip to content

Commit 2cb64a7

Browse files
committed
Remove DbClientCommonAttributesExtractor
1 parent 83d1cad commit 2cb64a7

File tree

44 files changed

+209
-522
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+209
-522
lines changed

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractor.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
2222
import io.opentelemetry.instrumentation.api.internal.SpanKey;
2323
import io.opentelemetry.instrumentation.api.internal.SpanKeyProvider;
24+
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor;
25+
import io.opentelemetry.instrumentation.api.semconv.network.internal.InternalNetworkAttributesExtractor;
2426
import javax.annotation.Nullable;
2527

2628
/**
@@ -44,6 +46,8 @@ public final class DbClientAttributesExtractor<REQUEST, RESPONSE>
4446
private static final AttributeKey<String> DB_OPERATION = AttributeKey.stringKey("db.operation");
4547

4648
private final DbClientAttributesGetter<REQUEST, RESPONSE> getter;
49+
private final InternalNetworkAttributesExtractor<REQUEST, RESPONSE> internalNetworkExtractor;
50+
private final ServerAttributesExtractor<REQUEST, RESPONSE> serverAttributesExtractor;
4751

4852
/** Creates the database client attributes extractor with default configuration. */
4953
public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create(
@@ -53,12 +57,15 @@ public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create(
5357

5458
DbClientAttributesExtractor(DbClientAttributesGetter<REQUEST, RESPONSE> getter) {
5559
this.getter = getter;
60+
internalNetworkExtractor = new InternalNetworkAttributesExtractor<>(getter, true, false);
61+
serverAttributesExtractor = ServerAttributesExtractor.create(getter);
5662
}
5763

5864
@SuppressWarnings("deprecation") // until old db semconv are dropped
5965
@Override
6066
public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
6167
onStartCommon(attributes, getter, request);
68+
serverAttributesExtractor.onStart(attributes, parentContext, request);
6269
}
6370

6471
@SuppressWarnings("deprecation") // until old db semconv are dropped
@@ -67,10 +74,10 @@ static <REQUEST, RESPONSE> void onStartCommon(
6774
DbClientAttributesGetter<REQUEST, RESPONSE> getter,
6875
REQUEST request) {
6976
if (SemconvStability.emitStableDatabaseSemconv()) {
70-
internalSet(
71-
attributes,
72-
DB_SYSTEM_NAME,
73-
SemconvStability.stableDbSystemName(getter.getDbSystem(request)));
77+
String dbSystem = getter.getDbSystem(request);
78+
if (dbSystem != null) {
79+
internalSet(attributes, DB_SYSTEM_NAME, SemconvStability.stableDbSystemName(dbSystem));
80+
}
7481
internalSet(attributes, DB_NAMESPACE, getter.getDbNamespace(request));
7582
internalSet(attributes, DB_QUERY_TEXT, getter.getDbQueryText(request));
7683
internalSet(attributes, DB_OPERATION_NAME, getter.getDbOperationName(request));
@@ -93,6 +100,7 @@ public void onEnd(
93100
REQUEST request,
94101
@Nullable RESPONSE response,
95102
@Nullable Throwable error) {
103+
internalNetworkExtractor.onEnd(attributes, request, response);
96104
onEndCommon(attributes, getter, response, error);
97105
}
98106

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesGetter.java

Lines changed: 52 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
package io.opentelemetry.instrumentation.api.incubator.semconv.db;
77

8+
import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesGetter;
9+
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesGetter;
810
import javax.annotation.Nullable;
911

1012
/**
@@ -20,29 +22,62 @@
2022
*/
2123
@SuppressWarnings("deprecation") // extending deprecated interface for backward compatibility
2224
public interface DbClientAttributesGetter<REQUEST, RESPONSE>
23-
extends DbClientCommonAttributesGetter<REQUEST, RESPONSE> {
25+
extends NetworkAttributesGetter<REQUEST, RESPONSE>, ServerAttributesGetter<REQUEST> {
26+
27+
@Deprecated
28+
@Nullable
29+
default String getSystem(REQUEST request) {
30+
return null;
31+
}
32+
33+
// TODO: make this required to implement
34+
@Nullable
35+
default String getDbSystem(REQUEST request) {
36+
return getSystem(request);
37+
}
38+
39+
@Deprecated
40+
@Nullable
41+
default String getUser(REQUEST request) {
42+
return null;
43+
}
2444

2545
/**
26-
* @deprecated Use {@link #getDbQueryText(REQUEST)} instead.
46+
* @deprecated Use {@link #getDbNamespace(Object)} instead.
2747
*/
2848
@Deprecated
2949
@Nullable
30-
default String getStatement(REQUEST request) {
50+
default String getName(REQUEST request) {
3151
return null;
3252
}
3353

3454
// TODO: make this required to implement
3555
@Nullable
36-
default String getDbQueryText(REQUEST request) {
37-
return getStatement(request);
56+
default String getDbNamespace(REQUEST request) {
57+
return getName(request);
3858
}
3959

40-
// TODO: make this required to implement
60+
@Deprecated
4161
@Nullable
42-
default String getDbQuerySummary(REQUEST request) {
62+
default String getConnectionString(REQUEST request) {
4363
return null;
4464
}
4565

66+
/**
67+
* @deprecated Use {@link #getDbQueryText(REQUEST)} instead.
68+
*/
69+
@Deprecated
70+
@Nullable
71+
default String getStatement(REQUEST request) {
72+
return null;
73+
}
74+
75+
// TODO: make this required to implement
76+
@Nullable
77+
default String getDbQueryText(REQUEST request) {
78+
return getStatement(request);
79+
}
80+
4681
/**
4782
* @deprecated Use {@link #getDbOperationName(REQUEST)} instead.
4883
*/
@@ -57,4 +92,14 @@ default String getOperation(REQUEST request) {
5792
default String getDbOperationName(REQUEST request) {
5893
return getOperation(request);
5994
}
95+
96+
@Nullable
97+
default String getDbQuerySummary(REQUEST request) {
98+
return null;
99+
}
100+
101+
@Nullable
102+
default String getResponseStatus(@Nullable RESPONSE response, @Nullable Throwable error) {
103+
return null;
104+
}
60105
}

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractor.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@
77

88
import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet;
99
import static io.opentelemetry.semconv.DbAttributes.DB_COLLECTION_NAME;
10+
import static io.opentelemetry.semconv.DbAttributes.DB_NAMESPACE;
1011
import static io.opentelemetry.semconv.DbAttributes.DB_OPERATION_BATCH_SIZE;
1112
import static io.opentelemetry.semconv.DbAttributes.DB_OPERATION_NAME;
1213
import static io.opentelemetry.semconv.DbAttributes.DB_QUERY_TEXT;
14+
import static io.opentelemetry.semconv.DbAttributes.DB_RESPONSE_STATUS_CODE;
15+
import static io.opentelemetry.semconv.DbAttributes.DB_SYSTEM_NAME;
16+
import static io.opentelemetry.semconv.ErrorAttributes.ERROR_TYPE;
1317

1418
import io.opentelemetry.api.common.AttributeKey;
1519
import io.opentelemetry.api.common.AttributesBuilder;
@@ -18,6 +22,8 @@
1822
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
1923
import io.opentelemetry.instrumentation.api.internal.SpanKey;
2024
import io.opentelemetry.instrumentation.api.internal.SpanKeyProvider;
25+
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor;
26+
import io.opentelemetry.instrumentation.api.semconv.network.internal.InternalNetworkAttributesExtractor;
2127
import io.opentelemetry.semconv.AttributeKeyTemplate;
2228
import java.util.Collection;
2329
import java.util.Map;
@@ -37,6 +43,11 @@ public final class SqlClientAttributesExtractor<REQUEST, RESPONSE>
3743
implements AttributesExtractor<REQUEST, RESPONSE>, SpanKeyProvider {
3844

3945
// copied from DbIncubatingAttributes
46+
private static final AttributeKey<String> DB_NAME = AttributeKey.stringKey("db.name");
47+
private static final AttributeKey<String> DB_SYSTEM = AttributeKey.stringKey("db.system");
48+
private static final AttributeKey<String> DB_USER = AttributeKey.stringKey("db.user");
49+
private static final AttributeKey<String> DB_CONNECTION_STRING =
50+
AttributeKey.stringKey("db.connection_string");
4051
private static final AttributeKey<String> DB_OPERATION = AttributeKey.stringKey("db.operation");
4152
private static final AttributeKey<String> DB_STATEMENT = AttributeKey.stringKey("db.statement");
4253
private static final AttributeKeyTemplate<String> DB_QUERY_PARAMETER =
@@ -60,6 +71,8 @@ public static <REQUEST, RESPONSE> SqlClientAttributesExtractorBuilder<REQUEST, R
6071
private static final String SQL_CALL = "CALL";
6172

6273
private final SqlClientAttributesGetter<REQUEST, RESPONSE> getter;
74+
private final InternalNetworkAttributesExtractor<REQUEST, RESPONSE> internalNetworkExtractor;
75+
private final ServerAttributesExtractor<REQUEST, RESPONSE> serverAttributesExtractor;
6376
private final AttributeKey<String> oldSemconvTableAttribute;
6477
private final boolean statementSanitizationEnabled;
6578
private final boolean captureQueryParameters;
@@ -74,6 +87,8 @@ public static <REQUEST, RESPONSE> SqlClientAttributesExtractorBuilder<REQUEST, R
7487
// capturing query parameters disables statement sanitization
7588
this.statementSanitizationEnabled = !captureQueryParameters && statementSanitizationEnabled;
7689
this.captureQueryParameters = captureQueryParameters;
90+
internalNetworkExtractor = new InternalNetworkAttributesExtractor<>(getter, true, false);
91+
serverAttributesExtractor = ServerAttributesExtractor.create(getter);
7792
}
7893

7994
@SuppressWarnings("deprecation") // until old db semconv are dropped
@@ -139,6 +154,7 @@ public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST
139154
// getDbQueryText(), and getDbQuerySummary() implementations can override
140155
// the parsed values from above
141156
DbClientAttributesExtractor.onStartCommon(attributes, getter, request);
157+
serverAttributesExtractor.onStart(attributes, parentContext, request);
142158
}
143159

144160
private void setQueryParameters(
@@ -171,6 +187,7 @@ public void onEnd(
171187
REQUEST request,
172188
@Nullable RESPONSE response,
173189
@Nullable Throwable error) {
190+
internalNetworkExtractor.onEnd(attributes, request, response);
174191
DbClientAttributesExtractor.onEndCommon(attributes, getter, response, error);
175192
}
176193

instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraNetworkAttributesGetter.java

Lines changed: 0 additions & 22 deletions
This file was deleted.

instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSingletons.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesExtractor;
1313
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1414
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
15-
import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesExtractor;
1615
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
1716
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
1817

@@ -38,8 +37,6 @@ public final class CassandraSingletons {
3837
.setStatementSanitizationEnabled(
3938
AgentCommonConfig.get().isStatementSanitizationEnabled())
4039
.build())
41-
.addAttributesExtractor(
42-
NetworkAttributesExtractor.create(new CassandraNetworkAttributesGetter()))
4340
.addAttributesExtractor(new CassandraAttributesExtractor())
4441
.addOperationMetrics(DbClientMetrics.get())
4542
.buildInstrumenter(SpanKindExtractor.alwaysClient());

instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.datastax.driver.core.ExecutionInfo;
1111
import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter;
1212
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
13+
import java.net.InetSocketAddress;
1314
import java.util.Collection;
1415
import javax.annotation.Nullable;
1516

@@ -22,28 +23,21 @@ public String getDbSystem(CassandraRequest request) {
2223
return DbIncubatingAttributes.DbSystemIncubatingValues.CASSANDRA;
2324
}
2425

25-
@Deprecated
26-
@Override
27-
@Nullable
28-
public String getUser(CassandraRequest request) {
29-
return null;
30-
}
31-
3226
@Override
3327
@Nullable
3428
public String getDbNamespace(CassandraRequest request) {
3529
return request.getSession().getLoggedKeyspace();
3630
}
3731

38-
@Deprecated
3932
@Override
40-
@Nullable
41-
public String getConnectionString(CassandraRequest request) {
42-
return null;
33+
public Collection<String> getRawQueryTexts(CassandraRequest request) {
34+
return singleton(request.getQueryText());
4335
}
4436

37+
@Nullable
4538
@Override
46-
public Collection<String> getRawQueryTexts(CassandraRequest request) {
47-
return singleton(request.getQueryText());
39+
public InetSocketAddress getNetworkPeerInetSocketAddress(
40+
CassandraRequest request, @Nullable ExecutionInfo executionInfo) {
41+
return executionInfo == null ? null : executionInfo.getQueriedHost().getSocketAddress();
4842
}
4943
}

instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraNetworkAttributesGetter.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSingletons.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesExtractor;
1313
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1414
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
15-
import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesExtractor;
1615
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
1716
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
1817

@@ -37,8 +36,6 @@ public final class CassandraSingletons {
3736
.setStatementSanitizationEnabled(
3837
AgentCommonConfig.get().isStatementSanitizationEnabled())
3938
.build())
40-
.addAttributesExtractor(
41-
NetworkAttributesExtractor.create(new CassandraNetworkAttributesGetter()))
4239
.addAttributesExtractor(new CassandraAttributesExtractor())
4340
.addOperationMetrics(DbClientMetrics.get())
4441
.buildInstrumenter(SpanKindExtractor.alwaysClient());

0 commit comments

Comments
 (0)