Skip to content

Commit 2d7cb9f

Browse files
committed
implement
1 parent 39e461d commit 2d7cb9f

File tree

15 files changed

+56
-115
lines changed

15 files changed

+56
-115
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
1515
import io.opentelemetry.instrumentation.api.internal.SpanKey;
1616
import io.opentelemetry.instrumentation.api.internal.SpanKeyProvider;
17+
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor;
1718
import io.opentelemetry.instrumentation.api.semconv.network.internal.InternalNetworkAttributesExtractor;
1819
import javax.annotation.Nullable;
1920

@@ -44,6 +45,7 @@ public final class DbClientAttributesExtractor<REQUEST, RESPONSE>
4445

4546
private final DbClientAttributesGetter<REQUEST, RESPONSE> getter;
4647
private final InternalNetworkAttributesExtractor<REQUEST, RESPONSE> internalNetworkExtractor;
48+
private final ServerAttributesExtractor<REQUEST, RESPONSE> serverAttributesExtractor;
4749

4850
/** Creates the database client attributes extractor with default configuration. */
4951
public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create(
@@ -56,6 +58,7 @@ public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create(
5658
internalNetworkExtractor =
5759
new InternalNetworkAttributesExtractor<>(
5860
getter, SemconvStability.emitOldDatabaseSemconv(), false);
61+
serverAttributesExtractor = ServerAttributesExtractor.create(getter);
5962
}
6063

6164
@Override
@@ -74,6 +77,7 @@ public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST
7477
internalSet(attributes, DB_STATEMENT, getter.getDbQueryText(request));
7578
internalSet(attributes, DB_OPERATION, getter.getDbOperationName(request));
7679
}
80+
serverAttributesExtractor.onStart(attributes, parentContext, request);
7781
}
7882

7983
@Override

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package io.opentelemetry.instrumentation.api.incubator.semconv.db;
77

88
import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesGetter;
9+
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesGetter;
910
import javax.annotation.Nullable;
1011

