diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientAttributesGetter.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcAttributesGetter.java
similarity index 61%
rename from instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientAttributesGetter.java
rename to instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcAttributesGetter.java
index 88aeee2654a0..49f5d47c2414 100644
--- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientAttributesGetter.java
+++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcAttributesGetter.java
@@ -5,11 +5,23 @@
package io.opentelemetry.instrumentation.api.instrumenter.rpc;
+import javax.annotation.Nullable;
+
/**
- * An interface for getting RPC client attributes.
+ * An interface for getting RPC attributes.
*
*
Instrumentation authors will create implementations of this interface for their specific
* library/framework. It will be used by the {@link RpcClientAttributesExtractor} or {@link
* RpcServerAttributesExtractor} to obtain the various RPC attributes in a type-generic way.
*/
-public interface RpcClientAttributesGetter extends RpcCommonAttributesGetter {}
+public interface RpcAttributesGetter {
+
+ @Nullable
+ String system(REQUEST request);
+
+ @Nullable
+ String service(REQUEST request);
+
+ @Nullable
+ String method(REQUEST request);
+}
diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientAttributesExtractor.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientAttributesExtractor.java
index 4060b69e0181..a4641bea2b9d 100644
--- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientAttributesExtractor.java
+++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientAttributesExtractor.java
@@ -14,19 +14,19 @@
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/rpc.md">RPC
* client attributes.
*
- * This class delegates to a type-specific {@link RpcCommonAttributesGetter} for individual
- * attribute extraction from request/response objects.
+ *
This class delegates to a type-specific {@link RpcAttributesGetter} for individual attribute
+ * extraction from request/response objects.
*/
public final class RpcClientAttributesExtractor
extends RpcCommonAttributesExtractor implements SpanKeyProvider {
/** Creates the RPC client attributes extractor. */
public static RpcClientAttributesExtractor create(
- RpcClientAttributesGetter getter) {
+ RpcAttributesGetter getter) {
return new RpcClientAttributesExtractor<>(getter);
}
- private RpcClientAttributesExtractor(RpcCommonAttributesGetter getter) {
+ private RpcClientAttributesExtractor(RpcAttributesGetter getter) {
super(getter);
}
diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcCommonAttributesExtractor.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcCommonAttributesExtractor.java
index 88cb28fbb4ec..2bd928478a7e 100644
--- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcCommonAttributesExtractor.java
+++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcCommonAttributesExtractor.java
@@ -14,9 +14,9 @@
abstract class RpcCommonAttributesExtractor
implements AttributesExtractor {
- private final RpcCommonAttributesGetter getter;
+ private final RpcAttributesGetter getter;
- RpcCommonAttributesExtractor(RpcCommonAttributesGetter getter) {
+ RpcCommonAttributesExtractor(RpcAttributesGetter getter) {
this.getter = getter;
}
diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcCommonAttributesGetter.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcCommonAttributesGetter.java
deleted file mode 100644
index 9876510d953a..000000000000
--- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcCommonAttributesGetter.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package io.opentelemetry.instrumentation.api.instrumenter.rpc;
-
-import javax.annotation.Nullable;
-
-/** An interface for getting RPC attributes common to clients and servers. */
-public interface RpcCommonAttributesGetter {
-
- @Nullable
- String system(REQUEST request);
-
- @Nullable
- String service(REQUEST request);
-
- @Nullable
- String method(REQUEST request);
-}
diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerAttributesExtractor.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerAttributesExtractor.java
index 2d0005efda50..25f6ae282e4c 100644
--- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerAttributesExtractor.java
+++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerAttributesExtractor.java
@@ -10,19 +10,19 @@
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/rpc.md">RPC
* server attributes.
*
- * This class delegates to a type-specific {@link RpcCommonAttributesGetter} for individual
- * attribute extraction from request/response objects.
+ *
This class delegates to a type-specific {@link RpcAttributesGetter} for individual attribute
+ * extraction from request/response objects.
*/
public final class RpcServerAttributesExtractor
extends RpcCommonAttributesExtractor {
/** Creates the RPC server attributes extractor. */
public static RpcServerAttributesExtractor create(
- RpcServerAttributesGetter getter) {
+ RpcAttributesGetter getter) {
return new RpcServerAttributesExtractor<>(getter);
}
- private RpcServerAttributesExtractor(RpcCommonAttributesGetter getter) {
+ private RpcServerAttributesExtractor(RpcAttributesGetter getter) {
super(getter);
}
}
diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerAttributesGetter.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerAttributesGetter.java
deleted file mode 100644
index 1c8f7b8cbbcf..000000000000
--- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerAttributesGetter.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package io.opentelemetry.instrumentation.api.instrumenter.rpc;
-
-/**
- * An interface for getting RPC server attributes.
- *
- * Instrumentation authors will create implementations of this interface for their specific
- * library/framework. It will be used by the {@link RpcClientAttributesExtractor} or {@link
- * RpcServerAttributesExtractor} to obtain the various RPC attributes in a type-generic way.
- */
-public interface RpcServerAttributesGetter extends RpcCommonAttributesGetter {}
diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcSpanNameExtractor.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcSpanNameExtractor.java
index 0f02c2a971c3..22f70437096b 100644
--- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcSpanNameExtractor.java
+++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcSpanNameExtractor.java
@@ -15,22 +15,13 @@ public final class RpcSpanNameExtractor implements SpanNameExtractor/}.
*/
public static SpanNameExtractor create(
- RpcClientAttributesGetter getter) {
- return new RpcSpanNameExtractor<>(getter);
+ RpcAttributesGetter attributesExtractor) {
+ return new RpcSpanNameExtractor<>(attributesExtractor);
}
- /**
- * Returns a {@link SpanNameExtractor} that constructs the span name according to RPC semantic
- * conventions: {@code /}.
- */
- public static SpanNameExtractor create(
- RpcServerAttributesGetter getter) {
- return new RpcSpanNameExtractor<>(getter);
- }
-
- private final RpcCommonAttributesGetter getter;
+ private final RpcAttributesGetter getter;
- private RpcSpanNameExtractor(RpcCommonAttributesGetter getter) {
+ private RpcSpanNameExtractor(RpcAttributesGetter getter) {
this.getter = getter;
}
diff --git a/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcAttributesExtractorTest.java b/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcAttributesExtractorTest.java
index e79dcedf4872..b092b6bad876 100644
--- a/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcAttributesExtractorTest.java
+++ b/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcAttributesExtractorTest.java
@@ -19,10 +19,7 @@
class RpcAttributesExtractorTest {
- enum TestGetter
- implements
- RpcClientAttributesGetter