Skip to content

Commit 25fd8e6

Browse files
committed
system fallback for span name
1 parent 5d51fbb commit 25fd8e6

2 files changed

Lines changed: 36 additions & 9 deletions

File tree

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/rpc/RpcSpanNameExtractor.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,14 @@ private RpcSpanNameExtractor(RpcAttributesGetter<REQUEST, Object> getter) {
3131
public String extract(REQUEST request) {
3232
if (SemconvStability.emitStableRpcSemconv()) {
3333
String method = getter.getRpcMethod(request);
34-
if (method == null) {
35-
return "RPC request";
34+
if (method != null) {
35+
return method;
3636
}
37-
return method;
37+
String system = getter.getSystem(request);
38+
if (system != null) {
39+
return system;
40+
}
41+
return "RPC request";
3842
}
3943

4044
String service = getter.getService(request);

instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/rpc/RpcSpanNameExtractorTest.java

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package io.opentelemetry.instrumentation.api.incubator.semconv.rpc;
77

88
import static org.assertj.core.api.Assertions.assertThat;
9+
import static org.junit.jupiter.api.Assumptions.assumeTrue;
910
import static org.mockito.Mockito.when;
1011

1112
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
@@ -39,23 +40,45 @@ void normal() {
3940
@Test
4041
@SuppressWarnings("deprecation") // testing deprecated method
4142
void serviceNull() {
43+
assumeTrue(!SemconvStability.emitStableRpcSemconv());
44+
4245
RpcRequest request = new RpcRequest();
4346

44-
if (!SemconvStability.emitStableRpcSemconv()) {
45-
when(getter.getMethod(request)).thenReturn("Method");
46-
}
47+
when(getter.getMethod(request)).thenReturn("Method");
4748

4849
SpanNameExtractor<RpcRequest> extractor = RpcSpanNameExtractor.create(getter);
4950
assertThat(extractor.extract(request)).isEqualTo("RPC request");
5051
}
5152

5253
@Test
5354
void methodNull() {
55+
assumeTrue(!SemconvStability.emitStableRpcSemconv());
56+
5457
RpcRequest request = new RpcRequest();
5558

56-
if (!SemconvStability.emitStableRpcSemconv()) {
57-
when(getter.getService(request)).thenReturn("my.Service");
58-
}
59+
when(getter.getService(request)).thenReturn("my.Service");
60+
61+
SpanNameExtractor<RpcRequest> extractor = RpcSpanNameExtractor.create(getter);
62+
assertThat(extractor.extract(request)).isEqualTo("RPC request");
63+
}
64+
65+
@Test
66+
void rpcMethodSystemFallback() {
67+
assumeTrue(SemconvStability.emitStableRpcSemconv());
68+
69+
RpcRequest request = new RpcRequest();
70+
71+
when(getter.getSystem(request)).thenReturn("system");
72+
73+
SpanNameExtractor<RpcRequest> extractor = RpcSpanNameExtractor.create(getter);
74+
assertThat(extractor.extract(request)).isEqualTo("system");
75+
}
76+
77+
@Test
78+
void rpcMethodNull() {
79+
assumeTrue(SemconvStability.emitStableRpcSemconv());
80+
81+
RpcRequest request = new RpcRequest();
5982

6083
SpanNameExtractor<RpcRequest> extractor = RpcSpanNameExtractor.create(getter);
6184
assertThat(extractor.extract(request)).isEqualTo("RPC request");

0 commit comments

Comments
 (0)