1112
/**
@@ -20,7 +21,7 @@
2021
* OpenTelemetry specification.
2122
*/
2223
public interface DbClientAttributesGetter<REQUEST, RESPONSE>
23-
extends NetworkAttributesGetter<REQUEST, RESPONSE> {
24+
extends NetworkAttributesGetter<REQUEST, RESPONSE>, ServerAttributesGetter<REQUEST> {
2425

2526
@Deprecated
2627
@Nullable

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public abstract class DbClientSpanNameExtractor<REQUEST> implements SpanNameExtr
1818
* @see DbClientAttributesGetter#getDbNamespace(Object) used to extract {@code <db.namespace>}.
1919
*/
2020
public static <REQUEST> SpanNameExtractor<REQUEST> create(
21-
DbClientAttributesGetter<REQUEST, Void> getter) {
21+
DbClientAttributesGetter<REQUEST, ?> getter) {
2222
return new GenericDbClientSpanNameExtractor<>(getter);
2323
}
2424

@@ -65,9 +65,9 @@ protected String computeSpanName(String dbName, String operation, String mainIde
6565
private static final class GenericDbClientSpanNameExtractor<REQUEST>
6666
extends DbClientSpanNameExtractor<REQUEST> {
6767

68-
private final DbClientAttributesGetter<REQUEST, Void> getter;
68+
private final DbClientAttributesGetter<REQUEST, ?> getter;
6969

70-
private GenericDbClientSpanNameExtractor(DbClientAttributesGetter<REQUEST, Void> getter) {
70+
private GenericDbClientSpanNameExtractor(DbClientAttributesGetter<REQUEST, ?> getter) {
7171
this.getter = getter;
7272
}
7373

instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseAttributesGetter.java

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

88
import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter;
99
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
10+
import java.net.InetSocketAddress;
11+
import java.net.SocketAddress;
1012
import javax.annotation.Nullable;
1113

1214
final class CouchbaseAttributesGetter
@@ -48,4 +50,15 @@ public String getDbQueryText(CouchbaseRequestInfo couchbaseRequest) {
4850
public String getDbOperationName(CouchbaseRequestInfo couchbaseRequest) {
4951
return couchbaseRequest.operation();
5052
}
53+
54+
@Nullable
55+
@Override
56+
public InetSocketAddress getNetworkPeerInetSocketAddress(
57+
CouchbaseRequestInfo couchbaseRequest, @Nullable Void unused) {
58+
SocketAddress peerAddress = couchbaseRequest.getPeerAddress();
59+
if (peerAddress instanceof InetSocketAddress) {
60+
return (InetSocketAddress) peerAddress;
61+
}
62+
return null;
63+
}
5164
}

instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseNetworkAttributesGetter.java

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

instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseSingletons.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.instrumenter.InstrumenterBuilder;
1313
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
1414
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
15-
import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesExtractor;
1615
import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig;
1716

1817
public final class CouchbaseSingletons {
@@ -25,13 +24,11 @@ public final class CouchbaseSingletons {
2524
CouchbaseAttributesGetter couchbaseAttributesGetter = new CouchbaseAttributesGetter();
2625
SpanNameExtractor<CouchbaseRequestInfo> spanNameExtractor =
2726
new CouchbaseSpanNameExtractor(DbClientSpanNameExtractor.create(couchbaseAttributesGetter));
28-
CouchbaseNetworkAttributesGetter netAttributesGetter = new CouchbaseNetworkAttributesGetter();
2927

3028
InstrumenterBuilder<CouchbaseRequestInfo, Void> builder =
3129
Instrumenter.<CouchbaseRequestInfo, Void>builder(
3230
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor)
3331
.addAttributesExtractor(DbClientAttributesExtractor.create(couchbaseAttributesGetter))
34-
.addAttributesExtractor(NetworkAttributesExtractor.create(netAttributesGetter))
3532
.addContextCustomizer(
3633
(context, couchbaseRequest, startAttributes) ->
3734
CouchbaseRequestInfo.init(context, couchbaseRequest));

instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisDbAttributesGetter.java

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

88
import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter;
99
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
10+
import java.net.InetSocketAddress;
11+
import java.net.SocketAddress;
1012
import javax.annotation.Nullable;
1113

1214
final class JedisDbAttributesGetter implements DbClientAttributesGetter<JedisRequest, Void> {
@@ -43,4 +45,15 @@ public String getDbQueryText(JedisRequest request) {
4345
public String getDbOperationName(JedisRequest request) {
4446
return request.getOperation();
4547
}
48+
49+
@Override
50+
@Nullable
51+
public InetSocketAddress getNetworkPeerInetSocketAddress(
52+
JedisRequest jedisRequest, @Nullable Void unused) {
53+
SocketAddress socketAddress = jedisRequest.getRemoteSocketAddress();
54+
if (socketAddress instanceof InetSocketAddress) {
55+
return (InetSocketAddress) socketAddress;
56+
}
57+
return null;
58+
}
4659
}

instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisNetworkAttributesGetter.java

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

instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisSingletons.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientSpanNameExtractor;
1111
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1212
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
13-
import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesExtractor;
1413

1514
public final class JedisSingletons {
1615
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.jedis-4.0";
@@ -19,15 +18,13 @@ public final class JedisSingletons {
1918

2019
static {
2120
JedisDbAttributesGetter dbAttributesGetter = new JedisDbAttributesGetter();
22-
JedisNetworkAttributesGetter netAttributesGetter = new JedisNetworkAttributesGetter();
2321

2422
INSTRUMENTER =
2523
Instrumenter.<JedisRequest, Void>builder(
2624
GlobalOpenTelemetry.get(),
2725
INSTRUMENTATION_NAME,
2826
DbClientSpanNameExtractor.create(dbAttributesGetter))
2927
.addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter))
30-
.addAttributesExtractor(NetworkAttributesExtractor.create(netAttributesGetter))
3128
.buildInstrumenter(SpanKindExtractor.alwaysClient());
3229
}
3330

instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcInstrumenterBuilder.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1414
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
1515
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
16-
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor;
1716
import java.util.ArrayList;
1817
import java.util.List;
1918
import java.util.function.Function;
@@ -46,6 +45,7 @@ public Instrumenter<DbExecution, Void> build(
4645
Function<SpanNameExtractor<DbExecution>, ? extends SpanNameExtractor<? super DbExecution>>
4746
spanNameExtractorTransformer,
4847
boolean statementSanitizationEnabled) {
48+
4949
SpanNameExtractor<? super DbExecution> spanNameExtractor =
5050
spanNameExtractorTransformer.apply(
5151
DbClientSpanNameExtractor.create(R2dbcSqlAttributesGetter.INSTANCE));
@@ -56,7 +56,6 @@ public Instrumenter<DbExecution, Void> build(
5656
SqlClientAttributesExtractor.builder(R2dbcSqlAttributesGetter.INSTANCE)
5757
.setStatementSanitizationEnabled(statementSanitizationEnabled)
5858
.build())
59-
.addAttributesExtractor(ServerAttributesExtractor.create(R2dbcNetAttributesGetter.INSTANCE))
6059
.addAttributesExtractors(additionalExtractors)
6160
.buildInstrumenter(SpanKindExtractor.alwaysClient());
6261
}

0 commit comments

Comments
 (0)